Bug 83937 - Timeout waiting for packet
Summary: Timeout waiting for packet
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Debug (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows XP
: P2 normal (vote)
Target Milestone: 3.1 M7   Edit
Assignee: Darin Wright CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 81653 84495 85842 87144 88197 89064 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-01-28 10:40 EST by Philipe Mulet CLA
Modified: 2005-06-23 10:45 EDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philipe Mulet CLA 2005-01-28 10:40:39 EST
Build 3.1 20050126

After upgrading to 20050125, I am quite often seeing hangs during debug process
(after hitting a breakpoint, some step action causes a freeze).
There doesn't seem to be a specific pattern. Usually terminating/restarting
would work.

org.eclipse.jdi.TimeoutException: Timeout occurred while waiting for packet 104515
        at
org.eclipse.jdi.internal.connect.PacketReceiveManager.getReply(PacketReceiveManager.java:160)
        at
org.eclipse.jdi.internal.connect.PacketReceiveManager.getReply(PacketReceiveManager.java:169)
        at org.eclipse.jdi.internal.MirrorImpl.requestVM(MirrorImpl.java:174)
        at org.eclipse.jdi.internal.MirrorImpl.requestVM(MirrorImpl.java:192)
        at
org.eclipse.jdi.internal.ThreadReferenceImpl.frames(ThreadReferenceImpl.java:187)
        at
org.eclipse.jdi.internal.ThreadReferenceImpl.frame(ThreadReferenceImpl.java:140)
        at
org.eclipse.jdt.internal.debug.core.model.JDIThread.getUnderlyingFrame(JDIThread.java:575)
        at
org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.getUnderlyingStackFrame(JDIStackFrame.java:1000)
        at
org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.getUnderlyingMethod(JDIStackFrame.java:228)
        at
org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.isNative(JDIStackFrame.java:793)
        at
org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.supportsDropToFrame(JDIStackFrame.java:584)
        at
org.eclipse.jdt.internal.debug.ui.actions.DropToFrameButton.selectionChanged(DropToFrameButton.java:62)
        at
org.eclipse.ui.internal.PluginAction.refreshEnablement(PluginAction.java:195)
        at
org.eclipse.ui.internal.PluginAction.selectionChanged(PluginAction.java:267)
        at
org.eclipse.ui.internal.PluginAction.selectionChanged(PluginAction.java:278)
        at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:163)
        at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1051)
        at org.eclipse.core.runtime.Platform.run(Platform.java:747)
        at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:161)
        at
org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1676)
        at
org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1358)
        at
org.eclipse.debug.internal.ui.views.RemoteTreeViewer.deferSelection(RemoteTreeViewer.java:305)
        at
org.eclipse.debug.internal.ui.views.launch.LaunchViewEventHandler.doHandleSuspendThreadEvent(LaunchViewEventHandler.java:237)
        at
org.eclipse.debug.internal.ui.views.launch.LaunchViewEventHandler.doHandleSuspendEvent(LaunchViewEventHandler.java:204)
        at
org.eclipse.debug.internal.ui.views.launch.LaunchViewEventHandler.doHandleDebugEvents(LaunchViewEventHandler.java:123)
        at
org.eclipse.debug.internal.ui.views.AbstractDebugEventHandler$EventProcessingJob.runInUIThread(AbstractDebugEventHandler.java:103)
        at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:96)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:118)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2854)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2518)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1584)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1550)
        at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:288)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
        at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102)
        at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:225)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:274)
        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:255)
        at org.eclipse.core.launcher.Main.run(Main.java:811)
        at org.eclipse.core.launcher.Main.main(Main.java:795)
