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

Bug 334688

Summary: Eclipse crash after Cancel in import from file system with popup filter
Product: [Eclipse Project] Platform Reporter: Mohamed Hussein <mohamed_hussein>
Component: SWTAssignee: Arun Thondapu <arunkumar.thondapu>
Status: CLOSED WORKSFORME QA Contact:
Severity: critical    
Priority: P3 CC: gheorghe, prakash
Version: 3.6   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Mohamed Hussein CLA 2011-01-18 13:58:22 EST
Build Identifier: 20090920-1017

This problem happens in Eclipse IDE and in an RCP app I am working on that is reusing the import from filesystem wizard.

Following the steps outlined below, I consistently get this crash, I appreciate if you can give it a look, and tell me what I shall do to workaround it.



#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00a48af3, pid=21175, tid=3085960896
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) Client VM (14.2-b01 mixed mode, sharing linux-x86 )
# Problematic frame:
# C  [libgtk-x11-2.0.so.0+0x1e0af3]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x08c80c00):  JavaThread "main" [_thread_in_native, id=21175, stack(0xbfddc000,0xbfe2c000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x0000000c

Registers:
EAX=0x00000000, EBX=0x00b157b8, ECX=0xffffffff, EDX=0x00000004
ESP=0xbfe2a0d0, EBP=0xbfe2a0e8, ESI=0x00000000, EDI=0x090b6360
EIP=0x00a48af3, CR2=0x0000000c, EFLAGS=0x00010246

Top of Stack: (sp=0xbfe2a0d0)
0xbfe2a0d0:   00000000 00000050 00000000 00b157b8
0xbfe2a0e0:   093ab010 00000000 bfe2a108 00a505de
0xbfe2a0f0:   090b6360 08c56028 00a505a8 0061f1a4
0xbfe2a100:   093ab010 095679d0 bfe2a118 00a50663
0xbfe2a110:   08c56028 00000000 bfe2a148 005cb2f8
0xbfe2a120:   093ab010 090b6360 bfe2a148 00b5b20d
0xbfe2a130:   090b6360 00473d27 005c74e5 005cb2e0
0xbfe2a140:   0061f1a4 00000000 bfe2a1a8 005c874b

Instructions: (pc=0x00a48af3)
0x00a48ae3:   89 3c 24 e8 d1 db e5 ff 83 c4 0c 5b 5e 5f 5d c3
0x00a48af3:   81 66 0c ff ef ff ff eb a6 55 89 e5 57 89 c7 56

