[ https://issues.apache.org/jira/browse/VFS-440?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13485642#comment-13485642 ]
Gary Gregory commented on VFS-440: ---------------------------------- The build hangs in the test on the 9th invocation of "mvn clean test" :( Here is the thread dump: {noformat} Running org.apache.commons.vfs2.provider.sftp.test.SftpProviderTestCase 2012-10-28 11:07:17 Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.10-b01 mixed mode): "Thread-10" prio=6 tid=0x0000000009ebe800 nid=0x1b70 runnable [0x000000000ceff000] java.lang.Thread.State: RUNNABLE at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:220) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) - locked <0x00000007dc13df80> (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:167) at java.io.BufferedReader.fill(BufferedReader.java:136) at java.io.BufferedReader.readLine(BufferedReader.java:299) - locked <0x00000007dc13df80> (a java.io.InputStreamReader) at java.io.BufferedReader.readLine(BufferedReader.java:362) at org.codehaus.plexus.util.cli.StreamPumper.run(StreamPumper.java:129) "Thread-9" prio=6 tid=0x0000000007f90800 nid=0x1b3c runnable [0x000000000cdff000] java.lang.Thread.State: RUNNABLE at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:220) at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) at java.io.BufferedInputStream.read(BufferedInputStream.java:317) - locked <0x00000007dc132108> (a java.io.BufferedInputStream) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) - locked <0x00000007dc13b188> (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:167) at java.io.BufferedReader.fill(BufferedReader.java:136) at java.io.BufferedReader.readLine(BufferedReader.java:299) - locked <0x00000007dc13b188> (a java.io.InputStreamReader) at java.io.BufferedReader.readLine(BufferedReader.java:362) at org.codehaus.plexus.util.cli.StreamPumper.run(StreamPumper.java:129) "ThreadedStreamConsumer" prio=6 tid=0x0000000007f90000 nid=0x1858 waiting on condition [0x000000000bcdf000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000007dc0fe2a0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399) at org.apache.maven.plugin.surefire.util.internal.Java15BlockingQueue.take(Java15BlockingQueue.java:41) at org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer$Pumper.run(ThreadedStreamConsumer.java:68) at java.lang.Thread.run(Thread.java:662) "resolver-4" daemon prio=6 tid=0x000000000b4d1800 nid=0x1930 waiting on condition [0x000000000bbdf000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x000000078312a418> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:662) "resolver-3" daemon prio=6 tid=0x000000000b539800 nid=0x260c waiting on condition [0x000000000aa6f000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x000000078312a418> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:662) "resolver-2" daemon prio=6 tid=0x000000000a2d9000 nid=0x2414 waiting on condition [0x000000000991f000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x000000078312a418> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:662) "resolver-1" daemon prio=6 tid=0x000000000aea0000 nid=0x4a4 waiting on condition [0x000000000981f000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x000000078312a418> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:662) "Low Memory Detector" daemon prio=6 tid=0x0000000006d10800 nid=0x1944 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "C2 CompilerThread1" daemon prio=10 tid=0x0000000006d01000 nid=0x29b8 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "C2 CompilerThread0" daemon prio=10 tid=0x0000000006ceb800 nid=0x19ec waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Attach Listener" daemon prio=10 tid=0x000000000052f000 nid=0x1a80 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=10 tid=0x0000000006ce4800 nid=0x1c34 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=8 tid=0x000000000052d000 nid=0xd98 in Object.wait() [0x0000000006c8f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000007832e7818> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x00000007832e7818> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x0000000000526000 nid=0x29e8 in Object.wait() [0x0000000006b8f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000007832e77b0> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:485) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) - locked <0x00000007832e77b0> (a java.lang.ref.Reference$Lock) "main" prio=6 tid=0x000000000026c800 nid=0x1cc0 runnable [0x00000000027ae000] java.lang.Thread.State: RUNNABLE at java.lang.ProcessImpl.waitFor(Native Method) at org.codehaus.plexus.util.cli.CommandLineUtils$1.call(CommandLineUtils.java:173) at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:114) at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:88) at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:280) at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:116) at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:740) at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAllProviders(AbstractSurefireMojo.java:682) at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:648) at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:586) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) "VM Thread" prio=10 tid=0x000000000051d800 nid=0x2850 runnable "GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000000478000 nid=0x13f0 runnable "GC task thread#1 (ParallelGC)" prio=6 tid=0x000000000047a000 nid=0x2788 runnable "GC task thread#2 (ParallelGC)" prio=6 tid=0x000000000047b800 nid=0x1f48 runnable "GC task thread#3 (ParallelGC)" prio=6 tid=0x000000000047d800 nid=0xe9c runnable "VM Periodic Task Thread" prio=10 tid=0x0000000006d21000 nid=0x2a2c waiting on condition JNI global references: 1713 Heap PSYoungGen total 133824K, used 120489K [0x00000007d6560000, 0x00000007df9d0000, 0x0000000800000000) eden space 121664K, 89% used [0x00000007d6560000,0x00000007dcf2d490,0x00000007ddc30000) from space 12160K, 99% used [0x00000007de120000,0x00000007decfd2f0,0x00000007ded00000) to space 13120K, 0% used [0x00000007ded00000,0x00000007ded00000,0x00000007df9d0000) PSOldGen total 85248K, used 6877K [0x0000000783000000, 0x0000000788340000, 0x00000007d6560000) object space 85248K, 8% used [0x0000000783000000,0x00000007836b74e0,0x0000000788340000) PSPermGen total 32576K, used 32443K [0x0000000763c00000, 0x0000000765bd0000, 0x0000000783000000) object space 32576K, 99% used [0x0000000763c00000,0x0000000765baeeb0,0x0000000765bd0000) {noformat} > [SFTP] Stream (e.g. netcat) proxy for Sftp file system (aka ProxyCommand) > ------------------------------------------------------------------------- > > Key: VFS-440 > URL: https://issues.apache.org/jira/browse/VFS-440 > Project: Commons VFS > Issue Type: Improvement > Reporter: Benjamin Piwowarski > Priority: Minor > Labels: proxy, sftp > Attachments: sftp-stream-proxy.diff, sftp-stream-proxy-v2.diff, > sftp-stream-proxy-v3.diff, sftp-stream-proxy-v4.diff, > sftp-stream-proxy-v5.diff, sftp-stream-proxy-v6.diff, > sftp-stream-proxy-v7-bis.diff, sftp-stream-proxy-v7.diff > > > What I propose is to add the possibility to connect to a remote SSH server > through an SSH connection stream (instead of an HTTP or SOCKS proxy). See for > instance > http://backdrift.org/transparent-proxy-with-ssh > for a use case. > This simulates a ProxyCommand where the command is run on a SSH host. > The patch also contains a test for the new functionality. > Example of use (with the netcat command nc -q 0 HOSTNAME PORT) > {code:java} > builder.setProxyType(opts, SftpFileSystemConfigBuilder.PROXY_STREAM); > builder.setProxyCommand(opts, SftpStreamProxy.NETCAT_COMMAND); > builder.setProxyHost(opts, "gate.way.host"); > builder.setProxyPort(opts, 22); > builder.setProxyOptions(opts, proxyOptions); > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira