Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 70445

Summary: [SSH2] eclipse freezes during CVS
Product: [Eclipse Project] Platform Reporter: caschrei
Component: CVSAssignee: Atsuhiko Yamanaka <ymnk>
Status: RESOLVED INVALID QA Contact:
Severity: normal    
Priority: P3 CC: minfrin, ymnk
Version: 3.0   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description caschrei CLA 2004-07-20 12:56:37 EDT
To: eclipse newsgroup
Subject: CVS access causes Eclipse 3.0.0 to freeze

Our Eclipse 3.0.0 installation locks up when we try to access a
CVS repository on the same Linux box.  

The simplest way to replicate this problem is:

* log on to the machine running our CVS repository, call it "bigboy".

* start Eclipse on a blank workspace

* click on File -> New -> Project

* in the New Project wizard, expand CVS, select "Checkout Projects From
	CVS", and click on "next".

* enter a host name ("bigboy"), repository path, valid user name, valid
	password, specify "extssh" as connection type; click on "use default
	port", then click on "next".

The progress bar makes it to about 5%, and then the Eclipse process
freezes and becomes completely unresponsive.  We have let it stay frozen for
a few hours without seeing any signs of progress.  (Alternately, you can
ask Eclipse's New Project wizard to show a list of valid CVS modules, in which
case Eclipse tries to query CVS and freezes at the 25% point.)

Michael Valenta requested that I post a stack trace for this problem in
Bugzilla.  (I originally reported it on the eclipse newsgroup on 19jul2004
at 17:46).  I generated two stack traces, and am including both of them
because they are different.  After the stack traces I am including a
description of the issue's misbehavior copied from the original newsgroup
posting.

Please let me know if there is other information I can provide to help
troubleshoot this.

Sincerely,


Christian Schreiner
caschrei@rockwellcollins.com

Stack dump #1 (generated via `kill -3 <java_pid>`):

