[ https://issues.apache.org/jira/browse/VFS-766?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17085415#comment-17085415 ]
Kevin Hollenshead commented on VFS-766: --------------------------------------- Using 2.6 and JSch 0.1.55 I had this same issue and was able to narrow it down to JSch usage under the covers in my situation. In org.apache.commons.vfs2.provider.sftp.SftpFileSystem, the constructor has a call to detectExecDisabled(), which attempts to use the exec channel to determine if it is enabled and calls getUid(). getUid() attempts to execute "id -u" and get the response. In my case, this is where it hung up (confirmed on an RHEL server and locally in Windows running in the Eclipse debugger). My organization normally locks down sftp accounts so that they do not have interactive login capabilities. Every time I try with one of these accounts, I get past password negotiation and then hang at this point. When I switched to my normal login on the same server that does have interactive access, it worked just fine and there was no delay. I have been digging around in the source looking for a toggle/default way to set execDisabled without having to make a call. I went so far as to clone the code temporarily, hardcode the boolean to false and remove the call and re-ran it. Lo and behold, it worked. I can't say that this is related but the symptoms are the same. I would love to contribute some mechanism to either skip the exec check or force a default to false for cases where I know the exec channel is disabled. Since I'm new to the codebase, not sure where to being here or what the best way might be. > SftpClientFactory hangs at FileSystemManager.resolveFile(...) > ------------------------------------------------------------- > > Key: VFS-766 > URL: https://issues.apache.org/jira/browse/VFS-766 > Project: Commons VFS > Issue Type: Bug > Affects Versions: 2.5.0, 2.6.0 > Reporter: Jasper Teng > Priority: Critical > > Issue: When trying to sftp, it hangs inside > FileSystemManager.resolveFile(...). > > Libs in classpath used for testing: > * commons-vfs2-2.6.0.jar / commons-vfs2-2.5.0.jar > * commons-vfs2-jackrabbit2-2.5.0.jar > * jackrabbit-webdav-2.20.0.jar > > Issue Log file (2.5.0 + Server X): > {noformat} > 25 Mar, 20:00:37,825 INFO main [SftpClientFactory$JSchLogger.log()] > [65017ms] Connection established > 25 Mar, 20:00:38,013 INFO main [SftpClientFactory$JSchLogger.log()] > [65205ms] Remote version string: SSH-2.0-ProVide > 25 Mar, 20:00:38,017 INFO main [SftpClientFactory$JSchLogger.log()] > [65209ms] Local version string: SSH-2.0-JSCH-0.1.52 > ...snip... > 25 Mar, 20:01:02,802 INFO main [SftpClientFactory$JSchLogger.log()] > [89994ms] kex: server->client aes128-ctr hmac-md5 none > 25 Mar, 20:01:02,809 INFO main [SftpClientFactory$JSchLogger.log()] > [90001ms] kex: client->server aes128-ctr hmac-md5 none > 25 Mar, 20:01:06,359 INFO main [SftpClientFactory$JSchLogger.log()] > [93551ms] SSH_MSG_KEXDH_INIT sent > 25 Mar, 20:01:06,363 INFO main [SftpClientFactory$JSchLogger.log()] > [93555ms] expecting SSH_MSG_KEXDH_REPLY > 25 Mar, 20:01:10,410 INFO main [SftpClientFactory$JSchLogger.log()] > [97602ms] ssh_rsa_verify: signature true > 25 Mar, 20:01:10,427 WARN main [SftpClientFactory$JSchLogger.log()] > [97619ms] Permanently added 'mask.mask.mask' (RSA) to the list of known hosts. > 25 Mar, 20:01:10,438 INFO main [SftpClientFactory$JSchLogger.log()] > [97630ms] SSH_MSG_NEWKEYS sent > 25 Mar, 20:01:10,625 INFO main [SftpClientFactory$JSchLogger.log()] > [97817ms] SSH_MSG_NEWKEYS received > 25 Mar, 20:01:10,709 INFO main [SftpClientFactory$JSchLogger.log()] > [97901ms] SSH_MSG_SERVICE_REQUEST sent > 25 Mar, 20:01:10,897 INFO main [SftpClientFactory$JSchLogger.log()] > [98089ms] SSH_MSG_SERVICE_ACCEPT received > 25 Mar, 20:01:11,098 INFO main [SftpClientFactory$JSchLogger.log()] > [98290ms] Authentications that can continue: > publickey,keyboard-interactive,password > 25 Mar, 20:01:11,102 INFO main [SftpClientFactory$JSchLogger.log()] > [98294ms] Next authentication method: publickey > 25 Mar, 20:01:11,114 INFO main [SftpClientFactory$JSchLogger.log()] > [98306ms] Authentications that can continue: password > 25 Mar, 20:01:11,119 INFO main [SftpClientFactory$JSchLogger.log()] > [98311ms] Next authentication method: password > 25 Mar, 20:01:11,735 INFO main [SftpClientFactory$JSchLogger.log()] > [98927ms] Authentication succeeded (password).{noformat} > > Issue Log file (2.6.0 + Server X): > {noformat} > 26 Mar, 09:42:07,781 INFO main [SftpClientFactory$JSchLogger.log()] > [20400ms] Connection established > 26 Mar, 09:42:07,971 INFO main [SftpClientFactory$JSchLogger.log()] > [20590ms] Remote version string: SSH-2.0-ProVide > 26 Mar, 09:42:07,975 INFO main [SftpClientFactory$JSchLogger.log()] > [20594ms] Local version string: SSH-2.0-JSCH-0.1.52 > ...snip... > 26 Mar, 09:42:33,250 INFO main [SftpClientFactory$JSchLogger.log()] > [45869ms] kex: server->client aes128-ctr hmac-md5 none > 26 Mar, 09:42:33,258 INFO main [SftpClientFactory$JSchLogger.log()] > [45877ms] kex: client->server aes128-ctr hmac-md5 none > 26 Mar, 09:42:36,710 INFO main [SftpClientFactory$JSchLogger.log()] > [49329ms] SSH_MSG_KEXDH_INIT sent > 26 Mar, 09:42:36,716 INFO main [SftpClientFactory$JSchLogger.log()] > [49335ms] expecting SSH_MSG_KEXDH_REPLY > 26 Mar, 09:42:40,635 INFO main [SftpClientFactory$JSchLogger.log()] > [53254ms] ssh_rsa_verify: signature true > 26 Mar, 09:42:40,653 INFO main [SftpClientFactory$JSchLogger.log()] > [53272ms] Host 'mask.mask.mask' is known and matches the RSA host key > 26 Mar, 09:42:40,660 INFO main [SftpClientFactory$JSchLogger.log()] > [53279ms] SSH_MSG_NEWKEYS sent > 26 Mar, 09:42:40,845 INFO main [SftpClientFactory$JSchLogger.log()] > [53464ms] SSH_MSG_NEWKEYS received > 26 Mar, 09:42:40,953 INFO main [SftpClientFactory$JSchLogger.log()] > [53572ms] SSH_MSG_SERVICE_REQUEST sent > 26 Mar, 09:42:41,153 INFO main [SftpClientFactory$JSchLogger.log()] > [53772ms] SSH_MSG_SERVICE_ACCEPT received > 26 Mar, 09:42:41,356 INFO main [SftpClientFactory$JSchLogger.log()] > [53975ms] Authentications that can continue: > publickey,keyboard-interactive,password > 26 Mar, 09:42:41,359 INFO main [SftpClientFactory$JSchLogger.log()] > [53978ms] Next authentication method: publickey > 26 Mar, 09:42:41,370 INFO main [SftpClientFactory$JSchLogger.log()] > [53989ms] Authentications that can continue: password > 26 Mar, 09:42:41,374 INFO main [SftpClientFactory$JSchLogger.log()] > [53993ms] Next authentication method: password > 26 Mar, 09:42:42,388 INFO main [SftpClientFactory$JSchLogger.log()] > [55007ms] Authentication succeeded (password). > {noformat} > > Additional Important Notes: > * commons-vfs2-2.4.1.jar works > * issues can only be reproduced on certain sftp servers > > Non issue log file (2.4.1 + Server X): > {noformat} > 26 Mar, 09:56:29,747 INFO main [SftpClientFactory$JSchLogger.log()] > [25083ms] Connection established > 26 Mar, 09:56:29,948 INFO main [SftpClientFactory$JSchLogger.log()] > [25284ms] Remote version string: SSH-2.0-ProVide > 26 Mar, 09:56:29,961 INFO main [SftpClientFactory$JSchLogger.log()] > [25297ms] Local version string: SSH-2.0-JSCH-0.1.52 > ...snip... > 26 Mar, 09:56:57,870 INFO main [SftpClientFactory$JSchLogger.log()] > [53206ms] kex: server->client aes128-ctr hmac-md5 none > 26 Mar, 09:56:57,874 INFO main [SftpClientFactory$JSchLogger.log()] > [53210ms] kex: client->server aes128-ctr hmac-md5 none > 26 Mar, 09:57:01,314 INFO main [SftpClientFactory$JSchLogger.log()] > [56650ms] SSH_MSG_KEXDH_INIT sent > 26 Mar, 09:57:01,318 INFO main [SftpClientFactory$JSchLogger.log()] > [56654ms] expecting SSH_MSG_KEXDH_REPLY > 26 Mar, 09:57:05,237 INFO main [SftpClientFactory$JSchLogger.log()] > [60573ms] ssh_rsa_verify: signature true > 26 Mar, 09:57:05,253 INFO main [SftpClientFactory$JSchLogger.log()] > [60589ms] Host 'mask.mask.mask' is known and matches the RSA host key > 26 Mar, 09:57:05,258 INFO main [SftpClientFactory$JSchLogger.log()] > [60594ms] SSH_MSG_NEWKEYS sent > 26 Mar, 09:57:05,444 INFO main [SftpClientFactory$JSchLogger.log()] > [60780ms] SSH_MSG_NEWKEYS received > 26 Mar, 09:57:05,526 INFO main [SftpClientFactory$JSchLogger.log()] > [60862ms] SSH_MSG_SERVICE_REQUEST sent > 26 Mar, 09:57:05,713 INFO main [SftpClientFactory$JSchLogger.log()] > [61049ms] SSH_MSG_SERVICE_ACCEPT received > 26 Mar, 09:57:05,911 INFO main [SftpClientFactory$JSchLogger.log()] > [61247ms] Authentications that can continue: > publickey,keyboard-interactive,password > 26 Mar, 09:57:05,915 INFO main [SftpClientFactory$JSchLogger.log()] > [61251ms] Next authentication method: publickey > 26 Mar, 09:57:05,927 INFO main [SftpClientFactory$JSchLogger.log()] > [61263ms] Authentications that can continue: password > 26 Mar, 09:57:05,931 INFO main [SftpClientFactory$JSchLogger.log()] > [61267ms] Next authentication method: password > 26 Mar, 09:57:06,567 INFO main [SftpClientFactory$JSchLogger.log()] > [61903ms] Authentication succeeded (password).{noformat} > Non issue log file (2.6.0 + Server A): > {noformat} > 26 Mar, 09:47:39,035 INFO main [SftpClientFactory$JSchLogger.log()] [1778ms] > Connection established > 26 Mar, 09:47:39,045 INFO main [SftpClientFactory$JSchLogger.log()] [1788ms] > Remote version string: SSH-2.0-OpenSSH_6.2 > 26 Mar, 09:47:39,045 INFO main [SftpClientFactory$JSchLogger.log()] [1788ms] > Local version string: SSH-2.0-JSCH-0.1.52 > ...snip... > 26 Mar, 09:47:41,603 INFO main [SftpClientFactory$JSchLogger.log()] [4346ms] > kex: server->client aes128-ctr hmac-md5 none > 26 Mar, 09:47:41,604 INFO main [SftpClientFactory$JSchLogger.log()] [4347ms] > kex: client->server aes128-ctr hmac-md5 none > 26 Mar, 09:47:41,607 INFO main [SftpClientFactory$JSchLogger.log()] [4350ms] > SSH_MSG_KEXDH_INIT sent > 26 Mar, 09:47:41,607 INFO main [SftpClientFactory$JSchLogger.log()] [4350ms] > expecting SSH_MSG_KEXDH_REPLY > 26 Mar, 09:47:41,615 INFO main [SftpClientFactory$JSchLogger.log()] [4358ms] > ssh_rsa_verify: signature true > 26 Mar, 09:47:41,616 INFO main [SftpClientFactory$JSchLogger.log()] [4359ms] > Host 'mask.mask.mask' is known and matches the RSA host key > 26 Mar, 09:47:41,616 INFO main [SftpClientFactory$JSchLogger.log()] [4359ms] > SSH_MSG_NEWKEYS sent > 26 Mar, 09:47:41,616 INFO main [SftpClientFactory$JSchLogger.log()] [4359ms] > SSH_MSG_NEWKEYS received > 26 Mar, 09:47:41,621 INFO main [SftpClientFactory$JSchLogger.log()] [4364ms] > SSH_MSG_SERVICE_REQUEST sent > 26 Mar, 09:47:41,621 INFO main [SftpClientFactory$JSchLogger.log()] [4364ms] > SSH_MSG_SERVICE_ACCEPT received > 26 Mar, 09:47:41,626 INFO main [SftpClientFactory$JSchLogger.log()] [4369ms] > Authentications that can continue: publickey,keyboard-interactive,password > 26 Mar, 09:47:41,626 INFO main [SftpClientFactory$JSchLogger.log()] [4369ms] > Next authentication method: publickey > 26 Mar, 09:47:41,627 INFO main [SftpClientFactory$JSchLogger.log()] [4370ms] > Authentications that can continue: keyboard-interactive,password > 26 Mar, 09:47:41,627 INFO main [SftpClientFactory$JSchLogger.log()] [4370ms] > Next authentication method: keyboard-interactive > 26 Mar, 09:47:41,635 INFO main [SftpClientFactory$JSchLogger.log()] [4378ms] > Authentication succeeded (keyboard-interactive).{noformat} > > -- This message was sent by Atlassian Jira (v8.3.4#803005)