Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0000311 [SVNKit] bug major sometimes 2009-06-03 15:00 2010-05-15 02:57
Reporter Igor Burilo View Status public  
Assigned To oka
Priority normal Resolution open  
Status assigned   Product Version 1.3.0
Summary 0000311: Actions hang 1024 seconds before they complete
Description On occasion the action (check-in or update) that I perform hangs for 1024 seconds before it completes successfully. During that time it is not possible to cancel the action.
I have only observed this behavior when working with svn+ssh.

I looked into SVNKit code and found the reason of the problem:
SVNKit uses trilead library for SSH and to check connection status it calls following method from trilead
com.trilead.ssh2.channel.ChannelManager.waitForChannelRequestResult(ChannelManager.java:179) which calls 'wait' on Channel. But as SVNKit's thread is in waiting state it can't handle cancel event.

This is a pseudo-code I use to run operations:
Startup another thread which listens to cancel action, e.g. from UI, and which calls cancel action:
if (need to cancel) {
 SVNClientEx client = ...;
 client.cancelOperation();
}

Call commit operation:
SVNClientEx client = ...
client.commit(...);

Here are relevant stracktraces:
java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007fd35513b128> (a com.trilead.ssh2.channel.Channel)
    at java.lang.Object.wait(Object.java:502)
    at com.trilead.ssh2.channel.ChannelManager.waitForChannelRequestResult(ChannelManager.java:179)
    - locked <0x00007fd35513b128> (a com.trilead.ssh2.channel.Channel)
    at com.trilead.ssh2.channel.ChannelManager.requestChannelTrileadPing(ChannelManager.java:634)
    at com.trilead.ssh2.Session.ping(Session.java:324)
    at org.tmatesoft.svn.core.internal.io.svn.SVNSSHConnector.isStale(SVNSSHConnector.java:225)
    at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.isConnectionStale(SVNConnection.java:328)
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:1222)
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.setLocation(SVNRepositoryImpl.java:124)
    at org.tmatesoft.svn.core.wc.DefaultSVNRepositoryPool.createRepository(DefaultSVNRepositoryPool.java:217)
    - locked <0x00007fd3522fa1b8> (a org.tmatesoft.svn.core.wc.DefaultSVNRepositoryPool)
    at org.tmatesoft.svn.core.wc.SVNClientManager.createRepository(SVNClientManager.java:251)
    at org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:335)
    at org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:327)
    at org.tmatesoft.svn.core.wc.SVNCommitClient.doCommit(SVNCommitClient.java:991)
    at org.tmatesoft.svn.core.javahl.SVNClientImpl.commit(SVNClientImpl.java:767)
    
Additional Information Happens only when using ssh.
Version: SVNKit 1.3.0 r5847 SVN/1.6.2.
Tags No tags attached.
planned for version 1.2.x
Attached Files

- Relationships

-  Notes
(0000593)
thhal (reporter)
2009-06-03 21:25

This issue blocks the Subversive bugzilla https://bugs.eclipse.org/bugs/show_bug.cgi?id=260743 [^]
(0000594)
thhal (reporter)
2009-06-14 12:20

Question: Who is setting the 1024 seconds timeout? Is that done in SVNKit or at the server? Perhaps it's meant to be 1024 milliseconds? I need to know because if that's the case, and if it happens at the server end, then I should notify the server admin to get this changed.
(0000595)
thhal (reporter)
2009-06-17 16:17

Is there anything I can do to help with this issue? I'm constantly bitten by it and since it requires an external kill of the Eclipse IDE followed by a restart every time it happens, I find it to be more then a minor irritation.

I'm happy to help if there is anything I can do.
(0000604)
thhal (reporter)
2009-06-28 14:35

Ping?
(0000606)
oka (administrator)
2009-06-30 15:37

Hello,

I apologize for delay with the answer.

I think this issue should be fixed in r5545 in 1.3.x branch. Since that revision SSH session ping is no longer used by default (unless you have svnkit.ssh2.ping system property set to "true").