Comment 1 Darin Wright CLA 2005-01-28 14:27:25 EST
The action should update in the background to avoid blocking the UI thread.
Comment 2 Kevin Barnes CLA 2005-02-21 12:23:27 EST
filed bug 85966 to handle selectionChanged() in background thread.
Comment 3 Kevin Barnes CLA 2005-03-15 10:53:28 EST
Phillippe, Are you still getting these Timeouts? 
I suspect this may be the same as bug #87144.
Comment 4 Kevin Barnes CLA 2005-03-24 18:33:44 EST
*** Bug 89064 has been marked as a duplicate of this bug. ***
Comment 5 Darin Wright CLA 2005-04-04 14:18:56 EDT
*** Bug 84495 has been marked as a duplicate of this bug. ***
Comment 6 Darin Wright CLA 2005-04-04 14:54:36 EDT
*** Bug 85842 has been marked as a duplicate of this bug. ***
Comment 7 Darin Wright CLA 2005-04-04 15:38:03 EDT
*** Bug 87144 has been marked as a duplicate of this bug. ***
Comment 8 Darin Wright CLA 2005-04-04 15:57:19 EDT
*** Bug 88197 has been marked as a duplicate of this bug. ***
Comment 9 Darin Wright CLA 2005-04-04 16:49:06 EDT
*** Bug 81653 has been marked as a duplicate of this bug. ***
Comment 10 Darin Wright CLA 2005-04-05 15:11:36 EDT
Another example timeout:

org.eclipse.jdi.TimeoutException: Timeout occurred while waiting for packet 
11567. RemainingTime: 0 Received: 46 Received Queue: [5830 5831 5832 5833 5834 
5835 5836 5837 5838 5839 5840 5841 5842 5843 10814 10815 10816 10817 10818 
10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 
10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 
10845 ]
	at org.eclipse.jdi.internal.connect.PacketReceiveManager.getReply
(PacketReceiveManager.java:175)
	at org.eclipse.jdi.internal.connect.PacketReceiveManager.getReply
(PacketReceiveManager.java:185)
	at org.eclipse.jdi.internal.MirrorImpl.requestVM(MirrorImpl.java:174)
	at org.eclipse.jdi.internal.MirrorImpl.requestVM(MirrorImpl.java:192)
	at org.eclipse.jdi.internal.ThreadReferenceImpl.frames
(ThreadReferenceImpl.java:187)
	at org.eclipse.jdi.internal.ThreadReferenceImpl.frames
(ThreadReferenceImpl.java:171)
	at 
org.eclipse.jdt.internal.debug.core.model.JDIThread.getUnderlyingFrames
(JDIThread.java:500)
	at 
org.eclipse.jdt.internal.debug.core.model.JDIThread.computeStackFrames
(JDIThread.java:412)
	at 
org.eclipse.jdt.internal.debug.core.model.JDIThread.computeStackFrames
(JDIThread.java:476)
	at 
org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.supportsDropToFrame
(JDIStackFrame.java:573)
	at 
org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.canDropToFrame
(JDIStackFrame.java:544)
	at 
org.eclipse.debug.internal.ui.actions.DropToFrameActionDelegate.isEnabledFor
(DropToFrameActionDelegate.java:81)
	at 
org.eclipse.debug.internal.ui.actions.AbstractDebugActionDelegate.getEnableStat
eForSelection(AbstractDebugActionDelegate.java:392)
	at 
org.eclipse.debug.internal.ui.actions.AbstractDebugActionDelegate.update
(AbstractDebugActionDelegate.java:244)
	at 
org.eclipse.debug.internal.ui.actions.DropToFrameActionDelegate.access$0
(DropToFrameActionDelegate.java:1)
	at 
org.eclipse.debug.internal.ui.actions.DropToFrameActionDelegate$UpdateJob.run
(DropToFrameActionDelegate.java:43)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:67)
Comment 11 Darin Wright CLA 2005-04-18 14:35:36 EDT
Proposals:

* We should throw away responses for requests that have timed out.
* We should serialize label jobs from the same target to avoid having mulitple 
jobs attempting to retrieve labels at once for the same target

Comment 12 Kevin Barnes CLA 2005-05-03 17:27:49 EDT
haven't seen any Timeouts (or new bug reports) for a while.
Changed PacketReceiveManager to maintain a list of packets that have timed out so that those packets 
can be thrown out when/if they are eventually received. Also reduced the error message back to a 
reasonable size
Changes to ConnectMessages.properties and PacketReceiveManager
Comment 13 Kevin Barnes CLA 2005-05-03 17:28:11 EDT
Darin, please verify
Comment 14 Darin Wright CLA 2005-05-09 12:53:23 EDT
Verified.
Comment 15 Darin Wright CLA 2005-06-23 10:45:19 EDT
Also see bug 94452. We have a potential fix for 3.1.1.