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

Bug 36042

Summary: [Widgets] Long delay opening new editors
Product: [Eclipse Project] Platform Reporter: Michael McKay <mckaymic>
Component: SWTAssignee: 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.1Keywords: triaged
Target Milestone: ---   
Hardware: Sun   
OS: Solaris   
Whiteboard:

Description Michael McKay CLA 2003-04-03 16:44:51 EST
I'm experiencing a long delay 10-20 seconds when opening new editors.  This 
doesn't happen though when switching between already open editors.  The strange 
part is that if I open a help browser this delay goes away( but it sometimes 
comes back ).  It gives me the same delay regardless of the editor used( Java 
or plain text editor ).  I've been able to reproduce this with a fresh install, 
and fresh workspace, but with an imported project.
Comment 1 Kai-Uwe Maetzel CLA 2003-04-09 09:59:49 EDT
Anything special in your setup? Linked resources?
Comment 2 Craig Miskell CLA 2003-04-14 15:45:48 EDT
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)
Comment 3 Gustavo Vieira CLA 2003-04-30 13:42:01 EDT
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.
Comment 4 Michael McKay CLA 2003-06-19 14:25:28 EDT
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
Comment 5 Dani Megert CLA 2003-07-15 12:45:02 EDT
moving to SWT for comment on the NPE.
Comment 6 Veronika Irvine CLA 2003-07-15 14:06:31 EDT
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.
Comment 7 Grant Gayed CLA 2003-10-01 12:06:00 EDT
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)
Comment 8 Steve Northover CLA 2004-04-08 13:38:57 EDT
I think the GTK bug is completely different.  It is the same as bug #44915.
Comment 9 Grant Gayed CLA 2009-08-28 14:39:11 EDT
Moving report to triage, see http://www.eclipse.org/swt/triage.php
for more info about swt bug triaging.
Comment 10 Lakshmi P Shanmugam CLA 2017-06-20 02:38:24 EDT
Solaris is no longer a supported platform.