Could you please try to use latest version of SVNKit from 1.3.x branch (you may download binaries at httsp://teamcity.svnkit.com/)? [^]

Thanks!
(0000637)
thhal (reporter)
2009-08-18 19:46

Igor Burilo claims that they are now using an SVNKit where this bug should be fixed. Looking at the svnkit.build.properties in my installation I see the following:

#properties for SVN runtime

svnkit.version.string=SVN/1.6.2 SVNKit/1.3.0 (http://svnkit.com/) [^] r5847

svnkit.version.major=1

svnkit.version.minor=3

svnkit.version.micro=0

svnkit.version.revision=5847



#build.xml properties

jna.version=3.0.9

trilead.ssh2.version=build213-svnkit-1.3-patch


I still have the same problem. Here is a full thread dump form my JVM at the time when it's hung:

Full thread dump Java HotSpot(TM) 64-Bit Server VM (1.5.0_18-b02 mixed mode):

"ModalContext" prio=1 tid=0x00000000430d8600 nid=0x74a5 in Object.wait() [0x00007f2603fdd000..0x00007f2603fdda60]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f2679b6ff30> (a java.lang.Object)
    at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:187)
    - locked <0x00007f2679b6ff30> (a java.lang.Object)
    at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:87)
    at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:232)
    at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:117)
    at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1747)
    at org.eclipse.core.internal.resources.SaveManager.save(SaveManager.java:1005)
    at org.eclipse.core.internal.resources.Workspace.save(Workspace.java:1831)
    at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor$5.run(IDEWorkbenchAdvisor.java:453)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

"Worker-197" prio=1 tid=0x00007f261899ac50 nid=0x69af in Object.wait() [0x00007f2603cda000..0x00007f2603cdace0]
    at java.lang.Object.wait(Native Method)
    at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
    - locked <0x00007f267844cd40> (a org.eclipse.core.internal.jobs.WorkerPool)
    at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

"Worker-195" prio=1 tid=0x00007f26187bb030 nid=0x6985 in Object.wait() [0x00007f260e86f000..0x00007f260e86fae0]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f2679b6ff30> (a java.lang.Object)
    at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:187)
    - locked <0x00007f2679b6ff30> (a java.lang.Object)
    at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:87)
    at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:232)
    at org.eclipse.core.internal.utils.StringPoolJob.run(StringPoolJob.java:99)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

"Worker-194" prio=1 tid=0x00007f2618092ef0 nid=0x6971 in Object.wait() [0x00007f25e4615000..0x00007f25e4615be0]
    at java.lang.Object.wait(Native Method)
    at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
    - locked <0x00007f267844cd40> (a org.eclipse.core.internal.jobs.WorkerPool)
    at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

"Worker-192" prio=1 tid=0x00007f26180247c0 nid=0x68f2 in Object.wait() [0x00007f2616e75000..0x00007f2616e75d60]
    at java.lang.Object.wait(Native Method)
    at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
    - locked <0x00007f267844cd40> (a org.eclipse.core.internal.jobs.WorkerPool)
    at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

"Thread-1757" daemon prio=1 tid=0x00007f26180124c0 nid=0x6798 in Object.wait() [0x00007f25d8aec000..0x00007f25d8aecc60]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f26885a4838> (a com.trilead.ssh2.channel.Channel)
    at java.lang.Object.wait(Object.java:474)
    at com.trilead.ssh2.channel.ChannelManager.getChannelData(ChannelManager.java:987)
    - locked <0x00007f26885a4838> (a com.trilead.ssh2.channel.Channel)
    at com.trilead.ssh2.channel.ChannelInputStream.read(ChannelInputStream.java:58)
    at com.trilead.ssh2.channel.ChannelInputStream.read(ChannelInputStream.java:70)
    at com.trilead.ssh2.StreamGobbler$GobblerThread.run(StreamGobbler.java:47)

"Thread-1756" daemon prio=1 tid=0x00007f26187df540 nid=0x6797 runnable [0x00007f260e76e000..0x00007f260e76ede0]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at com.trilead.ssh2.crypto.cipher.CipherInputStream.fill_buffer(CipherInputStream.java:41)
    at com.trilead.ssh2.crypto.cipher.CipherInputStream.internal_read(CipherInputStream.java:52)
    at com.trilead.ssh2.crypto.cipher.CipherInputStream.getBlock(CipherInputStream.java:79)
    at com.trilead.ssh2.crypto.cipher.CipherInputStream.read(CipherInputStream.java:108)
    at com.trilead.ssh2.transport.TransportConnection.receiveMessage(TransportConnection.java:232)
    at com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:676)
    at com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:475)
    at java.lang.Thread.run(Thread.java:595)