1>  Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):
1> 
1> "ModalContext" prio=1 tid=0x08682650 nid=0x22df runnable
1> [4e617000..4e6178b8]
1>         at java.io.FileInputStream.readBytes(Native Method)
1>         at java.io.FileInputStream.read(FileInputStream.java:194)
1>         at java.io.BufferedInputStream.read1(BufferedInputStream.java:220)
1>         at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
1>         - locked <0x450e8138> (a java.io.BufferedInputStream)
1> 
1>         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
1>         at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
1>         at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
1>         - locked <0x450e8158> (a java.io.BufferedInputStream)
1>         at
1>
sun.security.provider.SeedGenerator$URLSeedGenerator.getSeedByte(SeedGenerator.java:467)
1>         at
1> sun.security.provider.SeedGenerator.getSeedBytes(SeedGenerator.java:137)
1>         at
1> sun.security.provider.SeedGenerator.generateSeed(SeedGenerator.java:132)
1>         at
1> sun.security.provider.SecureRandom.engineGenerateSeed(SecureRandom.java:112)
1>         at
1> sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java:169)
1>         - locked <0x450e81b8> (a sun.security.provider.SecureRandom)
1>         at java.security.SecureRandom.nextBytes(SecureRandom.java:381)
1>         - locked <0x450e8208> (a java.security.SecureRandom)
1>         at com.jcraft.jsch.jce.Random.fill(Unknown Source)
1>         at com.jcraft.jsch.Session.send_kexinit(Unknown Source)
1>         at com.jcraft.jsch.Session.receive_kexinit(Unknown Source)
1>         at com.jcraft.jsch.Session.connect(Unknown Source)
1>         at
1> org.eclipse.team.internal.ccvs.ssh2.JSchSession.getSession(JSchSession.java:306)
1>         at
1>
org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection.internalOpen(CVSSSH2ServerConnection.java:117)
1>         at
1>
org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection.open(CVSSSH2ServerConnection.java:99)
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.Connection.open(Connection.java:127)
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.createConnection(CVSRepositoryLocation.java:575)
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.openConnection(CVSRepositoryLocation.java:821)
1>         - locked <0x450de618> (a java.lang.Object)
1>         at
1> org.eclipse.team.internal.ccvs.core.client.Session.open(Session.java:142)
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.validateConnection(CVSRepositoryLocation.java:956)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$2.run(ModuleSelectionPage.java:143)
1>         at
1>
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:101)
1> 
1> "ModalContext" prio=1 tid=0x08740448 nid=0x22de waiting for monitor entry
1> [4ce6e000..4ce6e8b8]
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.openConnection(CVSRepositoryLocation.java:799)
1>         - waiting to lock <0x450de618> (a java.lang.Object)
1>         at
1> org.eclipse.team.internal.ccvs.core.client.Session.open(Session.java:142)
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.validateConnection(CVSRepositoryLocation.java:956)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$2.run(ModuleSelectionPage.java:143)
1>         at
1>
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:101)
1> 
1> "Worker-1" prio=1 tid=0x08592c78 nid=0x22dd in Object.wait()
1> [4e386000..4e3868b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44e46348> (a
1>           org.eclipse.core.internal.jobs.WorkerPool)
1>         at
1> org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166)
1>         - locked <0x44e46348> (a org.eclipse.core.internal.jobs.WorkerPool)
1>         at
1> org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:193)
1>         at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)
1> 
1> "Reference Cleaner - 2" prio=1 tid=0x08367540 nid=0x22d2 in Object.wait()
1> [4dd9b000..4dd9b8b8]
1>         at java.lang.Object.wait(Native Method)
1> 
1>         - waiting on <0x44f01b88> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
1>         - locked <0x44f01b88> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
1>         at
1>
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207)
1> 
1> "Reference Cleaner - 1" prio=1 tid=0x08367248 nid=0x22d1 in Object.wait()
1> [4dd1a000..4dd1a8b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44f01bf8> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
1>         - locked <0x44f01bf8> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
1>         at
1>
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207)
1> 
1> "Start Level Event Dispatcher" daemon prio=1 tid=0x08263420 nid=0x22cf in
1> Object.wait() [4cfff000..4cfff8b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44ccd160> (a
1>           org.eclipse.osgi.framework.eventmgr.EventThread)
1>         at java.lang.Object.wait(Object.java:429)
1>         at
1>
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
1>         - locked <0x44ccd160> (a
1>           org.eclipse.osgi.framework.eventmgr.EventThread)
1>         at
1> org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)
1> 
1> "Framework Event Dispatcher" daemon prio=1 tid=0x0825db18 nid=0x22ce in
1> Object.wait() [4cf7e000..4cf7e8b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44cbf9d8> (a
1>           org.eclipse.osgi.framework.eventmgr.EventThread)
1>         at java.lang.Object.wait(Object.java:429)
1>         at
1>
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
1>         - locked <0x44cbf9d8> (a
1>           org.eclipse.osgi.framework.eventmgr.EventThread)
1>         at
1> org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)
1> 
1> "Signal Dispatcher" daemon prio=1 tid=0x0809fda8 nid=0x22c9 waiting on
1> condition [0..0]
1> 
1> "Finalizer" daemon prio=1 tid=0x0808af38 nid=0x22c7 in Object.wait()
1> [4c952000..4c9528b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44c3a518> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
1>         - locked <0x44c3a518> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
1>         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
1> 
1> "Reference Handler" daemon prio=1 tid=0x0808a378 nid=0x22c6 in Object.wait()
1> [4c8d1000..4c8d18b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44c3a580> (a java.lang.ref.Reference$Lock)
1>         at java.lang.Object.wait(Object.java:429)
1>         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
1>         - locked <0x44c3a580> (a java.lang.ref.Reference$Lock)
1> 
1> "main" prio=1 tid=0x08052880 nid=0x22c3 in Object.wait()
1> [bfffc000..bfffd228]
1>         at java.lang.Object.wait(Native Method)
1>         at org.eclipse.swt.widgets.Display.sleep(Display.java:2867)
1>         - locked <0x48ae9878> (a java.lang.Class)
1>         at
1>
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:137)
1> 
1>         at
1> org.eclipse.jface.operation.ModalContext.run(ModalContext.java:262)
1>         at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:752)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage.updateEnablements(ModuleSelectionPage.java:140)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$1.handleEvent(ModuleSelectionPage.java:70)
1>         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
1>         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:954)
1>         at
1> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2595)
1>         at
1> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2298)
1>         at
1>
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:136)
1>         at
1> org.eclipse.jface.operation.ModalContext.run(ModalContext.java:262)
1>         at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:752)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage.updateEnablements(ModuleSelectionPage.java:140)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$1.handleEvent(ModuleSelectionPage.java:70)
1>         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
1>         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:954)
1>         at
1> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2595)
1>         at
1> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2298)
1>         at org.eclipse.jface.window.Window.runEventLoop(Window.java:668)
1>         at org.eclipse.jface.window.Window.open(Window.java:648)
1>         at
1> org.eclipse.ui.actions.NewProjectAction.run(NewProjectAction.java:111)
1>         at org.eclipse.jface.action.Action.runWithEvent(Action.java:881)
1>         at
1>
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:915)
1>         at
1>
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:866)
1>         at
1>
org.eclipse.jface.action.ActionContributionItem$7.handleEvent(ActionContributionItem.java:785)
1>         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
1>         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:954)
1>         at
1> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2595)
1>         at
1> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2298)
1>         at
1> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
1>         at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
1>         at
1> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
1>         at
1> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
1>         at
1> org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
1>         at
1>
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335)
1>         at
1> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
1>         at
1> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
1>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
1>         at
1> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
1>         at
1>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
1>         at java.lang.reflect.Method.invoke(Method.java:324)
1>         at org.eclipse.core.launcher.Main.basicRun(Main.java:183)
1>         at org.eclipse.core.launcher.Main.run(Main.java:644)
1>         at org.eclipse.core.launcher.Main.main(Main.java:628)
1> 
1> "VM Thread" prio=1 tid=0x08087110 nid=0x22c5 runnable 
1> 
1> "VM Periodic Task Thread" prio=1 tid=0x080a24e8 nid=0x22cb waiting on
1> condition 
1> "Suspend Checker Thread" prio=1 tid=0x0809f450 nid=0x22c8 runnable 
1> 
1> caschrei@bigboi:502:~/proj/shade/eclipse_ws> kill -3 8899 2>&1 | tee foo2
1> Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):
1> 
1> "ModalContext" prio=1 tid=0x08682650 nid=0x22df runnable
1> [4e617000..4e6178b8]
1> 
1>         at java.io.FileInputStream.readBytes(Native Method)
1>         at java.io.FileInputStream.read(FileInputStream.java:194)
1>         at java.io.BufferedInputStream.read1(BufferedInputStream.java:220)
1>         at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
1>         - locked <0x450e8138> (a java.io.BufferedInputStream)
1>         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
1>         at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
1>         at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
1>         - locked <0x450e8158> (a java.io.BufferedInputStream)
1>         at
1>
sun.security.provider.SeedGenerator$URLSeedGenerator.getSeedByte(SeedGenerator.java:467)
1>         at
1> sun.security.provider.SeedGenerator.getSeedBytes(SeedGenerator.java:137)
1>         at
1> sun.security.provider.SeedGenerator.generateSeed(SeedGenerator.java:132)
1>         at
1> sun.security.provider.SecureRandom.engineGenerateSeed(SecureRandom.java:112)
1>         at
1> sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java:169)
1>         - locked <0x450e81b8> (a sun.security.provider.SecureRandom)
1>         at java.security.SecureRandom.nextBytes(SecureRandom.java:381)
1>         - locked <0x450e8208> (a java.security.SecureRandom)
1>         at com.jcraft.jsch.jce.Random.fill(Unknown Source)
1>         at com.jcraft.jsch.Session.send_kexinit(Unknown Source)
1>         at com.jcraft.jsch.Session.receive_kexinit(Unknown Source)
1>         at com.jcraft.jsch.Session.connect(Unknown Source)
1>         at
1> org.eclipse.team.internal.ccvs.ssh2.JSchSession.getSession(JSchSession.java:306)
1>         at
1>
org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection.internalOpen(CVSSSH2ServerConnection.java:117)
1>         at
1>
org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection.open(CVSSSH2ServerConnection.java:99)
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.Connection.open(Connection.java:127)
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.createConnection(CVSRepositoryLocation.java:575)
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.openConnection(CVSRepositoryLocation.java:821)
1>         - locked <0x450de618> (a java.lang.Object)
1>         at
1> org.eclipse.team.internal.ccvs.core.client.Session.open(Session.java:142)
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.validateConnection(CVSRepositoryLocation.java:956)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$2.run(ModuleSelectionPage.java:143)
1>         at
1>
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:101)
1> 
1> "ModalContext" prio=1 tid=0x08740448 nid=0x22de waiting for monitor entry
1> [4ce6e000..4ce6e8b8]
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.openConnection(CVSRepositoryLocation.java:799)
1>         - waiting to lock <0x450de618> (a java.lang.Object)
1>         at
1> org.eclipse.team.internal.ccvs.core.client.Session.open(Session.java:142)
1>         at
1>
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.validateConnection(CVSRepositoryLocation.java:956)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$2.run(ModuleSelectionPage.java:143)
1>         at
1>
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:101)
1> 
1> "Worker-1" prio=1 tid=0x08592c78 nid=0x22dd in Object.wait()
1> [4e386000..4e3868b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44e46348> (a
1>           org.eclipse.core.internal.jobs.WorkerPool)
1>         at
1> org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166)
1>         - locked <0x44e46348> (a org.eclipse.core.internal.jobs.WorkerPool)
1>         at
1> org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:193)
1> 
1>         at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)
1> 
1> "Reference Cleaner - 2" prio=1 tid=0x08367540 nid=0x22d2 in Object.wait()
1> [4dd9b000..4dd9b8b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44f01b88> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
1>         - locked <0x44f01b88> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
1>         at
1>
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207)
1> 
1> "Reference Cleaner - 1" prio=1 tid=0x08367248 nid=0x22d1 in Object.wait()
1> [4dd1a000..4dd1a8b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44f01bf8> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
1>         - locked <0x44f01bf8> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
1>         at
1>
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207)
1> 
1> "Start Level Event Dispatcher" daemon prio=1 tid=0x08263420 nid=0x22cf in
1> Object.wait() [4cfff000..4cfff8b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44ccd160> (a
1>           org.eclipse.osgi.framework.eventmgr.EventThread)
1>         at java.lang.Object.wait(Object.java:429)
1>         at
1>
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
1>         - locked <0x44ccd160> (a
1>           org.eclipse.osgi.framework.eventmgr.EventThread)
1>         at
1> org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)
1> 
1> "Framework Event Dispatcher" daemon prio=1 tid=0x0825db18 nid=0x22ce in
1> Object.wait() [4cf7e000..4cf7e8b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44cbf9d8> (a
1>           org.eclipse.osgi.framework.eventmgr.EventThread)
1>         at java.lang.Object.wait(Object.java:429)
1>         at
1>
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
1>         - locked <0x44cbf9d8> (a
1>           org.eclipse.osgi.framework.eventmgr.EventThread)
1>         at
1> org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)
1> 
1> "Signal Dispatcher" daemon prio=1 tid=0x0809fda8 nid=0x22c9 waiting on
1> condition [0..0]
1> 
1> "Finalizer" daemon prio=1 tid=0x0808af38 nid=0x22c7 in Object.wait()
1> [4c952000..4c9528b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44c3a518> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
1>         - locked <0x44c3a518> (a java.lang.ref.ReferenceQueue$Lock)
1>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
1>         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
1> 
1> "Reference Handler" daemon prio=1 tid=0x0808a378 nid=0x22c6 in Object.wait()
1> [4c8d1000..4c8d18b8]
1>         at java.lang.Object.wait(Native Method)
1>         - waiting on <0x44c3a580> (a java.lang.ref.Reference$Lock)
1>         at java.lang.Object.wait(Object.java:429)
1>         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
1>         - locked <0x44c3a580> (a java.lang.ref.Reference$Lock)
1> 
1> 
1> "main" prio=1 tid=0x08052880 nid=0x22c3 in Object.wait()
1> [bfffc000..bfffd228]
1>         at java.lang.Object.wait(Native Method)
1>         at org.eclipse.swt.widgets.Display.sleep(Display.java:2867)
1>         - locked <0x48ae9878> (a java.lang.Class)
1>         at
1>
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:137)
1>         at
1> org.eclipse.jface.operation.ModalContext.run(ModalContext.java:262)
1>         at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:752)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage.updateEnablements(ModuleSelectionPage.java:140)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$1.handleEvent(ModuleSelectionPage.java:70)
1>         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
1>         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:954)
1>         at
1> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2595)
1>         at
1> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2298)
1>         at
1>
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:136)
1>         at
1> org.eclipse.jface.operation.ModalContext.run(ModalContext.java:262)
1>         at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:752)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage.updateEnablements(ModuleSelectionPage.java:140)
1>         at
1>
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$1.handleEvent(ModuleSelectionPage.java:70)
1>         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
1>         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:954)
1>         at
1> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2595)
1>         at
1> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2298)
1>         at org.eclipse.jface.window.Window.runEventLoop(Window.java:668)
1>         at org.eclipse.jface.window.Window.open(Window.java:648)
1>         at
1> org.eclipse.ui.actions.NewProjectAction.run(NewProjectAction.java:111)
1>         at org.eclipse.jface.action.Action.runWithEvent(Action.java:881)
1>         at
1>
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:915)
1>         at
1>
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:866)
1>         at
1>
org.eclipse.jface.action.ActionContributionItem$7.handleEvent(ActionContributionItem.java:785)
1>         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
1>         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:954)
1>         at
1> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2595)
1>         at
1> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2298)
1>         at
1> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
1>         at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
1>         at
1> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
1>         at
1> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
1>         at
1> org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
1>         at
1>
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335)
1>         at
1> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
1>         at
1> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
1>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
1>         at
1> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
1>         at
1>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
1>         at java.lang.reflect.Method.invoke(Method.java:324)
1>         at org.eclipse.core.launcher.Main.basicRun(Main.java:183)
1>         at org.eclipse.core.launcher.Main.run(Main.java:644)
1>         at org.eclipse.core.launcher.Main.main(Main.java:628)
1> 
1> "VM Thread" prio=1 tid=0x08087110 nid=0x22c5 runnable 
1> 
1> "VM Periodic Task Thread" prio=1 tid=0x080a24e8 nid=0x22cb waiting on
1> condition 
1> "Suspend Checker Thread" prio=1 tid=0x0809f450 nid=0x22c8 runnable 
1> 
1> 

