SFTP Error while executing command 'put': java.io.IOException: Pipe closed

Hi All,

Did anyone faced the below issue? If yes How to resolve this??

We are able to SFTP login, Change Directory , get files everything is working fine. But put/uploading files is failing with issue : java.io.IOException: Pipe closed. (error code : 4)

We are currently using WM 9.7

Fixes Installed :
Updates IS_9.7_Core_Fix23
IS_9.7_SPM_Fix3

  • The 9.7 Core Fix 23 is pretty old , if it is an option I would suggest you to try with newer core fixes, many a times, the issues are resolved with newer fixes.
  • If not confirm the services you are using to execute SFTP related functions, are you referring to the public services in IS or a different package.
  • Provide the full sequence of steps and errors from the server log and the error log, they can got from the Admin UI at Logs->Server or Logs->Error, expanding the stacktrace.
    This should help diagnose the issue faster.

-Nagendra

1 Like

I second NP’s comment about the fixes; I see that there was probably a fix for this issue that happens when the timeout is set to “0”.

A pipe closure usually happens when the server closes the connection/transfer, or due to session timeout (governed by a parameter or implicitly).

I also assume that you are using the built-in services; here are more checks -

  • Is the valid sessionKey available for the put step?
  • The same sessionKey cannot be used for parallel execution
  • An operation cannot be performed after the session is terminated (explicitly or implicitly)

If you’re using Java services for SFTP operations, then investigate session management and timeout in your code.

KM

2 Likes

Hi,

latest Core-Fix for IS I am aware of is IS_9.7_Core_Fix35.
Additonally you should check for the SCG_9.7_TPL_Fix2 as this one contains an updated version of the lib used by the SFTP feature.

Regarding the Core fix, you will require at least Fix26:

PIE-52854 (IS_9.7_Core_Fix26)
Integration Server SFTP sessions fail with error. 

In a multi-threaded environment, Integration Server SFTP client was generating 
same session id for multiple SFTP sessions due to which some threads failed 
with the following error 
"Integration Server does not support parallel command execution on a session". 

This issue is resolved. Now, Integration Server SFTP client does not generate 
same session id for multiple SFTP sessions.

For the future you should consider upgrading to 9.12 (out of support, same as any earlier versions of the 9.x stream) and from there to 10.5 or 10.7 (preferred).

Regards,
Holger

Hi Holger,

Quick help,

When we goto SoftwareAG Update manager and try install fixes from empower, It is showing only IS core Fix23. later IS core fixes are not shown to download. However in view available fixes, I can see the latest one. Any idea how to get the latest fixes please?

Can you suggest the steps to download?

It shows the latest fix that’s already installed on your IS (you did say above that you have Fix 23 at present). When you navigate further, you should be able to install.

Check what option you selected initially - just view (shows already installed fixes) or install (new ones).

Documentation - https://documentation.softwareag.com/a_installer_and_update_manager/Using_SAG_Update_Manager_for_912_and_earlier.pdf

KM

Hi Kasi,

What I am saying is when I try option : install fixes from Empower , I can see only few fixes which are already installed. Fix 23 is already installed one. Latest fixes are not shown there.

Now How can I get the latest fixes from empower for 9.7?

Hi Sangamesh,

as long as you do not have an Extended Maintenance Entitlement (EME) in place for wM 9.7 you will only see the latest Fixes in SUM which were released before the end of support for wM 9.7.

I would like to bring the following in mind from my earlier post:

For the future you should consider upgrading to 9.12 (out of support, same as any earlier versions of the 9.x stream) and from there to 10.5 or 10.7 (preferred).

Regards,
Holger

1 Like

yes I also agree with the Holger’s view and it’s always better to have consider old v9.7 migration/upgrade path v9.12 then to -->v10.7 (either stable or latest) - unless there is no strong reason not considering upgrade path:)

HTH,
RMG

1 Like

Hi Kasi,

Connection Time out is already set to 300. Even though we are facing this issue.

Do you think this issue can be resolved only by installing the latest fixes?

Sangamesh, have you investigated the stability, permissions and configuration (socket timeout, etc.) on the SFTP server?

Since I’m a SwAG employee, I can view all historical fixes -

image

Write to our support team and request access to existing 9.7 fixes, if you are unable to view them anymore.

Fixes - It’s always recommended that you install the latest fixes (atleast quarterly), since various bugs are identified and fixed continuously, until the version is no longer supported. This saves you time where you’re reinvestigating something that’s already fixed. Fixes range from bug fixes, functionality, security, performance and a lot more, so it’s beneficial to plan a regular maintenance.

P.S - You say that you tried the “Install fixes from Empower” option; can you try this option and see -

image

Upgrade - As Holger and Rama have indicated, you must consider an upgrade as soon as possible. The longer the gap between your version vs the latest, the more hoops you jump through and the more risks you’ll bear when you eventually upgrade. Supported upgrade paths are documented here (link).

KM

1 Like

Not bad advice but my recommendation is usually to install fixes only when the symptom/error being encountered is specifically addressed by the fix. Resist the temptation to install latest fixes “to see if that corrects the issue” – that almost never works out. If the fix specifically mentions the problem being seen, absolutely apply the fix. Otherwise, don’t.

The reason for that approach is that fixes often introduce other issues, unfortunately. Not always of course but we’ve been bitten multiple times over the years. So we take a rather conservative approach. No point in applying a fix that 1) doesn’t resolve the specific issue; 2) potentially introduces other issues.

With the information in this thread, I would suggest not just applying the latest fix unless it specifically mentions it addresses the pipe closed error that is reported. The proposed fix described here is related to SFTP, but is a different error altogether. The full readme of that fix may mention the pipe closed issue. If so, great! If not, it’s a shot in the dark whether or not the fix will resolve your specific symptom.

In any case, an update to a newer version is likely very much in order as noted by multiple posters.

[Edit] Also be aware when updating, particularly major versions, that bugs can reappear. Again, not often, but a bug fixed in say 9.7 Fix 99 could appear again when you update to 10.7. This is sort of understandable given the development paths of versions but can be aggravating to chase the same bug you chased and addressed 2 years ago. :slight_smile: Search for the error message encountered to see if a fix addresses it before going too deep into troubleshooting.

2 Likes

Well captured; this is essentially what I’ve seen customers practice, i.e., a measured approach. Unfortunately, in such environments, it’s easy to fall behind leaps and bounds without regular maintenance. These patches are also around security and performance, wherein the former is a ticking time bomb for threats, both external and internal, especially for large businesses.

Often, being behind fix levels, also complicates support since support teams have to reproduce the issue in a local environment, before engaging development teams. Due to the number of fixes each sub-component has, it becomes a permutations and combinations game to get the fix levels right, to accurately reproduce an issue. This is why support usually recommends updating to the latest fix levels first.

I encourage choosing a measured approach which works for businesses, but with a stop-gap measure of a recurring deadline to get up-to-date.

KM