"Worker-188" prio=1 tid=0x00007f26184c01a0 nid=0x677d in Object.wait() [0x00007f260ed74000..0x00007f260ed74c60]
    at java.lang.Object.wait(Native Method)
    at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
    - locked <0x00007f267844cd40> (a org.eclipse.core.internal.jobs.WorkerPool)
    at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

"SVN-DWGNF" prio=1 tid=0x00007f2618411090 nid=0x6245 in Object.wait() [0x00007f2614597000..0x00007f2614598ce0]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f26885a4838> (a com.trilead.ssh2.channel.Channel)
    at java.lang.Object.wait(Object.java:474)
    at com.trilead.ssh2.channel.ChannelManager.getChannelData(ChannelManager.java:987)
    - locked <0x00007f26885a4838> (a com.trilead.ssh2.channel.Channel)
    at com.trilead.ssh2.channel.ChannelInputStream.read(ChannelInputStream.java:58)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    - locked <0x00007f268859fc98> (a java.io.BufferedInputStream)
    at org.tmatesoft.svn.core.internal.util.SVNLogInputStream.read(SVNLogInputStream.java:75)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readChar(SVNReader.java:464)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.skipWhiteSpace(SVNReader.java:479)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readTuple(SVNReader.java:281)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.parse(SVNReader.java:235)
    at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.read(SVNConnection.java:260)
    at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.authenticate(SVNConnection.java:160)
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.authenticate(SVNRepositoryImpl.java:1260)
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.reparent(SVNRepositoryImpl.java:147)
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.setLocation(SVNRepositoryImpl.java:125)
    at org.tmatesoft.svn.core.wc.DefaultSVNRepositoryPool.createRepository(DefaultSVNRepositoryPool.java:220)
    - locked <0x00007f267adaddd8> (a org.tmatesoft.svn.core.wc.DefaultSVNRepositoryPool)
    at org.tmatesoft.svn.core.wc.SVNClientManager.createRepository(SVNClientManager.java:252)
    at org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:338)
    at org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:330)
    at org.tmatesoft.svn.core.wc.SVNCommitClient.doCommit(SVNCommitClient.java:992)
    at org.tmatesoft.svn.core.javahl.SVNClientImpl.commit(SVNClientImpl.java:767)
    at org.polarion.team.svn.connector.svnkit.SVNKitConnector.commit(SVNKitConnector.java:266)
    at org.eclipse.team.svn.core.extension.factory.ThreadNameModifier.commit(ThreadNameModifier.java:98)
    at org.eclipse.team.svn.core.operation.local.CommitOperation$2.run(CommitOperation.java:123)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doSubTask(ProgressMonitorUtility.java:118)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:146)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:141)
    at org.eclipse.team.svn.core.operation.local.CommitOperation.performCommit(CommitOperation.java:121)
    at org.eclipse.team.svn.core.operation.local.CommitOperation.runImpl(CommitOperation.java:92)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:77)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104)
    at org.eclipse.team.svn.core.operation.CompositeOperation.runImpl(CompositeOperation.java:94)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:77)
    at org.eclipse.team.svn.core.operation.LoggedOperation.run(LoggedOperation.java:38)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:90)
    at org.eclipse.team.svn.ui.utility.WorkspaceModifyCancellableOperationWrapper.execute(WorkspaceModifyCancellableOperationWrapper.java:58)
    at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
    at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
    - locked <0x00007f26aba0f6f0> (a org.eclipse.team.svn.ui.utility.WorkspaceModifyCancellableOperationWrapper)
    at org.eclipse.team.svn.ui.utility.SVNTeamOperationWrapper.run(SVNTeamOperationWrapper.java:35)
    at org.eclipse.team.internal.ui.actions.JobRunnableContext.run(JobRunnableContext.java:144)
    at org.eclipse.team.internal.ui.actions.JobRunnableContext$ResourceJob.runInWorkspace(JobRunnableContext.java:72)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

"Worker-172" prio=1 tid=0x00007f26184dec00 nid=0x611c in Object.wait() [0x00007f2625cb2000..0x00007f2625cb2ce0]
    at java.lang.Object.wait(Native Method)
    at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
    - locked <0x00007f267844cd40> (a org.eclipse.core.internal.jobs.WorkerPool)
    at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

"645750538@qtp-477854123-7" prio=1 tid=0x00007f26188e4e10 nid=0x47a9 in Object.wait() [0x00007f260ea71000..0x00007f260ea71b60]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f2683b4f0b0> (a org.mortbay.thread.QueuedThreadPool$PoolThread)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:563)
    - locked <0x00007f2683b4f0b0> (a org.mortbay.thread.QueuedThreadPool$PoolThread)