Stack dump #2:

2> Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):
2> 
2> "ModalContext" prio=1 tid=0x081c9630 nid=0x2342 waiting for monitor entry
[4e4fb000..4e4fb8b8]
2> 	at
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.openConnection(CVSRepositoryLocation.java:799)
2> 	- waiting to lock <0x44800000> (a java.lang.Object)
2> 	at org.eclipse.team.internal.ccvs.core.client.Session.open(Session.java:142)
2> 	at
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.validateConnection(CVSRepositoryLocation.java:956)
2> 	at
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$2.run(ModuleSelectionPage.java:143)
2> 	at
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:101)
2> 
2> "ModalContext" prio=1 tid=0x081c9380 nid=0x2341 runnable [4e47a000..4e47a8b8]
2> 	at java.io.FileInputStream.readBytes(Native Method)
2> 	at java.io.FileInputStream.read(FileInputStream.java:194)
2> 	at java.io.BufferedInputStream.read1(BufferedInputStream.java:220)
2> 	at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
2> 	- locked <0x44782870> (a java.io.BufferedInputStream)
2> 	at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
2> 	at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
2> 	at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
2> 	- locked <0x44782668> (a java.io.BufferedInputStream)
2> 	at
sun.security.provider.SeedGenerator$URLSeedGenerator.getSeedByte(SeedGenerator.java:467)
2> 	at sun.security.provider.SeedGenerator.getSeedBytes(SeedGenerator.java:137)
2> 	at sun.security.provider.SeedGenerator.generateSeed(SeedGenerator.java:132)
2> 	at sun.security.provider.SecureRandom.engineGenerateSeed(SecureRandom.java:112)
2> 	at sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java:169)
2> 	- locked <0x4477dc00> (a sun.security.provider.SecureRandom)
2> 	at java.security.SecureRandom.nextBytes(SecureRandom.java:381)
2> 	- locked <0x4477df58> (a java.security.SecureRandom)
2> 	at com.jcraft.jsch.jce.Random.fill(Unknown Source)
2> 	at com.jcraft.jsch.Session.send_kexinit(Unknown Source)
2> 	at com.jcraft.jsch.Session.receive_kexinit(Unknown Source)
2> 	at com.jcraft.jsch.Session.connect(Unknown Source)
2> 	at
org.eclipse.team.internal.ccvs.ssh2.JSchSession.getSession(JSchSession.java:306)
2> 	at
org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection.internalOpen(CVSSSH2ServerConnection.java:117)
2> 	at
org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection.open(CVSSSH2ServerConnection.java:99)
2> 	at
org.eclipse.team.internal.ccvs.core.connection.Connection.open(Connection.java:127)
2> 	at
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.createConnection(CVSRepositoryLocation.java:575)
2> 	at
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.openConnection(CVSRepositoryLocation.java:821)
2> 	- locked <0x44800000> (a java.lang.Object)
2> 	at org.eclipse.team.internal.ccvs.core.client.Session.open(Session.java:142)
2> 	at
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.validateConnection(CVSRepositoryLocation.java:956)
2> 	at
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$2.run(ModuleSelectionPage.java:143)
2> 	at
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:101)
2> 
2> "Worker-1" prio=1 tid=0x086a1918 nid=0x233c in Object.wait() [4ce6e000..4ce6e8b8]
2> 	at java.lang.Object.wait(Native Method)
2> 	- waiting on <0x44e46378> (a org.eclipse.core.internal.jobs.WorkerPool)
2> 	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166)
2> 	- locked <0x44e46378> (a org.eclipse.core.internal.jobs.WorkerPool)
2> 	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:193)
2> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)
2> 
2> "Reference Cleaner - 2" prio=1 tid=0x080a9348 nid=0x2332 in Object.wait()
[4dd9b000..4dd9b8b8]
2> 	at java.lang.Object.wait(Native Method)
2> 	- waiting on <0x44f01b88> (a java.lang.ref.ReferenceQueue$Lock)
2> 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
2> 	- locked <0x44f01b88> (a java.lang.ref.ReferenceQueue$Lock)
2> 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
2> 	at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207)
2> 
2> "Reference Cleaner - 1" prio=1 tid=0x080aa6c8 nid=0x2331 in Object.wait()
[4dd1a000..4dd1a8b8]
2> 	at java.lang.Object.wait(Native Method)
2> 	- waiting on <0x44f01bf8> (a java.lang.ref.ReferenceQueue$Lock)
2> 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
2> 	- locked <0x44f01bf8> (a java.lang.ref.ReferenceQueue$Lock)
2> 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
2> 	at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207)
2> 
2> "Start Level Event Dispatcher" daemon prio=1 tid=0x08266898 nid=0x232f in
Object.wait() [4cfff000..4cfff8b8]
2> 	at java.lang.Object.wait(Native Method)
2> 	- waiting on <0x44ccd160> (a org.eclipse.osgi.framework.eventmgr.EventThread)
2> 	at java.lang.Object.wait(Object.java:429)
2> 	at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
2> 	- locked <0x44ccd160> (a org.eclipse.osgi.framework.eventmgr.EventThread)
2> 	at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)
2> 
2> "Framework Event Dispatcher" daemon prio=1 tid=0x082490d8 nid=0x232e in
Object.wait() [4cf7e000..4cf7e8b8]
2> 	at java.lang.Object.wait(Native Method)
2> 	- waiting on <0x44cbf9d8> (a org.eclipse.osgi.framework.eventmgr.EventThread)
2> 	at java.lang.Object.wait(Object.java:429)
2> 	at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
2> 	- locked <0x44cbf9d8> (a org.eclipse.osgi.framework.eventmgr.EventThread)
2> 	at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)
2> 
2> "Signal Dispatcher" daemon prio=1 tid=0x0808eec0 nid=0x2329 waiting on
condition [0..0]
2> 
2> "Finalizer" daemon prio=1 tid=0x0808af38 nid=0x2327 in Object.wait()
[4c952000..4c9528b8]
2> 	at java.lang.Object.wait(Native Method)
2> 	- waiting on <0x44c3a518> (a java.lang.ref.ReferenceQueue$Lock)
2> 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
2> 	- locked <0x44c3a518> (a java.lang.ref.ReferenceQueue$Lock)
2> 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
2> 	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
2> 
2> "Reference Handler" daemon prio=1 tid=0x0808a378 nid=0x2326 in Object.wait()
[4c8d1000..4c8d18b8]
2> 	at java.lang.Object.wait(Native Method)
2> 	- waiting on <0x44c3a580> (a java.lang.ref.Reference$Lock)
2> 	at java.lang.Object.wait(Object.java:429)
2> 	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
2> 	- locked <0x44c3a580> (a java.lang.ref.Reference$Lock)
2> 
2> "main" prio=1 tid=0x08052880 nid=0x2323 in Object.wait() [bfffc000..bfffd228]
2> 	at java.lang.Object.wait(Native Method)
2> 	- waiting on <0x48ae9878> (a java.lang.Class)
2> 	at org.eclipse.swt.widgets.Display.sleep(Display.java:2867)
2> 	- locked <0x48ae9878> (a java.lang.Class)
2> 	at
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:137)
2> 	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:262)
2> 	at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:752)
2> 	at
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage.updateEnablements(ModuleSelectionPage.java:140)
2> 	at
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$1.handleEvent(ModuleSelectionPage.java:70)
2> 	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
2> 	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:954)
2> 	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2595)
2> 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2298)
2> 	at
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:136)
2> 	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:262)
2> 	at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:752)
2> 	at
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage.updateEnablements(ModuleSelectionPage.java:140)
2> 	at
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$1.handleEvent(ModuleSelectionPage.java:70)
2> 	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
2> 	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:954)
2> 	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2595)
2> 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2298)
2> 	at org.eclipse.jface.window.Window.runEventLoop(Window.java:668)
2> 	at org.eclipse.jface.window.Window.open(Window.java:648)
2> 	at org.eclipse.ui.actions.NewProjectAction.run(NewProjectAction.java:111)
2> 	at org.eclipse.jface.action.Action.runWithEvent(Action.java:881)
2> 	at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:915)
2> 	at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:866)
2> 	at
org.eclipse.jface.action.ActionContributionItem$7.handleEvent(ActionContributionItem.java:785)
2> 	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
2> 	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:954)
2> 	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2595)
2> 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2298)
2> 	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
2> 	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
2> 	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
2> 	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
2> 	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
2> 	at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335)
2> 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
2> 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
2> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
2> 	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
2> 	at java.lang.reflect.Method.invoke(Method.java:324)
2> 	at org.eclipse.core.launcher.Main.basicRun(Main.java:183)
2> 	at org.eclipse.core.launcher.Main.run(Main.java:644)
2> 	at org.eclipse.core.launcher.Main.main(Main.java:628)
2> 
2> "VM Thread" prio=1 tid=0x08087110 nid=0x2325 runnable 
2> 
2> "VM Periodic Task Thread" prio=1 tid=0x080a24e8 nid=0x232b waiting on condition 
2> "Suspend Checker Thread" prio=1 tid=0x0808e550 nid=0x2328 runnable 


