| Summary: | [Widgets] Long delay opening new editors | ||
|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Michael McKay <mckaymic> |
| Component: | SWT | Assignee: | Platform-SWT-Inbox <platform-swt-inbox> |
| Status: | RESOLVED WONTFIX | QA Contact: | Grant Gayed <grant_gayed> |
| Severity: | major | ||
| Priority: | P3 | CC: | daniel_megert, david_williams, dvschweiger |
| Version: | 2.1 | Keywords: | triaged |
| Target Milestone: | --- | ||
| Hardware: | Sun | ||
| OS: | Solaris | ||
| Whiteboard: | |||
|
Description
Michael McKay
Anything special in your setup? Linked resources? I can confirm a similar situation on the Linux GTK build 200303272130. The
delay is on double clicking to open a file. Right clicking exhibits a similar
delay before the context menu appears, and the same delay again on selecting
open from that menu. Main menus seem to work as per normal (no delays), but the
actions initiated from those menus have the same delay. Eclipse can be closed
using the window close box during this delay period (and the close occurs
"immediately"), but an error occurs (dialog box), and the following stack
trace(s) are added to the error log. I cannot confirm the association with the
help browser (haven't tried).
During the delays, CPU usage is minimal, or rather, eclipse does not appear to
be hogging the CPU at all.
The problem is sporadic... it will appear for a while, appears to persist across
restarts of eclipse, and will then quietly go away. (Hence, it's probably
environmental, perhaps IO contention or something like that?). However, I seem
to run into it once or twice a day.
I'll be happy to provide more details if you have any specific testing you wish
me to perform.
Stack traces on exit during the delay state:
!ENTRY org.eclipse.jface 4 2 Apr 14, 2003 08:27:16.59
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".
!STACK 0
java.lang.NullPointerException
at org.eclipse.swt.widgets.Control.gtk_event_after(Control.java:1655)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1153)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:2080)
at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(Native Method)
at org.eclipse.swt.widgets.Display.eventProc(Display.java:631)
at
org.eclipse.swt.internal.gtk.OS.gtk_clipboard_wait_for_contents(Native Method)
at org.eclipse.swt.dnd.Clipboard.getContents(Clipboard.java:147)
at
org.eclipse.jdt.internal.ui.reorg.PasteSourceReferencesFromClipboardAction.getContentsToPaste(PasteSourceReferencesFromClipboardAction.java:133)
at
org.eclipse.jdt.internal.ui.reorg.PasteSourceReferencesFromClipboardAction.isAnythingToPaste(PasteSourceReferencesFromClipboardAction.java:111)
at
org.eclipse.jdt.internal.ui.reorg.PasteSourceReferencesFromClipboardAction.canOperateOn(PasteSourceReferencesFromClipboardAction.java:68)
at
org.eclipse.jdt.internal.ui.reorg.PasteSourceReferencesFromClipboardAction.selectionChanged(PasteSourceReferencesFromClipboardAction.java:60)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:181)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.selectionChanged(SelectionDispatchAction.java:176)
at
org.eclipse.jdt.internal.ui.reorg.DualReorgAction.selectionChanged(DualReorgAction.java:51)
at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:159)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:889)
at org.eclipse.core.runtime.Platform.run(Platform.java:413)
at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:157)
at
org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1290)
at
org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:657)
at
org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:681)
at
org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:178)
at org.eclipse.jface.util.OpenStrategy.access$3(OpenStrategy.java:173)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:308)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:81)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:913)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1637)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1429)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1402)
at org.eclipse.ui.internal.Workbench.run(Workbench.java:1385)
at
org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:845)
at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
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:291)
at org.eclipse.core.launcher.Main.run(Main.java:747)
at org.eclipse.core.launcher.Main.main(Main.java:583)
!ENTRY org.eclipse.jface 4 2 Apr 14, 2003 08:27:16.236
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".
!STACK 0
org.eclipse.jdt.internal.corext.Assert$AssertionFailedException: null argument;
at org.eclipse.jdt.internal.corext.Assert.isNotNull(Assert.java:105)
at org.eclipse.jdt.internal.corext.Assert.isNotNull(Assert.java:83)
at
org.eclipse.jdt.internal.ui.reorg.PackageFragmentRootManipulationQuery.<init>(PackageFragmentRootManipulationQuery.java:53)
at
org.eclipse.jdt.internal.ui.reorg.JdtMoveAction.createUpdateClasspathQuery(JdtMoveAction.java:393)
at
org.eclipse.jdt.internal.ui.reorg.JdtMoveAction.createRefactoring(JdtMoveAction.java:112)
at
org.eclipse.jdt.internal.ui.reorg.ReorgDestinationAction.canOperateOn(ReorgDestinationAction.java:103)
at
org.eclipse.jdt.internal.ui.reorg.ReorgDestinationAction.selectionChanged(ReorgDestinationAction.java:91)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:181)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.selectionChanged(SelectionDispatchAction.java:176)
at
org.eclipse.jdt.ui.actions.MoveAction.selectionChanged(MoveAction.java:102)
at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:159)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:889)
at org.eclipse.core.runtime.Platform.run(Platform.java:413)
at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:157)
at
org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1290)
at
org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:657)
at
org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:681)
at
org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:178)
at org.eclipse.jface.util.OpenStrategy.access$3(OpenStrategy.java:173)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:308)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:81)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:913)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1637)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1429)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1402)
at org.eclipse.ui.internal.Workbench.run(Workbench.java:1385)
at
org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:845)
at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
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:291)
at org.eclipse.core.launcher.Main.run(Main.java:747)
at org.eclipse.core.launcher.Main.main(Main.java:583)
This is happening to me also: Eclipse 2.1, Linux (Red Hat 8.0), GTK, Sun JVM 1.4.1.02. Very annoying. I can provide more information if needed. I think I have found the problem on my system. It turns when the system is
hanging it is attempting to open the file /tmp/.X11-pipe/X1. Since this doesn't
exist, because my X11 server is using /tmp/.X11-pipe/X0, it then further
attempts to connection to the X11 server via TCPIP. This appears to be the
"hang". I'm not sure why though it is attempting to connect to the :1 display
but I assume it has something to do with printing since the code for printing
defaults to looking for Xprt on display :1. BTW, this problem doesn't occur
when I use the GTK widgets on Solaris, only Motif. I've included output from
truss to show additional information. Any advice would be appreciated though I
do have a workaround now.
/1: open("/tmp/.X11-pipe/X1", O_RDWR) Err#2 ENOENT
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_UNIX, SOCK_STREAM, 0, "", 1) = 11
/1: connect(11, 0xFFBFBC90, 19, 1) Err#2 ENOENT
/1: close(11) = 0
/2: lwp_suspend(1) = 0 [199]
/2: lwp_continue(1) = 0
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) = 0
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_UNIX, SOCK_STREAM, 0, "", 1) = 11
/1: connect(11, 0xFFBFBC90, 19, 1) Err#2 ENOENT
/1: close(11) = 0
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) = 0
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_UNIX, SOCK_STREAM, 0, "", 1) = 11
/1: connect(11, 0xFFBFBC90, 19, 1) Err#2 ENOENT
/1: close(11) = 0
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) = 0
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_UNIX, SOCK_STREAM, 0, "", 1) = 11
/1: connect(11, 0xFFBFBC90, 19, 1) Err#2 ENOENT
/1: close(11) = 0
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) (sleeping...)
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) = 0
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_UNIX, SOCK_STREAM, 0, "", 1) = 11
/1: connect(11, 0xFFBFBC90, 19, 1) Err#2 ENOENT
/1: close(11) = 0
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) = 0
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_UNIX, SOCK_STREAM, 0, "", 1) = 11
/1: connect(11, 0xFFBFBC90, 19, 1) Err#2 ENOENT
/1: close(11) = 0
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) = 0
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_INET6, SOCK_STREAM, IPPROTO_IP, "", 1) = 11
/1: setsockopt(11, tcp, TCP_NODELAY, 0xFFBFBC94, 4, 1) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBC94, 4, 1) = 0
/1: door_info(4, 0xFFBF9740) = 0
/1: door_call(4, 0xFFBF9728) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBB7C, 4, 1) = 0
/1: connect(11, 0x002AC988, 32, 1) Err#128 ENETUNREACH
/1: close(11) = 0
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) = 0
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_INET6, SOCK_STREAM, IPPROTO_IP, "", 1) = 11
/1: setsockopt(11, tcp, TCP_NODELAY, 0xFFBFBC94, 4, 1) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBC94, 4, 1) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBB7C, 4, 1) = 0
/1: connect(11, 0xFFBFBB80, 32, 1) Err#146 ECONNREFUSED
/1: close(11) = 0
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) = 0
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_INET6, SOCK_STREAM, IPPROTO_IP, "", 1) = 11
/1: setsockopt(11, tcp, TCP_NODELAY, 0xFFBFBC94, 4, 1) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBC94, 4, 1) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBB7C, 4, 1) = 0
/1: connect(11, 0x002AC988, 32, 1) Err#128 ENETUNREACH
/1: close(11) = 0
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) (sleeping...)
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) = 0
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_INET6, SOCK_STREAM, IPPROTO_IP, "", 1) = 11
/1: setsockopt(11, tcp, TCP_NODELAY, 0xFFBFBC94, 4, 1) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBC94, 4, 1) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBB7C, 4, 1) = 0
/1: connect(11, 0xFFBFBB80, 32, 1) Err#146 ECONNREFUSED
/1: close(11) = 0
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) = 0
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_INET6, SOCK_STREAM, IPPROTO_IP, "", 1) = 11
/1: setsockopt(11, tcp, TCP_NODELAY, 0xFFBFBC94, 4, 1) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBC94, 4, 1) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBB7C, 4, 1) = 0
/1: connect(11, 0x002AC988, 32, 1) Err#128 ENETUNREACH
/1: close(11) = 0
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) (sleeping...)
/1: nanosleep(0xFFBFBD68, 0xFFBFBD60) = 0
/1: getrlimit(RLIMIT_NOFILE, 0xFFBFBC98) = 0
/1: so_socket(PF_INET6, SOCK_STREAM, IPPROTO_IP, "", 1) = 11
/1: setsockopt(11, tcp, TCP_NODELAY, 0xFFBFBC94, 4, 1) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBC94, 4, 1) = 0
/1: setsockopt(11, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFBB7C, 4, 1) = 0
/1: connect(11, 0xFFBFBB80, 32, 1) Err#146 ECONNREFUSED
/1: close(11) = 0
moving to SWT for comment on the NPE. The NullPointerException is a duplicate of bug 33028 and is not a motif problem. Please add comments on NPE to 33028. This bug report will be used to track the original problem reported by Michael. Grant to investigate the /tmp/.X11-pipe/X1 problem and determine if there is a problem with printing. Michael do you have Xprint running on your machine by any chance? If so, can you try the Eclipse 3.0M3 build? (if you aren't running Xprint then I doubt anything will have changed) I think the GTK bug is completely different. It is the same as bug #44915. Moving report to triage, see http://www.eclipse.org/swt/triage.php for more info about swt bug triaging. Solaris is no longer a supported platform. |