Joe -

Still working with the SFTP chain. We have been testing and have
encountered a different problem. During some transfers but not all, when
doing a transfer of a large number of files (>10), some of the files are
not transferring.

I'm getting no errors at all.

Here is the chain I'm using:

ListFile --> FetchFile --> PutSFTP

I used putfile processors for the failure and reject and terminating on
success. No files are ending up in the directories I set aside for Failure
and Reject.

Any suggestions on how best to debug this?

Thanks.

On Thu, Apr 6, 2017 at 5:24 PM Joe Witt <joe.w...@gmail.com> wrote:

> I just mean while designing/interacting with the flow you can
> start/stop processors, you can click on the connections and say 'list
> queue' and then you can click on each object in the queue and see its
> attributes and content.  Really helps step through the flow at each
> step.
>
> On Thu, Apr 6, 2017 at 5:08 PM, James Keeney <nextves...@gmail.com> wrote:
> > Thanks again. When you refer to live queue listing and data viewing what
> are
> > you referring to? The dashboard or something else.
> >
> > Jim K.
> >
> > On Thu, Apr 6, 2017 at 4:49 PM Joe Witt <joe.w...@gmail.com> wrote:
> >>
> >> No problem.  Remember you can use live queue listing and data viewing
> >> to see all the attributes we know about the object at each stage.
> >> That is exactly how I figured out how to wire this together and what I
> >> needed from each step.
> >>
> >> Thanks
> >> Joe
> >>
> >> On Thu, Apr 6, 2017 at 4:43 PM, James Keeney <nextves...@gmail.com>
> wrote:
> >> > Thank you. That was the final detail I was not getting. The use of the
> >> > ${path} expression variable. I now see that I needed to look at the
> >> > writes
> >> > attributes section of the ListFile processor.
> >> >
> >> > Jim K.
> >> >
> >> > On Thu, Apr 6, 2017 at 2:30 PM Joe Witt <joe.w...@gmail.com> wrote:
> >> >>
> >> >> Jim,
> >> >>
> >> >> Yep I understand your question and how to support that is what I was
> >> >> trying to convey.
> >> >>
> >> >> ListFile should pull from "/home/source".  Lets say it finds that
> >> >> 'home/source/test/newfile.txt file.
> >> >>
> >> >> The resulting flowfile will have an attribute called 'path' that says
> >> >> 'test'
> >> >>
> >> >> Then you use FetchFile to actually pull in the bytes.  'path' still
> >> >> says
> >> >> 'test'
> >> >>
> >> >> Then you use PutSFTP with the 'Remote Path' set to
> "/www/files/${path}"
> >> >>
> >> >> I have just verified that this works myself locally using
> >> >> List/Fetch/PutFile.  In your case you'd use PutSFTP.
> >> >>
> >> >> Thanks
> >> >> Joe
> >> >>
> >> >> On Thu, Apr 6, 2017 at 12:51 PM, James Keeney <nextves...@gmail.com>
> >> >> wrote:
> >> >> > Thanks for getting back to me. I will follow up on the
> documentation
> >> >> > Pull
> >> >> > Request.
> >> >> >
> >> >> > As to the directory question, I wasn't specific enough. I've
> already
> >> >> > configured the setting you described.
> >> >> >
> >> >> > Here is what is going on:
> >> >> >
> >> >> > Say the source directory is /home/source and the destination is
> >> >> > /www/files
> >> >> >
> >> >> > This works:
> >> >> >
> >> >> > If a user drops the file text.txt into /home/source then I want
> that
> >> >> > to
> >> >> > be
> >> >> > /www/files/text.txt That is working as expected.
> >> >> >
> >> >> > This does not work
> >> >> >
> >> >> > If a user creates a subdirectory and drop a file, so
> >> >> > /home/source/test/newfile.txt then I want the destination to
> reflect
> >> >> > the
> >> >> > subdirectory as in /www/files/test/newfile.txt But what happens is
> >> >> > the
> >> >> > file
> >> >> > is being placed into the destination directory without the new
> >> >> > subdirectory.
> >> >> > So what is getting created is /www/files/newfile.txt and not
> >> >> > /www/files/test/newfile.txt
> >> >> >
> >> >> > Any suggestions?
> >> >> >
> >> >> > Jim K.
> >> >> >
> >> >> >
> >> >> > On Thu, Apr 6, 2017 at 12:19 PM Joe Witt <joe.w...@gmail.com>
> wrote:
> >> >> >>
> >> >> >> Jim,
> >> >> >>
> >> >> >> Glad you've made progress on the SFTP side.  Please file a JIRA
> with
> >> >> >> your suggestions for the docs and the ideal case then is you'd
> file
> >> >> >> a
> >> >> >> Pull Request
> >> >> >> (
> https://cwiki.apache.org/confluence/display/NIFI/Contributor+Guide)
> >> >> >> which actually provides the suggested documentation changes.
> >> >> >>
> >> >> >> For the ListFile/FetchFile -> PutSFTP[1] side the key property on
> >> >> >> PutSFTP to set is 'Remote Path'.  You'll want this value to have
> the
> >> >> >> base directory you need to write to which could be './' or could
> be
> >> >> >> 'some/place/to/write/to' and you'll also want it to reflect the
> >> >> >> directory structure from which you fetched the file locally.  This
> >> >> >> will be available to you from the 'path' attribute of the
> flowfile.
> >> >> >> This is set by the ListFile processor (see writes attributes) [2].
> >> >> >>
> >> >> >> So putting these together you want your PutSFTP processor to have
> as
> >> >> >> a
> >> >> >> value for 'Remote Path' something like
> "thebasedir/fordata/${path}".
> >> >> >>
> >> >> >>
> >> >> >> [1]
> >> >> >>
> >> >> >>
> >> >> >>
> https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.processors.standard.PutSFTP/index.html
> >> >> >> [2]
> >> >> >>
> >> >> >>
> >> >> >>
> https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.processors.standard.ListFile/index.html
> >> >> >>
> >> >> >> On Thu, Apr 6, 2017 at 11:43 AM, James Keeney <
> nextves...@gmail.com>
> >> >> >> wrote:
> >> >> >> > Joe and Juan -
> >> >> >> >
> >> >> >> > Thank you very much for the help. It turned out to be the prompt
> >> >> >> > for
> >> >> >> > verifying the authenticity of the host.
> >> >> >> >
> >> >> >> > With that fixed, I have a new question:
> >> >> >> >
> >> >> >> > I'm using ListFile and FetchFile to identify new files as they
> are
> >> >> >> > added
> >> >> >> > to
> >> >> >> > a directory. When they are I am using SFTP to transfer to
> another
> >> >> >> > server
> >> >> >> > behind the firewall. I'd like to be able to preserve the
> directory
> >> >> >> > structure
> >> >> >> > when I transfer the files. I set Create Directory to true but
> the
> >> >> >> > SFTP
> >> >> >> > transfer is always putting the files in the root.
> >> >> >> >
> >> >> >> > Any ideas?
> >> >> >> >
> >> >> >> > Here is how I resolve the first issue:
> >> >> >> >
> >> >> >> > I added the host keys to the known_hosts file and that did the
> >> >> >> > trick.
> >> >> >> >
> >> >> >> > From a documentation perspective I'd suggest adding a little
> more
> >> >> >> > guidance
> >> >> >> > for people who are not familiar with SFTP. It was not clear to
> me
> >> >> >> > what
> >> >> >> > the
> >> >> >> > two parameters are:
> >> >> >> >
> >> >> >> > Host Key File
> >> >> >> > Private Key Path
> >> >> >> >
> >> >> >> > Since I didn't understand the use of the known_hosts file (using
> >> >> >> > key-scan to
> >> >> >> > get their keys and adding those to the file I had no idea what
> to
> >> >> >> > put
> >> >> >> > in
> >> >> >> > Host Key File. Also, private key path confused me since it is
> the
> >> >> >> > public
> >> >> >> > key
> >> >> >> > that is being shared. Also, we might want to highlight that the
> >> >> >> > SFTP
> >> >> >> > process
> >> >> >> > needs to go forward without prompts. I had gotten use to the
> >> >> >> > prompt
> >> >> >> > so
> >> >> >> > when
> >> >> >> > I tested I didn't even think about that issue.
> >> >> >> >
> >> >> >> > How might I go about adding my sweat equity to update the
> >> >> >> > documentation
> >> >> >> > to
> >> >> >> > make it a little clearer? Let me know and I will take a crack at
> >> >> >> > expandign
> >> >> >> > the information to help other users.
> >> >> >> >
> >> >> >> > Thanks.
> >> >> >> >
> >> >> >> > Jim K.
> >> >> >> >
> >> >> >> > On Tue, Apr 4, 2017 at 12:31 PM Joe Witt <joe.w...@gmail.com>
> >> >> >> > wrote:
> >> >> >> >>
> >> >> >> >> definitely agree with Juan's suggestion to get more details on
> >> >> >> >> what
> >> >> >> >> the actual authentication process is when trying ssh -vvv.
> Also,
> >> >> >> >> be
> >> >> >> >> sure to check what order of authorization occurs.  It is
> possible
> >> >> >> >> it
> >> >> >> >> is trying keyboard-interactive before the certs and this could
> >> >> >> >> create
> >> >> >> >> problems so ordering there, on the server side, will really
> >> >> >> >> matter.
> >> >> >> >>
> >> >> >> >> On Tue, Apr 4, 2017 at 12:27 PM, Juan Sequeiros
> >> >> >> >> <helloj...@gmail.com>
> >> >> >> >> wrote:
> >> >> >> >> > Good afternoon,
> >> >> >> >> >
> >> >> >> >> > I would try this command from command line:
> >> >> >> >> >
> >> >> >> >> > ssh -vvv -i <path to rsa file> user@server
> >> >> >> >> >
> >> >> >> >> > Example:
> >> >> >> >> >
> >> >> >> >> > ssh -vvv -i /some/path/.ssh/id_rsa nifi@10.10.10.10
> >> >> >> >> >
> >> >> >> >> > If that works then I would double check the "private key
> path"
> >> >> >> >> > property
> >> >> >> >> > of
> >> >> >> >> > your GetSFTP it should point to the fully qualified file to
> the
> >> >> >> >> > private
> >> >> >> >> > key
> >> >> >> >> > path.
> >> >> >> >> >
> >> >> >> >> > If it does not work then the -vvv option should give you more
> >> >> >> >> > error.
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > On Tue, Apr 4, 2017 at 9:47 AM James Keeney
> >> >> >> >> > <nextves...@gmail.com>
> >> >> >> >> > wrote:
> >> >> >> >> >>
> >> >> >> >> >> I am using SFTP to transfer files between two servers. I
> have
> >> >> >> >> >> tried
> >> >> >> >> >> multiple configurations to try to get the authentication to
> >> >> >> >> >> work
> >> >> >> >> >> but
> >> >> >> >> >> i
> >> >> >> >> >> keep
> >> >> >> >> >> getting the Auth Fail error. I'm able to go onto the Nifi
> >> >> >> >> >> server
> >> >> >> >> >> sftp
> >> >> >> >> >> over
> >> >> >> >> >> to the destination server but I cannot get it to work in
> Nifi.
> >> >> >> >> >> I'm
> >> >> >> >> >> just
> >> >> >> >> >> not
> >> >> >> >> >> sure how to debug this so I was hoping someone could help.
> >> >> >> >> >> Here
> >> >> >> >> >> are
> >> >> >> >> >> the
> >> >> >> >> >> setting I'm using (I've replaced all the important details
> >> >> >> >> >> with
> >> >> >> >> >> placeholders):
> >> >> >> >> >>
> >> >> >> >> >> Hostname: <Hostname. I've tried both IP and hostname without
> >> >> >> >> >> luck>
> >> >> >> >> >> Port: 22 <I've confirmed this by connecting directly from
> >> >> >> >> >> server
> >> >> >> >> >> to
> >> >> >> >> >> server)
> >> >> >> >> >> username: <username>
> >> >> >> >> >> Host key File: <location on the server of the public key
> file>
> >> >> >> >> >>
> >> >> >> >> >> The error I am receiving is below. Any help would be greatly
> >> >> >> >> >> appreciated.
> >> >> >> >> >>
> >> >> >> >> >> Thanks.
> >> >> >> >> >>
> >> >> >> >> >> Jim K
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >> 2017-03-29 13:59:51,705 ERROR [Timer-Driven Process
> Thread-1]
> >> >> >> >> >> o.a.nifi.processors.standard.PutSFTP
> >> >> >> >> >> PutSFTP[id=fcdd2eb4-015a-1000-80c5-7406e6fca4c5] Unable to
> >> >> >> >> >> transfer
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> StandardFlowFileRecord[uuid=a3569afa-7c80-4cec-9239-2424172e30d1,claim=StandardContentClaim
> >> >> >> >> >> [resourceClaim=StandardResourceClaim[id=1490795991637-151,
> >> >> >> >> >> container=default, section=151], offset=0,
> >> >> >> >> >>
> >> >> >> >> >>
> length=2917388],offset=0,name=tulips_248_042214.jpg,size=2917388]
> >> >> >> >> >> to
> >> >> >> >> >> remote
> >> >> >> >> >> host <servername> due to
> >> >> >> >> >> org.apache.nifi.processor.exception.ProcessException:
> >> >> >> >> >> IOException
> >> >> >> >> >> thrown
> >> >> >> >> >> from PutSFTP[id=fcdd2eb4-015a-1000-80c5-7406e6fca4c5]:
> >> >> >> >> >> java.io.IOException:
> >> >> >> >> >> Failed to obtain connection to remote host due to
> >> >> >> >> >> com.jcraft.jsch.JSchException: Auth fail:
> java.io.IOException:
> >> >> >> >> >> Failed
> >> >> >> >> >> to
> >> >> >> >> >> obtain connection to remote host due to
> >> >> >> >> >> com.jcraft.jsch.JSchException:
> >> >> >> >> >> Auth
> >> >> >> >> >> fail; routing to failure: java.io.IOException: Failed to
> >> >> >> >> >> obtain
> >> >> >> >> >> connection
> >> >> >> >> >> to remote host due to com.jcraft.jsch.JSchException: Auth
> fail
> >> >> >> >> >> 2017-03-29 13:59:51,706 ERROR [Timer-Driven Process
> Thread-1]
> >> >> >> >> >> o.a.nifi.processors.standard.PutSFTP
> >> >> >> >> >> java.io.IOException: Failed to obtain connection to remote
> >> >> >> >> >> host
> >> >> >> >> >> due
> >> >> >> >> >> to
> >> >> >> >> >> com.jcraft.jsch.JSchException: Auth fail
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> org.apache.nifi.processors.standard.util.SFTPTransfer.getChannel(SFTPTransfer.java:447)
> >> >> >> >> >> ~[nifi-standard-processors-1.1.0.jar:1.1.0]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> org.apache.nifi.processors.standard.util.SFTPTransfer.put(SFTPTransfer.java:529)
> >> >> >> >> >> ~[nifi-standard-processors-1.1.0.jar:1.1.0]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> org.apache.nifi.processors.standard.PutFileTransfer$1.process(PutFileTransfer.java:135)
> >> >> >> >> >> ~[nifi-standard-processors-1.1.0.jar:1.1.0]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2082)
> >> >> >> >> >> ~[na:na]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2053)
> >> >> >> >> >> ~[na:na]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> org.apache.nifi.processors.standard.PutFileTransfer.onTrigger(PutFileTransfer.java:127)
> >> >> >> >> >> ~[nifi-standard-processors-1.1.0.jar:1.1.0]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
> >> >> >> >> >> [nifi-api-1.1.0.jar:1.1.0]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1099)
> >> >> >> >> >> [nifi-framework-core-1.1.0.jar:1.1.0]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:136)
> >> >> >> >> >> [nifi-framework-core-1.1.0.jar:1.1.0]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47)
> >> >> >> >> >> [nifi-framework-core-1.1.0.jar:1.1.0]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:132)
> >> >> >> >> >> [nifi-framework-core-1.1.0.jar:1.1.0]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> >> >> >> >> >> [na:1.8.0_121]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
> >> >> >> >> >> [na:1.8.0_121]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
> >> >> >> >> >> [na:1.8.0_121]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
> >> >> >> >> >> [na:1.8.0_121]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> >> >> >> >> >> [na:1.8.0_121]
> >> >> >> >> >>         at
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> >> >> >> >> >> [na:1.8.0_121]
> >> >> >> >
> >> >> >> > --
> >> >> >> > Jim Keeney
> >> >> >> > President, FitterWeb
> >> >> >> > E: j...@fitterweb.com
> >> >> >> > M: 703-568-5887 <(703)%20568-5887>
> >> >> >> >
> >> >> >> > FitterWeb Consulting
> >> >> >> > Are you lean and agile enough?
> >> >> >
> >> >> > --
> >> >> > Jim Keeney
> >> >> > President, FitterWeb
> >> >> > E: j...@fitterweb.com
> >> >> > M: 703-568-5887 <(703)%20568-5887>
> >> >> >
> >> >> > FitterWeb Consulting
> >> >> > Are you lean and agile enough?
> >> >
> >> > --
> >> > Jim Keeney
> >> > President, FitterWeb
> >> > E: j...@fitterweb.com
> >> > M: 703-568-5887 <(703)%20568-5887>
> >> >
> >> > FitterWeb Consulting
> >> > Are you lean and agile enough?
> >
> > --
> > Jim Keeney
> > President, FitterWeb
> > E: j...@fitterweb.com
> > M: 703-568-5887 <(703)%20568-5887>
> >
> > FitterWeb Consulting
> > Are you lean and agile enough?
>
-- 
Jim Keeney
President, FitterWeb
E: j...@fitterweb.com
M: 703-568-5887

*FitterWeb Consulting*
*Are you lean and agile enough? *

Reply via email to