Subject: cvs causes eclipse to freeze

Our Eclipse 3.0.0 installation locks up when we try to access a
CVS repository on the same Linux box.  I would appreciate help in 
narrowing down the problem.  I assume it is at least partially an
Eclipse problem because we can't replicate the problem with the CVS 
command line interface.

The simplest way to replicate this problem is:

* log on to the machine running our CVS repository, call it "bigboy".

* start Eclipse on a blank workspace

* click on File -> New -> Project

* in the New Project wizard, expand CVS, select "Checkout Projects From
	CVS", and click on "next".

* enter a host name ("bigboy"), repository path, valid user name, valid
	password, specify "extssh" as connection type; click on "use default
	port", then click on "next".


The progress bar makes it to about 5%, and then the Eclipse process
freezes and becomes completely unresponsive.  We have let it stay frozen for
a few hours without seeing any signs of progress.  (Alternately, you can
ask Eclipse's New Project wizard to show a list of valid CVS modules, in which
case Eclipse tries to query CVS and freezes at the 25% point.)

We have no trouble committing to our CVS repository from the cvs command line
client using ssh; we also have no trouble communicating with our CVS
repository from Eclipse processes runing on other Linux or Windows boxes.  We
have no trouble running ssh processes from bigboy to bigboy.

The behavior appears similar to what I'd expect for "bug 9295" mentioned
in the Eclipse 3.0.0 release notes, except that the problem does not go
away when we kill Eclipse and restart it, and the advertized workaround does
not affect the problem.

