SFTP On New or Update throws error Pipe close

894 views Asked by At

I'm using the "On New or Update" source of the Mule 4 SFTP Connector, to process files from an SFTP server directory. The process works fine, however while reading the last file the SFTP connector throws an error as shown below and the file remains in directory waiting next schedule time to be picked up and the same thing will happen for the last file of other new set of files.

Any thoughts on how to fix this issue?

ERROR:

11:20:45.315     05/04/2022     Worker-0     [MuleRuntime].uber.27: [sftp-demo-app].prcsACKFiles-Error-SuccessFlow.CPU_INTENSIVE @1648077b     ERROR
event:c458bc90-cbbd-11ec-85e2-06a565d43154 
********************************************************************************
Message               : "org.mule.weave.v2.module.reader.ReaderParsingException: org.mule.runtime.api.exception.MuleRuntimeException - Exception was found trying to retrieve the contents of file /home/messages/file_8ddb7674.json
org.mule.runtime.api.exception.MuleRuntimeException: Exception was found trying to retrieve the contents of file /home/messages/file_8ddb7674.json
    at org.mule.extension.sftp.internal.connection.SftpClient.exception(SftpClient.java:427)
    at org.mule.extension.sftp.internal.connection.SftpClient.exception(SftpClient.java:423)
    at org.mule.extension.sftp.internal.connection.SftpClient.getFileContent(SftpClient.java:349)
    at org.mule.extension.sftp.internal.connection.SftpFileSystem.retrieveFileContent(SftpFileSystem.java:117)
    at org.mule.extension.sftp.internal.SftpInputStream$SftpFileInputStreamSupplier.getContentInputStream(SftpInputStream.java:111)
    at org.mule.extension.sftp.internal.SftpInputStream$SftpFileInputStreamSupplier.getContentInputStream(SftpInputStream.java:93)
    at org.mule.extension.file.common.api.AbstractConnectedFileInputStreamSupplier.getContentInputStream(AbstractConnectedFileInputStreamSupplier.java:81)
    at org.mule.extension.file.common.api.AbstractFileInputStreamSupplier.get(AbstractFileInputStreamSupplier.java:65)
    at org.mule.extension.file.common.api.AbstractFileInputStreamSupplier.get(AbstractFileInputStreamSupplier.java:33)
    at org.mule.extension.file.common.api.stream.LazyStreamSupplier.lambda$new$1(LazyStreamSupplier.java:29)
    at org.mule.extension.file.common.api.stream.LazyStreamSupplier.get(LazyStreamSupplier.java:42)
    at org.mule.extension.file.common.api.stream.AbstractNonFinalizableFileInputStream.lambda$createLazyStream$0(AbstractNonFinalizableFileInputStream.java:48)
    at $java.io.InputStream$$EnhancerByCGLIB$$55e4687e.read(<generated>)
    at org.apache.commons.io.input.ProxyInputStream.read(ProxyInputStream.java:102)
    at org.mule.runtime.core.internal.streaming.bytes.AbstractInputStreamBuffer.consumeStream(AbstractInputStreamBuffer.java:111)
    at com.mulesoft.mule.runtime.core.internal.streaming.bytes.FileStoreInputStreamBuffer.consumeForwardData(FileStoreInputStreamBuffer.java:239)
    at com.mulesoft.mule.runtime.core.internal.streaming.bytes.FileStoreInputStreamBuffer.consumeForwardData(FileStoreInputStreamBuffer.java:202)
    at com.mulesoft.mule.runtime.core.internal.streaming.bytes.FileStoreInputStreamBuffer.doGet(FileStoreInputStreamBuffer.java:125)
    at org.mule.runtime.core.internal.streaming.bytes.AbstractInputStreamBuffer.get(AbstractInputStreamBuffer.java:93)
    at org.mule.runtime.core.internal.streaming.bytes.BufferedCursorStream.assureDataInLocalBuffer(BufferedCursorStream.java:126)
    at org.mule.runtime.core.internal.streaming.bytes.BufferedCursorStream.doRead(BufferedCursorStream.java:101)
    at org.mule.runtime.core.internal.streaming.bytes.AbstractCursorStream.read(AbstractCursorStream.java:124)
    at org.mule.runtime.core.internal.streaming.bytes.BufferedCursorStream.read(BufferedCursorStream.java:26)
    at java.io.InputStream.read(InputStream.java:101)
    at org.mule.runtime.core.internal.streaming.bytes.ManagedCursorStreamDecorator.read(ManagedCursorStreamDecorator.java:96)
    at org.mule.weave.v2.el.SeekableCursorStream.read(MuleTypedValue.scala:306)
    at org.mule.weave.v2.module.reader.UTF8StreamSourceReader.handleBOM(SeekableStreamSourceReader.scala:179)
    at org.mule.weave.v2.module.reader.UTF8StreamSourceReader.readAscii(SeekableStreamSourceReader.scala:163)
    at org.mule.weave.v2.module.json.reader.JsonTokenizer.$init$(JsonTokenizer.scala:21)
    at org.mule.weave.v2.module.json.reader.indexed.IndexedJsonTokenizer.<init>(IndexedJsonTokenizer.scala:15)
    at org.mule.weave.v2.module.json.reader.indexed.IndexedJsonParser.parser(IndexedJsonParser.scala:17)
    at org.mule.weave.v2.module.json.reader.JsonReader.readValue(JsonReader.scala:40)
    at org.mule.weave.v2.module.json.reader.JsonReader.doRead(JsonReader.scala:30)
    at org.mule.weave.v2.module.reader.Reader.read(Reader.scala:35)
    at org.mule.weave.v2.module.reader.Reader.read$(Reader.scala:33)
    at org.mule.weave.v2.module.json.reader.JsonReader.read(JsonReader.scala:20)
    at org.mule.weave.v2.el.MuleTypedValue.value(MuleTypedValue.scala:147)
    at org.mule.weave.v2.model.values.wrappers.DelegateValue.valueType(DelegateValue.scala:17)
    at org.mule.weave.v2.model.values.wrappers.DelegateValue.valueType$(DelegateValue.scala:16)
    at org.mule.weave.v2.el.MuleTypedValue.valueType(MuleTypedValue.scala:177)
    at org.mule.weave.v2.model.types.ObjectType$.accepts(Type.scala:1068)
    Caused by: org.mule.extension.sftp.api.SftpConnectionException: Error occurred while trying to connect to host
    ... 112 more
Caused by: org.mule.runtime.api.connection.ConnectionException: 
    at org.mule.extension.sftp.api.SftpConnectionException.<init>(SftpConnectionException.java:38)
    ... 112 more
Caused by: org.mule.runtime.api.connection.ConnectionException: 
    ... 112 more
Caused by: 4: 
    at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:1540)
    at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:1290)
    at org.mule.extension.sftp.internal.connection.SftpClient.getFileContent(SftpClient.java:347)
    ... 110 more
Caused by: java.io.IOException: Pipe closed
1

There are 1 answers

3
aled On

Error Pipe closed in SFTP indicates a communication error that the SFTP connector can not resolve, so the operation fails. I don't believe that there is anything that you can do about that. You might try to test a newer version of the connector if you are using an older one, just in case.