Hello Graham,

Thank you very much for the threads dump. It looks like
socket.connect(...) is called but never exits:

> "pool-1-svnkit-thread-2" daemon prio=10 tid=0x00007f07f051d800 nid=0x7ef7 
> runnable [0x00007f07e4611000]
>    java.lang.Thread.State: RUNNABLE
>         at java.net.PlainSocketImpl.socketConnect(Native Method)
>         at 
> java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
>         - locked <0x00000000ed91c468> (a java.net.SocksSocketImpl)
>         at 
> java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
>         at 
> java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
>         at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
>         at java.net.Socket.connect(Socket.java:579)
>         at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618)
>         at 
> org.tmatesoft.svn.core.internal.util.SVNSocketConnection.run(SVNSocketConnection.java:57)

I'll check what might be the problem there (usually it works, so
should be something specific for your environment/configuration).

Regarding the way Jenkins configures SVNKit - I do not know how they
do it, I just said that SVNKit could be configured in various ways and
Jenkins (or other tool) could make SVNKit to use default config, or
may not do it. But I think they do.

> The native subversion client performs SNI correctly out of the box, as does 
> Java 7. Svnkit doesn't set the name of the host as required, and so doesn't 
> work.

Could you please provide more information on that?
Do you run "jsvn" with Java 7 and necessary -D system property and SNI
is still not working? Does it work with other Java software?


Alexander Kitaev,
TMate Software,
http://subgit.com/ - Svn to Git Migration!
http://svnkit.com/ - Java [Sub]Versioning Library!
http://hg4j.com/ - Java Mercurial Library!
http://sqljet.com/ - Java SQLite Library!