This does appear to be similar to the behavior in the news posting from Graham
Leggett dated 13jul2004 13:04.

Eclipse 3.0.0 _used_ to commit to and checkout from the CVS repository
correctly until last Thursday afternoon, when I had to kill Eclipse several
times in succession, due to other problems.  Eclipse finally came up and
worked, but then I tried commiting 4 files I'd been editing, and it locked up
at 25% through the commit.  Reverting to 3.0RC1 or 3.0M8 does not appear to
affect the problem.

When I bring Eclipse up in that same workspace I was using last Thursday
(instead of a blank one, as in the steps above), Eclipse freezes as soon as I
type the first character that would change any source file.  I infer from the
fact that Eclipse behaves differently in a clean workspace that the
metafiles in that first workspace are corrupted.

So far, I am proceeding on the assumptions that:

	* No significant Eclipse installation files is corrupted.
	(Date stamps show the only modified directory entry in our
	Eclipse installation tree is subdirectory

	<tree_root>/configuration/org.eclipse.core.runtime/.manager

	which is empty and its date stamp is about 24 hours after we started
	having trouble.

	* The problem is somehow related to Eclipse <--> CVS interaction.

	* The problem is not from Eclipse trying to read corrupted metafiles
	it got from CVS, because the freeze happens regardless of the
	project/module we select to check out.   Besides, other linux boxes
	can check out the Thursday project fine.  

Does anyone have an idea of further tests we can run to narrow this
problem down further?  Is there some documentation that I should be reading?
Is there a log file that should contain something useful?  (A detailed web 
search of the newsgroup postings and a cursory read of the Eclipse online
documentation isn't yielding much.)

Versions of the programs I'm using are:

Eclipse 3.0.0
Red Hat Linux 8.0
GTK2 2.0.6 (I know Eclipse 3.0.0 requires 2.2.1, but I assume that is
	irrelevant since GTK is a graphics library, not a networking/CVS 
	library)
CVS 1.11.2 


Thank you for your consideration,


Christian Schreiner
caschrei@rockwellcollins.com
Comment 1 Michael Valenta CLA 2004-07-20 13:11:51 EDT
It appears that the first entry (ModalContext) in the trace is blocked on code 
that is obtaining a seed for secure random number generation. This is blocking 
another Modal Context (I don't know why there are two of these. There should 
only be one). I will try to reproduce this. In the meantime, could you try 
another VM. The first entry that is blocked in in code that is part of the 
class library and it doesn't appear that it should be blocked.
Comment 2 Michael Valenta CLA 2004-07-20 14:04:41 EDT
I have tried the supplied steps with the mentioned VM using RedHat 9.0 and 
whatever GTK comes with that and was not able to reproduce the problem. 
However, I did uncover a few bugs in this area which may contribute to this 
blockage (i.e. the multiple ModalContext threads). I am going to submit a fix 
to these to the 3.0.1 build and ask you to pick up the 3.0.1 integration build 
when it is available to see if the fix helps. If it doesn't, please reopen 
this with a new stack trace. I will mark this FIXED once I have released the 
fixes for the bugs I found.
Comment 3 caschrei CLA 2004-07-20 14:41:37 EDT
I have now reproduced this bug with VM J2SE 1.5.0beta2 (and Eclipse 3.0.0).
However, that VM will not give me a stack trace when I send it a kill -3.
Please let me know if there are additional tests I can constructively run.
Thank you for your efforts.

-- Christian



Comment 4 Michael Valenta CLA 2004-07-20 15:03:31 EDT
As I said above, I found a few bugs that could cause a deadlock and fixed them.
However, I am not convinced this fixes the problom reported in this bug. I have
released the fix to 3.0.1 and to HEAD. Please get either tomorrows 3.0.1 build
(should be available at 9-10 a.m. EST) or tonights nightly build and try it out.
If you still get the blockage, please reopen and attach a new stacktrace.
Comment 5 caschrei CLA 2004-07-22 14:36:50 EDT
I was able to reproduce the lockup and got this stack trace.  I'm using 
my usual Sun VM, and the workspace and project I originally observed this bug
on.  Eclipse release is eclipse-SDK-M20040721-linux-gtk.  See the stack trace below.

Keep me posted on what I can do to help diagnose and fix this. If it would be
useful to have a stack trace of this behavior in a blank workspace, I'm willing
to generate that, too.

Thanks to Michael and all others involved for their consideration.

-- Christian

Stack trace:
------------

 Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x08958ec0
nid=0x3098 in Object.wait() [4f334000..4f3348b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x46247ae8> (a
org.eclipse.jface.text.reconciler.DirtyRegionQueue)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x46247ae8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
 "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x085965b0
nid=0x3095 in Object.wait() [4f232000..4f2328b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x45fd8668> (a
org.eclipse.jface.text.reconciler.DirtyRegionQueue)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x45fd8668> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x085ac5c8
nid=0x3074 in Object.wait() [4ef9a000..4ef9a8b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x45816448> (a
org.eclipse.jface.text.reconciler.DirtyRegionQueue)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x45816448> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Worker-1" prio=1 tid=0x081a2430 nid=0x3070 in Object.wait() [4ce6e000..4ce6e8b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44e45f20> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166)
        - locked <0x44e45f20> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:193)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x08617a90
nid=0x306d in Object.wait() [4ecc1000..4ecc18b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x4548ab20> (a
org.eclipse.jface.text.reconciler.DirtyRegionQueue)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x4548ab20> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Worker-0" prio=1 tid=0x084ce570 nid=0x306c runnable [4e856000..4e8568b8]
        at java.io.FileInputStream.readBytes(Native Method)
        at java.io.FileInputStream.read(FileInputStream.java:194)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:220)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
        - locked <0x448044c8> (a java.io.BufferedInputStream)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
        - locked <0x448042c0> (a java.io.BufferedInputStream)
        at
sun.security.provider.SeedGenerator$URLSeedGenerator.getSeedByte(SeedGenerator.java:467)
        at sun.security.provider.SeedGenerator.getSeedBytes(SeedGenerator.java:137)
        at sun.security.provider.SeedGenerator.generateSeed(SeedGenerator.java:132)
        at
sun.security.provider.SecureRandom.engineGenerateSeed(SecureRandom.java:112)
        at sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java:169)
        - locked <0x44800730> (a sun.security.provider.SecureRandom)
        at java.security.SecureRandom.nextBytes(SecureRandom.java:381)
        - locked <0x44800a88> (a java.security.SecureRandom)
        at com.jcraft.jsch.jce.Random.fill(Unknown Source)
        at com.jcraft.jsch.Session.send_kexinit(Unknown Source)
        at com.jcraft.jsch.Session.receive_kexinit(Unknown Source)
        at com.jcraft.jsch.Session.connect(Unknown Source)
        at
org.eclipse.team.internal.ccvs.ssh2.JSchSession.getSession(JSchSession.java:306)
         at
org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection.internalOpen(CVSSSH2ServerConnection.java:117)
        at
org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection.open(CVSSSH2ServerConnection.java:99)
        at
org.eclipse.team.internal.ccvs.core.connection.Connection.open(Connection.java:127)
        at
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.createConnection(CVSRepositoryLocation.java:575)
        at
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.openConnection(CVSRepositoryLocation.java:821)
        - locked <0x449c0060> (a java.lang.Object)
        at org.eclipse.team.internal.ccvs.core.client.Session.open(Session.java:142)
        at
org.eclipse.team.internal.ccvs.ui.operations.SingleCommandOperation.execute(SingleCommandOperation.java:42)
        at
org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation.execute(RepositoryProviderOperation.java:59)
        at
org.eclipse.team.internal.ccvs.ui.operations.CommitOperation.execute(CommitOperation.java:68)
        at
org.eclipse.team.internal.ccvs.ui.operations.CVSOperation.run(CVSOperation.java:84)
        at
org.eclipse.team.internal.ui.actions.JobRunnableContext.run(JobRunnableContext.java:159)
        at
org.eclipse.team.internal.ui.actions.JobRunnableContext$3.runInWorkspace(JobRunnableContext.java:179)
        at
org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)

"Java indexing" daemon prio=1 tid=0x084ccea8 nid=0x306b in Object.wait()
[4e7d5000..4e7d58b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44f6e9d0> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:338)
        - locked <0x44f6e9d0> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Thread.run(Thread.java:534)

"Reference Cleaner - 2" prio=1 tid=0x0806e050 nid=0x306a in Object.wait()
[4dd9b000..4dd9b8b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44ef90c8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x44ef90c8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207)

"Reference Cleaner - 1" prio=1 tid=0x0806dd58 nid=0x3069 in Object.wait()
[4dd1a000..4dd1a8b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44ef9138> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x44ef9138> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207)

"Start Level Event Dispatcher" daemon prio=1 tid=0x08261930 nid=0x3067 in
Object.wait() [4cfff000..4cfff8b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44ccbbe0> (a
org.eclipse.osgi.framework.eventmgr.EventThread)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
        - locked <0x44ccbbe0> (a org.eclipse.osgi.framework.eventmgr.EventThread)
      at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)

"Framework Event Dispatcher" daemon prio=1 tid=0x082562c8 nid=0x3066 in
Object.wait() [4cf7e000..4cf7e8b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44cbe420> (a
org.eclipse.osgi.framework.eventmgr.EventThread)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
        - locked <0x44cbe420> (a org.eclipse.osgi.framework.eventmgr.EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)

"Signal Dispatcher" daemon prio=1 tid=0x0809fe78 nid=0x304c waiting on condition
[0..0]

"Finalizer" daemon prio=1 tid=0x0808afd0 nid=0x3043 in Object.wait()
[4c952000..4c9528b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44c39af0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x44c39af0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=1 tid=0x0808a440 nid=0x3040 in Object.wait()
[4c8d1000..4c8d18b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44c39b58> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:429)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
        - locked <0x44c39b58> (a java.lang.ref.Reference$Lock)

"main" prio=1 tid=0x08052708 nid=0x3011 in Object.wait() [bfffc000..bfffd148]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x48ae9878> (a java.lang.Class)
        at org.eclipse.swt.widgets.Display.sleep(Display.java:2867)
        - locked <0x48ae9878> (a java.lang.Class)
        at
org.eclipse.ui.application.WorkbenchAdvisor.eventLoopIdle(WorkbenchAdvisor.java:344)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1378)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
        at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
        at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
        at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
        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:324)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:183)
        at org.eclipse.core.launcher.Main.run(Main.java:644)
        at org.eclipse.core.launcher.Main.main(Main.java:628)

"VM Thread" prio=1 tid=0x080871b8 nid=0x303c runnable 

"VM Periodic Task Thread" prio=1 tid=0x080a25b8 nid=0x304e waiting on condition 
"Suspend Checker Thread" prio=1 tid=0x0809f520 nid=0x304b runnable 


Comment 6 Michael Valenta CLA 2004-07-22 15:34:43 EDT
It appears that the blockage is in the same place. I don't understand why the 
thread would block on a file read (as it appears to be). Since this is 
happening in the SSH2 code, I am copying ymnk who provides the underlying SSH2 
support in case he has any wisdom that may help.
Comment 7 caschrei CLA 2004-07-22 15:46:00 EDT
Ok.  Let me know if I can help him/her.

-- Christian
Comment 8 Atsuhiko Yamanaka CLA 2004-07-23 15:04:53 EDT
Hi,

You will find that problem has occured in java.security.SecureRandom.
I guess that your kernel entropy pool has been empty.
Please refer to '<java.home>/lib/security/java.security' file on your GNU/Linux 
system.
How about adding '-Djava.security.egd=file:/dev/urandom' in starting Eclipse?

The section '7.3. Kernel Devices' in
http://www.linuxsecurity.com/docs/LDP/Security-HOWTO/kernel-security.html
will be useful to understand what has happend.
Comment 9 caschrei CLA 2004-07-23 20:54:08 EDT
Good point, but making the suggested changes just changed the point where
Eclipse locked up from 5% to 10% on the progress bar.  I'm including a stack
dump for analysis.  I'm using integration build eclipse-SDK-M20040721-linux-gtk
and the -Djava.../dev/urandom on the command line.

Michael's changes that fed into the integration build are helping; setting the
java.security file makes Eclipse 3.0.0 lock up at 0% instead of at 5%. I saved
stack traces of using -D.../dev/urandom as well as modifying the java.security
file.  I also saved stack traces of these if they will be useful.

Is there anything else I should be looking at?

Continuing thanks to all who have contributed.

-- Christian

Uses Eclipse eclipse-SDK-M20040721-linux-gtk with
-Djava.security.egd=file:/dev/urandom

Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):