"Timer-80" daemon prio=1 tid=0x00007f26184abf30 nid=0x477f in Object.wait() [0x00007f2614474000..0x00007f2614474be0]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f2683b4d968> (a java.util.TaskQueue)
    at java.util.TimerThread.mainLoop(Timer.java:509)
    - locked <0x00007f2683b4d968> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:462)

"1227587633@qtp-477854123-1 - Acceptor0 SelectChannelConnector@0.0.0.0:56736" prio=1 tid=0x00007f26180f24e0 nid=0x477e runnable [0x00007f26649df000..0x00007f26649dfb60]
    at sun.nio.ch.PollArrayWrapper.poll0(Native Method)
    at sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:100)
    at sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
    - locked <0x00007f26839bcf20> (a sun.nio.ch.Util$1)
    - locked <0x00007f26839bcf08> (a java.util.Collections$UnmodifiableSet)
    - locked <0x00007f26839bcdb8> (a sun.nio.ch.PollSelectorImpl)
    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
    at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:432)
    at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:185)
    at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124)
    at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:707)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)

"Connect thread dev.eclipse.org session" prio=1 tid=0x00007f2654087720 nid=0x300a runnable [0x00007f2648f44000..0x00007f2648f44c60]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at com.jcraft.jsch.IO.getByte(IO.java:82)
    at com.jcraft.jsch.Session.read(Session.java:809)
    at com.jcraft.jsch.Session.run(Session.java:1193)
    at java.lang.Thread.run(Thread.java:595)

"Worker-15" prio=1 tid=0x00007f26181d8b10 nid=0x2f0e waiting on condition [0x00007f264ac1c000..0x00007f264ac1ca60]
    at java.lang.Thread.sleep(Native Method)
    at org.eclipse.equinox.internal.p2.repository.FileReader$CancelHandler.run(FileReader.java:84)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

"Worker-14" prio=1 tid=0x00007f2654001280 nid=0x2f0d waiting on condition [0x00007f26497df000..0x00007f26497dfbe0]
    at java.lang.Thread.sleep(Native Method)
    at org.eclipse.equinox.internal.p2.repository.FileReader$CancelHandler.run(FileReader.java:84)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

"MultiThreadedHttpConnectionManager cleanup" daemon prio=1 tid=0x00007f26180121e0 nid=0x2ec8 in Object.wait() [0x00007f2625ab0000..0x00007f2625ab0ce0]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f267c4f26c8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:120)
    - locked <0x00007f267c4f26c8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:136)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$ReferenceQueueThread.run(MultiThreadedHttpConnectionManager.java:1122)

"Timer-74" prio=1 tid=0x00000000415492e0 nid=0x2ebf in Object.wait() [0x00007f2625bb1000..0x00007f2625bb1a60]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f267bad4520> (a java.util.TaskQueue)
    at java.lang.Object.wait(Object.java:474)
    at java.util.TimerThread.mainLoop(Timer.java:483)
    - locked <0x00007f267bad4520> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:462)

"[ThreadPool Manager] - Idle Thread" daemon prio=1 tid=0x00007f262c010800 nid=0x2e87 in Object.wait() [0x00007f2665147000..0x00007f2665147a60]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f267b7e3988> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)
    at java.lang.Object.wait(Object.java:474)
    at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:106)
    - locked <0x00007f267b7e3988> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)

"SVN Kit 1.2 Connector" prio=1 tid=0x00007f26300689c0 nid=0x2e68 in Object.wait() [0x00007f2648e43000..0x00007f2648e43c60]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f267a843710> (a java.util.ArrayList)
    at org.polarion.team.svn.connector.svnkit.SVNKitConnector$ProgressMonitorThread.run(SVNKitConnector.java:1632)
    - locked <0x00007f267a843710> (a java.util.ArrayList)

"Java indexing" daemon prio=1 tid=0x0000000041aa73a0 nid=0x2e5a in Object.wait() [0x00007f2626ed6000..0x00007f2626ed6b60]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f2679659940> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
    at java.lang.Object.wait(Object.java:474)
    at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:378)
    - locked <0x00007f2679659940> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
    at java.lang.Thread.run(Thread.java:595)