Stack: [0xbfddc000,0xbfe2c000],  sp=0xbfe2a0d0,  free space=312k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libgtk-x11-2.0.so.0+0x1e0af3]
C  [libgtk-x11-2.0.so.0+0x1e85de]
C  [libgtk-x11-2.0.so.0+0x1e8663]
C  [libglib-2.0.so.0+0x262f8]
C  [libglib-2.0.so.0+0x2374b]  g_main_context_dispatch+0x1cb
C  [libglib-2.0.so.0+0x251d2]
C  [libglib-2.0.so.0+0x256b8]  g_main_context_iteration+0x63
C  [libswt-pi-gtk-3555.so+0x3338c]  Java_org_eclipse_swt_internal_gtk_OS__1g_1main_1context_1iteration+0x20
J  org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(IZ)Z
J  org.eclipse.swt.widgets.Display.readAndDispatch()Z
j  org.eclipse.ui.internal.Workbench.runEventLoop(Lorg/eclipse/jface/window/Window$IExceptionHandler;Lorg/eclipse/swt/widgets/Display;)V+9
j  org.eclipse.ui.internal.Workbench.runUI()I+393
j  org.eclipse.ui.internal.Workbench.access$4(Lorg/eclipse/ui/internal/Workbench;)I+1
j  org.eclipse.ui.internal.Workbench$5.run()V+55
j  org.eclipse.core.databinding.observable.Realm.runWithDefault(Lorg/eclipse/core/databinding/observable/Realm;Ljava/lang/Runnable;)V+12
j  org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+18
j  org.eclipse.ui.PlatformUI.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+2
j  org.eclipse.ui.internal.ide.application.IDEApplication.start(Lorg/eclipse/equinox/app/IApplicationContext;)Ljava/lang/Object;+84
j  org.eclipse.equinox.internal.app.EclipseAppHandle.run(Ljava/lang/Object;)Ljava/lang/Object;+135
j  org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Ljava/lang/Object;)Ljava/lang/Object;+103
j  org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ljava/lang/Object;)Ljava/lang/Object;+29
j  org.eclipse.core.runtime.adaptor.EclipseStarter.run(Ljava/lang/Object;)Ljava/lang/Object;+149
j  org.eclipse.core.runtime.adaptor.EclipseStarter.run([Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Object;+183
v  ~StubRoutines::call_stub
V  [libjvm.so+0x213740]
V  [libjvm.so+0x327158]
V  [libjvm.so+0x21359f]
V  [libjvm.so+0x35465b]
V  [libjvm.so+0x3575c1]
V  [libjvm.so+0x28c7af]
C  [libjava.so+0x152d4]  Java_sun_reflect_NativeMethodAccessorImpl_invoke0+0x34
j  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j  sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
j  sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6
j  java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+161
j  org.eclipse.equinox.launcher.Main.invokeFramework([Ljava/lang/String;[Ljava/net/URL;)V+211
j  org.eclipse.equinox.launcher.Main.basicRun([Ljava/lang/String;)V+114
j  org.eclipse.equinox.launcher.Main.run([Ljava/lang/String;)I+4
v  ~StubRoutines::call_stub
V  [libjvm.so+0x213740]
V  [libjvm.so+0x327158]
V  [libjvm.so+0x21359f]
V  [libjvm.so+0x243a3b]
V  [libjvm.so+0x22525e]
C  [eclipse_1206.so+0x6cec]  startJavaJNI+0x31d
C  [eclipse_1206.so+0x8226]  startJavaVM+0x24
C  [eclipse_1206.so+0x2dd8]  run+0x502
C  [eclipse+0x10aa]  setlocale+0x602
C  [libc.so.6+0x14de3]  __libc_start_main+0xd3

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J  org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(IZ)Z
J  org.eclipse.swt.widgets.Display.readAndDispatch()Z
j  org.eclipse.ui.internal.Workbench.runEventLoop(Lorg/eclipse/jface/window/Window$IExceptionHandler;Lorg/eclipse/swt/widgets/Display;)V+9
j  org.eclipse.ui.internal.Workbench.runUI()I+393
j  org.eclipse.ui.internal.Workbench.access$4(Lorg/eclipse/ui/internal/Workbench;)I+1
j  org.eclipse.ui.internal.Workbench$5.run()V+55
j  org.eclipse.core.databinding.observable.Realm.runWithDefault(Lorg/eclipse/core/databinding/observable/Realm;Ljava/lang/Runnable;)V+12
j  org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+18
j  org.eclipse.ui.PlatformUI.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+2
j  org.eclipse.ui.internal.ide.application.IDEApplication.start(Lorg/eclipse/equinox/app/IApplicationContext;)Ljava/lang/Object;+84
j  org.eclipse.equinox.internal.app.EclipseAppHandle.run(Ljava/lang/Object;)Ljava/lang/Object;+135
j  org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Ljava/lang/Object;)Ljava/lang/Object;+103
j  org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ljava/lang/Object;)Ljava/lang/Object;+29
j  org.eclipse.core.runtime.adaptor.EclipseStarter.run(Ljava/lang/Object;)Ljava/lang/Object;+149
j  org.eclipse.core.runtime.adaptor.EclipseStarter.run([Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Object;+183
v  ~StubRoutines::call_stub
j  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j  sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
j  sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6
j  java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+161
j  org.eclipse.equinox.launcher.Main.invokeFramework([Ljava/lang/String;[Ljava/net/URL;)V+211
j  org.eclipse.equinox.launcher.Main.basicRun([Ljava/lang/String;)V+114
j  org.eclipse.equinox.launcher.Main.run([Ljava/lang/String;)I+4
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x08f32000 JavaThread "Worker-3" [_thread_blocked, id=22031, stack(0x06d8c000,0x06ddd000)]
  0xb77ee400 JavaThread "Worker-1" [_thread_blocked, id=22029, stack(0x01bb9000,0x01c0a000)]
  0x08f2fc00 JavaThread "Bundle File Closer" daemon [_thread_blocked, id=21991, stack(0x01734000,0x01785000)]
  0x09129000 JavaThread "[ThreadPool Manager] - Idle Thread" daemon [_thread_blocked, id=21867, stack(0x029d9000,0x02a2a000)]
  0x09216800 JavaThread "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon [_thread_blocked, id=21686, stack(0x068ac000,0x068fd000)]
  0xb7786000 JavaThread "Java indexing" daemon [_thread_blocked, id=21662, stack(0x01950000,0x019a1000)]
  0x08cd0c00 JavaThread "Worker-0" [_thread_blocked, id=21435, stack(0x016e3000,0x01734000)]
  0x08e00c00 JavaThread "[Timer] - Main Queue Handler" daemon [_thread_blocked, id=21278, stack(0x06108000,0x06159000)]
  0xb7b8e800 JavaThread "Framework Event Dispatcher" daemon [_thread_blocked, id=21230, stack(0x0367b000,0x036cc000)]
  0xb7b59000 JavaThread "Start Level Event Dispatcher" daemon [_thread_blocked, id=21227, stack(0x01692000,0x016e3000)]
  0xb7b3c800 JavaThread "State Data Manager" daemon [_thread_blocked, id=21223, stack(0x00ccd000,0x00d1e000)]
  0x08cbd400 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=21205, stack(0x00c23000,0x00c74000)]
  0x08cba400 JavaThread "CompilerThread0" daemon [_thread_blocked, id=21204, stack(0x02e74000,0x02ef5000)]
  0x08cb0000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=21203, stack(0x00bae000,0x00bff000)]
  0x08ca8800 JavaThread "Finalizer" daemon [_thread_blocked, id=21202, stack(0x006a0000,0x006f1000)]
  0x08ca7000 JavaThread "Reference Handler" daemon [_thread_blocked, id=21201, stack(0x00187000,0x001d8000)]
=>0x08c80c00 JavaThread "main" [_thread_in_native, id=21175, stack(0xbfddc000,0xbfe2c000)]


Reproducible: Always

Steps to Reproduce:
1. Right click on any project -> Import -> Filesystem
2. Pick a directory that has lots of files
3. Click in the left pane (directories)
4. Type to get a popup and go to the first folder
5. Hit Cancel
6. Eclipse crash

I usually do step 4 couple of times, but it is reproducible even with just one time.
Comment 1 Oleg Besedin CLA 2011-01-19 10:15:56 EST
I think that dialog used is org.eclipse.swt.widgets.DirectoryDialog .
Comment 2 Bogdan Gheorghe CLA 2011-02-22 14:16:46 EST
Arun, please investigate.
Comment 3 Arun Thondapu CLA 2011-04-01 16:09:23 EDT
I followed the same steps but I'm not able to reproduce the problem using Eclipse 3.7 on Ubuntu Linux platform.
Can you please verify whether the problem exists for you with one of the latest Eclipse builds?
Also, which OS and what version are you using?

Thanks!