"ModalContext" prio=1 tid=0x085dd620 nid=0x4fc5 runnable
[4e471000..4e4718b8]
        at java.io.FileInputStream.readBytes(Native Method)
        at java.io.FileInputStream.read(FileInputStream.java:194)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:220)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
        - locked <0x447afa08> (a java.io.BufferedInputStream)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
        - locked <0x447af800> (a java.io.BufferedInputStream)
        at
sun.security.provider.SeedGenerator$URLSeedGenerator.getSeedByte(SeedGenerator.j
ava:467)
        at
sun.security.provider.SeedGenerator.getSeedBytes(SeedGenerator.java:137)
        at
sun.security.provider.SeedGenerator.generateSeed(SeedGenerator.java:132)
        at
sun.security.provider.SecureRandom.engineGenerateSeed(SecureRandom.java:112)
        at
sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java:169)
        - locked <0x447ab6e0> (a sun.security.provider.SecureRandom)
        at java.security.SecureRandom.nextBytes(SecureRandom.java:381)
        - locked <0x447aba38> (a java.security.SecureRandom)
        at com.jcraft.jsch.jce.Random.fill(Unknown Source)
        at com.jcraft.jsch.Session.send_kexinit(Unknown Source)
        at com.jcraft.jsch.Session.receive_kexinit(Unknown Source)
        at com.jcraft.jsch.Session.connect(Unknown Source)
        at