"[Timer] - Main Queue Handler" daemon prio=1 tid=0x00007f2630010500 nid=0x2e55 in Object.wait() [0x00007f264aa1a000..0x00007f264aa1ade0]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f267995c798> (a java.lang.Object)
    at org.eclipse.equinox.internal.util.impl.tpt.timer.TimerImpl.run(TimerImpl.java:141)
    - locked <0x00007f267995c798> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:595)

"Provisioning Event Dispatcher" daemon prio=1 tid=0x00007f261c21ed10 nid=0x2e51 in Object.wait() [0x00007f2664101000..0x00007f2664101a60]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f26795102d8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
    at java.lang.Object.wait(Object.java:474)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:386)
    - locked <0x00007f26795102d8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:326)

"Bundle File Closer" daemon prio=1 tid=0x00007f261c4c3e20 nid=0x2e4e in Object.wait() [0x00007f264a38a000..0x00007f264a38ace0]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f2679273708> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
    at java.lang.Object.wait(Object.java:474)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:386)
    - locked <0x00007f2679273708> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:326)

"Start Level Event Dispatcher" daemon prio=1 tid=0x0000000041283d60 nid=0x2e4d in Object.wait() [0x00007f2664f45000..0x00007f2664f45c60]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f2679234bf0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
    at java.lang.Object.wait(Object.java:474)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:386)
    - locked <0x00007f2679234bf0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:326)

"Framework Event Dispatcher" daemon prio=1 tid=0x00000000412a0be0 nid=0x2e4b in Object.wait() [0x00007f2665046000..0x00007f2665046d60]
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00007f2679214f70> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
    at java.lang.Object.wait(Object.java:474)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:386)
    - locked <0x00007f2679214f70> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:326)

"Low Memory Detector" daemon prio=1 tid=0x0000000041105250 nid=0x2e47 runnable [0x0000000000000000..0x0000000000000000]

"CompilerThread1" daemon prio=1 tid=0x00000000411037f0 nid=0x2e46 waiting on condition [0x0000000000000000..0x00007f26674d64c0]

"CompilerThread0" daemon prio=1 tid=0x0000000041102450 nid=0x2e45 waiting on condition [0x0000000000000000..0x00007f26675d7630]

"AdapterThread" daemon prio=1 tid=0x0000000041101080 nid=0x2e44 waiting on condition [0x0000000000000000..0x0000000000000000]

"Signal Dispatcher" daemon prio=1 tid=0x00000000410ffdc0 nid=0x2e43 waiting on condition [0x0000000000000000..0x0000000000000000]

"Finalizer" daemon prio=1 tid=0x00000000410ee300 nid=0x2e42 in Object.wait() [0x00007f26678db000..0x00007f26678dbd60]
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:120)
    - locked <0x00007f2678762fc8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:136)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=1 tid=0x00000000410edb00 nid=0x2e41 in Object.wait() [0x00007f26679dc000..0x00007f26679dcae0]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:474)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
    - locked <0x00007f2678639ca8> (a java.lang.ref.Reference$Lock)

"main" prio=1 tid=0x000000004101f140 nid=0x2e3d runnable [0x00007fff5e451000..0x00007fff5e454d20]
    at org.eclipse.swt.internal.gtk.OS.Call(Native Method)
    at org.eclipse.swt.widgets.Display.sleep(Display.java:3893)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:174)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:388)
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
    at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275)
    at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.disconnectFromWorkspace(IDEWorkbenchAdvisor.java:460)
    at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.postShutdown(IDEWorkbenchAdvisor.java:316)
    at org.eclipse.ui.internal.Workbench.shutdown(Workbench.java:2732)
    at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:939)
    at org.eclipse.ui.internal.Workbench.access$15(Workbench.java:856)
    at org.eclipse.ui.internal.Workbench$23.run(Workbench.java:1100)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.internal.Workbench.close(Workbench.java:1098)
    at org.eclipse.ui.internal.Workbench.close(Workbench.java:1070)
    at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:720)
    at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:699)
    at org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:815)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:813)
    at org.eclipse.jface.window.Window.handleShellCloseEvent(Window.java:741)
    at org.eclipse.jface.window.Window$3.shellClosed(Window.java:687)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:92)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1176)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1200)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1185)
    at org.eclipse.swt.widgets.Shell.closeWidget(Shell.java:612)
    at org.eclipse.swt.widgets.Shell.gtk_delete_event(Shell.java:1087)
    at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1562)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4586)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:4191)
    at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
    at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:7586)
    at org.eclipse.swt.widgets.Display.eventProc(Display.java:1185)
    at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
    at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1858)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3110)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    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:585)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1287)