On 4 February 2013 23:10, Graham Leggett <minf...@sharp.fm> wrote:
> On 04 Feb 2013, at 11:57 PM, Graham Leggett <minf...@sharp.fm> wrote:
>
>> I tried this, and "jsvn checkout [url] path" hangs solid, and won't shut 
>> down in response to ^C. The native svn client works fine.
>
> The thread dump while svnkit is stuck looks like this:
>
> Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode):
>
> "pool-1-svnkit-thread-2" daemon prio=10 tid=0x00007f07f051d800 nid=0x7ef7 
> runnable [0x00007f07e4611000]
>    java.lang.Thread.State: RUNNABLE
>         at java.net.PlainSocketImpl.socketConnect(Native Method)
>         at 
> java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
>         - locked <0x00000000ed91c468> (a java.net.SocksSocketImpl)
>         at 
> java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
>         at 
> java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
>         at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
>         at java.net.Socket.connect(Socket.java:579)
>         at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618)
>         at 
> org.tmatesoft.svn.core.internal.util.SVNSocketConnection.run(SVNSocketConnection.java:57)
>         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:722)
>
> "pool-1-svnkit-thread-1" daemon prio=10 tid=0x00007f07f0511800 nid=0x7ef6 
> waiting on condition [0x00007f07e4712000]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00000000c572e3c8> (a 
> java.util.concurrent.SynchronousQueue$TransferStack)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>         at 
> java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:458)
>         at 
> java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
>         at 
> java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:925)
>         at 
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:722)
>
> "Thread-2" daemon prio=10 tid=0x00007f07f0332800 nid=0x7ef5 waiting on 
> condition [0x00007f07e4e76000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00000000c5746b30> (a 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at 
> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
>         at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
>         at 
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:722)
>
> "Service Thread" daemon prio=10 tid=0x00007f07f00ef000 nid=0x7ef3 runnable 
> [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
> "C2 CompilerThread1" daemon prio=10 tid=0x00007f07f00ed000 nid=0x7ef2 
> runnable [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
> "C2 CompilerThread0" daemon prio=10 tid=0x00007f07f00ea000 nid=0x7ef1 waiting 
> on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
> "Signal Dispatcher" daemon prio=10 tid=0x00007f07f00e7800 nid=0x7ef0 waiting 
> on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
> "Finalizer" daemon prio=10 tid=0x00007f07f009b000 nid=0x7eef in Object.wait() 
> [0x00007f07e5d7c000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x00000000c57b6220> (a 
> java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
>         - locked <0x00000000c57b6220> (a java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
>         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)
>
> "Reference Handler" daemon prio=10 tid=0x00007f07f0099000 nid=0x7eee in 
> Object.wait() [0x00007f07e5e7d000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x00000000c57b5ce0> (a java.lang.ref.Reference$Lock)
>         at java.lang.Object.wait(Object.java:503)
>         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
>         - locked <0x00000000c57b5ce0> (a java.lang.ref.Reference$Lock)
>
> "main" prio=10 tid=0x00007f07f0008000 nid=0x7ee8 in Object.wait() 
> [0x00007f07f5d20000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x00000000ed92abd8> (a 
> org.tmatesoft.svn.core.internal.util.SVNSocketConnection)
>         at 
> org.tmatesoft.svn.core.internal.util.SVNSocketConnection.isSocketConnected(SVNSocketConnection.java:47)
>         - locked <0x00000000ed92abd8> (a 
> org.tmatesoft.svn.core.internal.util.SVNSocketConnection)
>         at 
> org.tmatesoft.svn.core.internal.util.SVNSocketFactory.connect(SVNSocketFactory.java:127)
>         at 
> org.tmatesoft.svn.core.internal.util.SVNSocketFactory.createSSLSocket(SVNSocketFactory.java:93)
>         at 
> org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.connect(HTTPConnection.java:271)
>         at 
> org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:422)
>         at 
> org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:365)
>         at 
> org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:353)
>         at 
> org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:708)
>         at 
> org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:628)
>         at 
> org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103)
>         at 
> org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1016)
>         at 
> org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:180)
>         at 
> org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118)
>         at 
> org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:148)
>         at 
> org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)
>         at 
> org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:706)
>         at 
> org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:14)
>         at 
> org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:9)
>         at 
> org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
>         at 
> org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
>         at 
> org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
>         at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:291)
>         at 
> org.tmatesoft.svn.core.wc.SVNUpdateClient.doCheckout(SVNUpdateClient.java:777)
>         at 
> org.tmatesoft.svn.cli.svn.SVNCheckoutCommand.run(SVNCheckoutCommand.java:99)
>         at 
> org.tmatesoft.svn.cli.AbstractSVNCommandEnvironment.run(AbstractSVNCommandEnvironment.java:142)
>         at 
> org.tmatesoft.svn.cli.AbstractSVNLauncher.run(AbstractSVNLauncher.java:79)
>         at org.tmatesoft.svn.cli.svn.SVN.main(SVN.java:26)
>         at org.tmatesoft.svn.cli.SVN.main(SVN.java:22)
>
> "VM Thread" prio=10 tid=0x00007f07f0091800 nid=0x7eed runnable
>
> "GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f07f0015800 nid=0x7ee9 
> runnable
>
> "GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f07f0017800 nid=0x7eea 
> runnable
>
> "GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f07f0019000 nid=0x7eeb 
> runnable
>
> "GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f07f001b000 nid=0x7eec 
> runnable
>
> "VM Periodic Task Thread" prio=10 tid=0x00007f07f00fa000 nid=0x7ef4 waiting 
> on condition
>
> JNI global references: 172
>
> Heap
>  PSYoungGen      total 253952K, used 81352K [0x00000000ec0b0000, 
> 0x0000000100000000, 0x0000000100000000)
>   eden space 196800K, 13% used 
> [0x00000000ec0b0000,0x00000000edb6f560,0x00000000f80e0000)
>   from space 57152K, 94% used 
> [0x00000000fc340000,0x00000000ff7f2d10,0x00000000ffb10000)
>   to   space 65088K, 0% used 
> [0x00000000f80e0000,0x00000000f80e0000,0x00000000fc070000)
>  ParOldGen       total 66624K, used 44077K [0x00000000c4200000, 
> 0x00000000c8310000, 0x00000000ec0b0000)
>   object space 66624K, 66% used 
> [0x00000000c4200000,0x00000000c6d0b410,0x00000000c8310000)
>  PSPermGen       total 24384K, used 12058K [0x00000000bf000000, 
> 0x00000000c07d0000, 0x00000000c4200000)
>   object space 24384K, 49% used 
> [0x00000000bf000000,0x00000000bfbc6878,0x00000000c07d0000)
>
> Regards,
> Graham
> --
>

Reply via email to