org.eclipse.team.internal.ccvs.ssh2.JSchSession.getSession(JSchSession.java:306)
        at
org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection.internalOpen(CVSSSH2
ServerConnection.java:117)
        at
org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection.open(CVSSSH2ServerCo
nnection.java:99)
        at
org.eclipse.team.internal.ccvs.core.connection.Connection.open(Connection.java:1
27)
        at
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.createConne
ction(CVSRepositoryLocation.java:575)
        at
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.openConnect
ion(CVSRepositoryLocation.java:821)
        - locked <0x447d0278> (a java.lang.Object)
        at
org.eclipse.team.internal.ccvs.core.client.Session.open(Session.java:142)
        at
org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation.validateCon
nection(CVSRepositoryLocation.java:956)
        at
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$2.run(ModuleSelect
ionPage.java:157)
        at
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.jav
a:101)


"Worker-2" prio=1 tid=0x0808e948 nid=0x4fc3 in Object.wait()
[4e064000..4e0648b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44e31348> (a
          org.eclipse.core.internal.jobs.WorkerPool)
        at
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166)
        - locked <0x44e31348> (a org.eclipse.core.internal.jobs.WorkerPool)
        at
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:193)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)

"Worker-1" prio=1 tid=0x08543b60 nid=0x4fc2 in Object.wait()
[4ce6e000..4ce6e8b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44e31348> (a
          org.eclipse.core.internal.jobs.WorkerPool)
        at
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166)
        - locked <0x44e31348> (a org.eclipse.core.internal.jobs.WorkerPool)
        at
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:193)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)

"Worker-0" prio=1 tid=0x08488230 nid=0x4fc1 in Object.wait()
[4de96000..4de968b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44e31348> (a
          org.eclipse.core.internal.jobs.WorkerPool)
        at
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166)
        - locked <0x44e31348> (a org.eclipse.core.internal.jobs.WorkerPool)
        at
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:193)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)

"Reference Cleaner - 2" prio=1 tid=0x083c19a0 nid=0x4fc0 in Object.wait()
[4ddfb000..4ddfb8b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44e90a00> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x44e90a00> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThrea
d.run(ActionContributionItem.java:207)

"Reference Cleaner - 1" prio=1 tid=0x083bed70 nid=0x4fbf in Object.wait()
[4dd7a000..4dd7a8b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44e90a70> (a java.lang.ref.ReferenceQueue$Lock)

        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x44e90a70> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThrea
d.run(ActionContributionItem.java:207)

"Start Level Event Dispatcher" daemon prio=1 tid=0x0823d448 nid=0x4fbd in
Object.wait() [4cfff000..4cfff8b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44cb8048> (a
          org.eclipse.osgi.framework.eventmgr.EventThread)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:16
2)
        - locked <0x44cb8048> (a
          org.eclipse.osgi.framework.eventmgr.EventThread)
        at
org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)

"Framework Event Dispatcher" daemon prio=1 tid=0x0825dda0 nid=0x4fbc in
Object.wait() [4cf7e000..4cf7e8b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44cb8100> (a
          org.eclipse.osgi.framework.eventmgr.EventThread)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:16
2)
        - locked <0x44cb8100> (a
          org.eclipse.osgi.framework.eventmgr.EventThread)
        at
org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)