"VM Thread" prio=1 tid=0x00000000410e97d0 nid=0x2e40 runnable

"GC task thread#0 (ParallelGC)" prio=1 tid=0x000000004103cb10 nid=0x2e3e runnable

"GC task thread#1 (ParallelGC)" prio=1 tid=0x000000004103d990 nid=0x2e3f runnable

"VM Periodic Task Thread" prio=1 tid=0x0000000041033a10 nid=0x2e48 waiting on condition
(0000638)
thhal (reporter)
2009-08-18 19:50

Please note that the real problem is not that the commit hangs for 1024 seconds before it completes, it is the really annoying fact that the only way to get out of it is to do an external kill of my IDE. Attempts to cancel the commit does not have any effect.
(0000639)
thhal (reporter)
2009-08-25 17:12

Any news on this? The stack trace here is different. It origins from setLocation() and the symptom is exactly the same.

Would it be possible to honor a cancel request and terminate the attempt?
(0000645)
thhal (reporter)
2009-09-07 19:00

Ping?
(0000650)
thhal (reporter)
2009-09-10 12:53

I get hit by this bug every 5th check-in or so. So sometime during the day, I need to do an exernal kill of my Eclipse IDE or sit back and wait for 15 minutes. So, no matter how much I like the other features of SVNKit, this might force me to seek other alternatives.

How much activity is there around SVNKit nowadays? I think it's an excellent product in many other respects and I'm a strong advocate of pure java solutions. If you lack resources for the project, perhaps you should consider moving it to EPL and to Eclipse? I'd be more then happy to help out with that.
(0000851)
seattleturtle (reporter)
2010-05-14 05:25

Bump. Is there any news on this issue? I am affected similarly to thhal.
(0000852)
oka (administrator)
2010-05-14 20:57

Hello,

Delays on commit might be caused by the server configuration (where svnserve or apache mod_dav_svn) runs. In this case delays will occur both with SVNKit and native Subversion client and to fix the problem one have to configure apr to use /dev/urandom as a default random device instead of /dev/random.

Read more on this in Subversion FAQ: http://subversion.apache.org/faq.html#slow-private-svnserve [^]
(0000853)
thhal (reporter)
2010-05-15 02:57

@oka, I think it's very unlikely that this delay is in any way normal. Please note that it is 17 minutes!!!

The issue is also that when it hangs this way, the process itself is uninterruptible. There's no way to get out of it but either wait for 17 minutes or kill the client.

I have never experienced this with JavaHL. It only happens when I use SVNKit. I've experienced the delay a very large number of times (hundreds) and always with SVNKit. I've been using JavaHL instead for half a year now against the same repository and with the same setup and experienced no delay. Whenever I try SVNKit again, I get the delays.

So as far as I'm concerned, this is a SVNKit problem and there's absolutely no doubt about that.

- Issue History
Date Modified Username Field Change
2009-06-03 15:00 Igor Burilo New Issue
2009-06-03 21:23 thhal Issue Monitored: thhal
2009-06-03 21:25 thhal Note Added: 0000593
2009-06-10 22:20 oka Status new => assigned
2009-06-10 22:20 oka Assigned To => oka
2009-06-14 12:20 thhal Note Added: 0000594
2009-06-17 16:17 thhal Note Added: 0000595
2009-06-28 14:35 thhal Note Added: 0000604
2009-06-30 15:37 oka Note Added: 0000606
2009-08-18 19:46 thhal Note Added: 0000637
2009-08-18 19:50 thhal Note Added: 0000638
2009-08-25 17:12 thhal Note Added: 0000639
2009-09-07 19:00 thhal Note Added: 0000645
2009-09-10 12:53 thhal Note Added: 0000650
2009-09-20 11:31 thhal Issue End Monitor: thhal
2009-09-20 11:31 thhal Issue Monitored: thhal
2010-05-14 05:25 seattleturtle Note Added: 0000851
2010-05-14 20:57 oka Note Added: 0000852
2010-05-15 02:57 thhal Note Added: 0000853


Mantis 1.1.0[^]
Copyright © 2000 - 2007 Mantis Group
Powered by Mantis Bugtracker