[ 
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

Reply via email to