"Signal Dispatcher" daemon prio=1 tid=0x0809ffa0 nid=0x4fb7 waiting on
condition [0..0]

"Finalizer" daemon prio=1 tid=0x0808b110 nid=0x4fb5 in Object.wait()
[4c952000..4c9528b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44c39208> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x44c39208> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=1 tid=0x0808a550 nid=0x4fb4 in Object.wait()
[4c8d1000..4c8d18b8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44c39270> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:429)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
        - locked <0x44c39270> (a java.lang.ref.Reference$Lock)

"main" prio=1 tid=0x08052a70 nid=0x4fb1 in Object.wait()
[bfffc000..bfffd048]
        at java.lang.Object.wait(Native Method)

        - waiting on <0x48ae4930> (a java.lang.Class)
        at org.eclipse.swt.widgets.Display.sleep(Display.java:2867)
        - locked <0x48ae4930> (a java.lang.Class)
        at
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.j
ava:137)
        at
org.eclipse.jface.operation.ModalContext.run(ModalContext.java:262)
        at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:752)
        at
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage.updateEnablements(
ModuleSelectionPage.java:154)
        at
org.eclipse.team.internal.ccvs.ui.wizards.ModuleSelectionPage$1.handleEvent(Modu
leSelectionPage.java:73)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:954)
        at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2595)
        at
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2298)
        at org.eclipse.jface.window.Window.runEventLoop(Window.java:668)
        at org.eclipse.jface.window.Window.open(Window.java:648)
        at
org.eclipse.ui.actions.NewProjectAction.run(NewProjectAction.java:111)
        at org.eclipse.jface.action.Action.runWithEvent(Action.java:881)
        at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionCont
ributionItem.java:915)
        at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.
java:866)
        at
org.eclipse.jface.action.ActionContributionItem$7.handleEvent(ActionContribution
Item.java:785)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:954)
        at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2595)
        at
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2298)
        at
org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
        at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
        at
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
        at
org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
        at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java
:335)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:183)
        at org.eclipse.core.launcher.Main.run(Main.java:644)
        at org.eclipse.core.launcher.Main.main(Main.java:628)

"VM Thread" prio=1 tid=0x080872e8 nid=0x4fb3 runnable 

"VM Periodic Task Thread" prio=1 tid=0x080a26f0 nid=0x4fb9 waiting on
condition 
"Suspend Checker Thread" prio=1 tid=0x0809f618 nid=0x4fb6 runnable 

Comment 10 Atsuhiko Yamanaka CLA 2004-07-23 21:03:45 EDT
Hi,

How about the result of 'cat /dev/urandom | od -x' on your GNU/Linux system?
Do you get endless lines?
Comment 11 caschrei CLA 2004-07-23 21:14:39 EDT
Yes, I do get endless lines.
Comment 12 caschrei CLA 2004-07-26 11:25:44 EDT
FYI, I get no output if I type 

   cat /dev/random | od -x

(substituting /dev/random for /dev/urandom).


Continuing thanks for all who are contributing to the solutions,

Christian
Comment 13 Atsuhiko Yamanaka CLA 2004-07-27 00:52:01 EDT
Thank you for feedback,

So,... I'm guessing that your JVM is still referring to
/dev/random.
Have you appended '-vmargs' to '-Djava.security.egd=file:/dev/urandom' in
setting as options to Eclipse commandline?

Anyway, if that Linux box is your private system, can you try as follows?

  # cd /dev
  # mv /dev/random /dev/random.ORG
  # ln -s urandom random

Of course, it is just for testing.

FYI, it seems OpenSSH on GNU/Linux is using /dev/urandom,
# $ strace ssh localhost 2>&1 | grep random
# open("/dev/urandom", O_RDONLY|O_NONBLOCK|O_NOCTTY) = 3
Comment 14 caschrei CLA 2004-07-28 16:27:20 EDT
Confirmed.  Adding the -vmargs before the -Djava...urandom lets us workaround
the problem.  I think this further confirms the hypothesis that our local
machine's /dev/random device is not getting enough entropy to respond in a
reasonable amount of time.  (But if so, why does `cat /dev/random | od -x` 
yield nothing, but command-line ssh has no problem establishing connections?
Does command-line ssh use /dev/urandom or some other source of random numbers?)

Two questions:

1: Is there a recommended permanent solution?  (If it needs to be upgrading our
kernel or doing something else outside of Eclipse's scope, that is understandable.)

2: would there be some point in modifying the Eclipse source so an unreasonable
wait for an SSH operation to complete generates an appropriate error message
instead of freezing Eclipse?  If so, I'd be willing to try to do that if someone
can point me to the preferred spots in the Eclipse source.  

Thanks to all those who have contributed to our progress on this.


-- Christian
Comment 15 Atsuhiko Yamanaka CLA 2004-07-29 03:18:39 EDT
|                              (But if so, why does `cat /dev/random | od -x` 
|yield nothing, but command-line ssh has no problem establishing connections?
|Does command-line ssh use /dev/urandom or some other source of random numbers?)

As I wrote in my last message, it seems OpenSSH's ssh has used /dev/urandom.
In more precisely, it seems OpenSSL library has refrred to that special file.
Comment 16 caschrei CLA 2004-07-29 12:03:53 EDT
Right, you did say that.  Thanks.

Is the permanent fix then to fix the kernel?  Or something in Eclipse, or
something else altogether?

Also, Michael, are you interested in entertaining an improvement to Eclipse to
inform the user when a ssh operation is taking too long?

-- Christian
Comment 17 Jean-Michel Lemieux CLA 2004-08-03 13:03:45 EDT
Moving away from 3.0.1. 

If there is a way to read from random with a timeout, then that would be an
improvement. But I don't think the JDK has that support.

We could althought implement our usual non-blocking read code via a dedicated
thread.
Comment 18 Michael Valenta CLA 2004-08-17 13:38:18 EDT
*** Bug 69946 has been marked as a duplicate of this bug. ***
Comment 19 Atsuhiko Yamanaka CLA 2004-08-19 23:25:03 EDT
How about evaluating following lines?

  if(System.getProperty("java.security.egd","").equals("file:/dev/random")){
    System.setProperty("java.security.egd", "file:/dev/urandom");
  }

in loading cvs-ssh2 plugin?  I have not confirmed if such a changing is
effective at run time, but it may be worth trying.

Anyway, even if you can interrupt radom number reading operation,
you will not be able to enjoy stably that plug-in without using /dev/urandom,
at least on your platform.
Comment 20 Michael Valenta CLA 2005-05-31 14:21:05 EDT
Marking as invalid as this seems to me to be an OS/Java configuration issue.