8 Replies Latest reply on Jan 7, 2014 12:10 PM by estrenuo

    SQL Developer EA3 hangs after start up in MacOS

    JKL

      Does anyone experience this issue?  After I install SQLDeveloper EA3 for Mac OS, when I click on the app to start.  SQLDeveloper starts up fine and it will present the start-up page.  But once it is in the Start-up page, then it hangs with a spinning wheel or hour glass in Windows term.  It looks like it is doing something.  But it just won't work and it hangs.  I have to force kill the job to get out of it.

       

      Does anyone know if there is any issue like this on the MacOS side?  I have Java JDK 1.7.45 on my Mac.  SQLDeveloper 3 works fine when I uninstall SQL Developer 4 EA3 and put the SQL Developer 3 back.  I don't think that this is a java related.  But it may be configuration related where SQL Developer appears to go to la la land after it starts up.

       

      So any idea will be greatly appreciated.  Thanks.

        • 1. Re: SQL Developer EA3 hangs after start up in MacOS
          Jim Smith

          Try running from a terminal window and see if there are any errors display.    When SQL Developer hangs, produce a thread dump.  This involves "kill -3 <pid>"  where <pid> is the process id of the java process running sqldeveloper.

          • 2. Re: SQL Developer EA3 hangs after start up in MacOS
            JKL

            I did run this from the terminal.  I run it from /Applications/SQLDeveloper.app/Contents/Resources/sqldeveloper/sqldeveloper/bin and simply run it with ./sqldeveloper.

             

            I have also updated the sqldeveloper.conf to use debug.conf option.

             

            IncludeConfFile  sqldeveloper-debug.conf

             

            When I run it, I receive the following and then it hangs and the spinning wheel happens...

             

            Oracle SQL Developer

            Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.

             

            Java asserts are enabled!

             

             

            LOAD TIME : 315

             

            The following lists the dump when I issued kill -3 <pid>:

             

            Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.45-b08 mixed mode):

             

            "status-0" prio=5 tid=0x00007ff974d84800 nid=0x13c0b waiting on condition [0x00000001150a6000]

               java.lang.Thread.State: WAITING (parking)

              at sun.misc.Unsafe.park(Native Method)

              - parking to wait for  <0x00000007f68ee7a0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

              at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

              at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)

              at java.util.concurrent.DelayQueue.take(DelayQueue.java:209)

              at oracle.ide.status.StatusExecutor$StatusQueue.take(StatusExecutor.java:338)

              at oracle.ide.status.StatusExecutor$StatusQueue.take(StatusExecutor.java:300)

              at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)

              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

              at java.lang.Thread.run(Thread.java:744)

             

            "IconOverlayTracker Timer: null-jdbcNodeInfoType" prio=5 tid=0x00007ff976848000 nid=0x13913 in Object.wait() [0x00000001200a4000]

               java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f69a1e80> (a java.util.TaskQueue)

              at java.lang.Object.wait(Object.java:503)

              at java.util.TimerThread.mainLoop(Timer.java:526)

              - locked <0x00000007f69a1e80> (a java.util.TaskQueue)

              at java.util.TimerThread.run(Timer.java:505)

             

            "WaitCursor-Timer" prio=5 tid=0x00007ff974e0a000 nid=0x11d03 in Object.wait() [0x000000011bca5000]

               java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f670c360> (a java.util.TaskQueue)

              at java.lang.Object.wait(Object.java:503)

              at java.util.TimerThread.mainLoop(Timer.java:526)

              - locked <0x00000007f670c360> (a java.util.TaskQueue)

              at java.util.TimerThread.run(Timer.java:505)

             

            "WeakDataReference polling" prio=5 tid=0x00007ff97b325800 nid=0x11b03 in Object.wait() [0x000000011bba2000]

               java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f674cd10> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)

              - locked <0x00000007f674cd10> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)

              at oracle.ide.util.WeakDataReference$Cleaner.run(WeakDataReference.java:88)

              at java.lang.Thread.run(Thread.java:744)

             

            "pool-2-thread-1" prio=5 tid=0x00007ff97e1f6800 nid=0x11903 waiting on condition [0x000000011b18a000]

               java.lang.Thread.State: WAITING (parking)

              at sun.misc.Unsafe.park(Native Method)

              - parking to wait for  <0x00000007f62b07d0> (a java.util.concurrent.SynchronousQueue$TransferStack)

              at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

              at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:458)

              at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)

              at java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:925)

              at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)

              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

              at java.lang.Thread.run(Thread.java:744)

             

            "Scheduler" daemon prio=5 tid=0x00007ff97e621000 nid=0x11707 in Object.wait() [0x0000000117986000]

               java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f62f3f08> (a oracle.dbtools.raptor.backgroundTask.TaskLinkedList)

              at java.lang.Object.wait(Object.java:503)

              at oracle.dbtools.raptor.backgroundTask.TaskLinkedList.takeNextTask(TaskLinkedList.java:47)

              - locked <0x00000007f62f3f08> (a oracle.dbtools.raptor.backgroundTask.TaskLinkedList)

              at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$SchedulerThread.run(RaptorTaskManager.java:479)

             

            "DestroyJavaVM" prio=5 tid=0x00007ff9798c8000 nid=0x1903 waiting on condition [0x0000000000000000]

               java.lang.Thread.State: RUNNABLE

             

            "Thread-9" daemon prio=5 tid=0x00007ff97bac2000 nid=0x11303 in Object.wait() [0x000000011b087000]

               java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f5225358> (a java.util.LinkedList)

              at java.lang.Object.wait(Object.java:503)

              at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractPreferences.java:1476)

              - locked <0x00000007f5225358> (a java.util.LinkedList)

             

            "Log Poller" prio=5 tid=0x00007ff97b048800 nid=0x11007 waiting on condition [0x000000011a9ca000]

               java.lang.Thread.State: WAITING (parking)

              at sun.misc.Unsafe.park(Native Method)

              - parking to wait for  <0x00000007f55b3160> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

              at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

              at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)

              at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)

              at oracle.ide.log.QueuedLoggingHandler.take(QueuedLoggingHandler.java:60)

              at oracle.ideimpl.log.TabbedLogManager$4.run(TabbedLogManager.java:321)

              at java.lang.Thread.run(Thread.java:744)

             

            "JarIndex Timer" daemon prio=5 tid=0x00007ff97b80d800 nid=0x10407 in Object.wait() [0x000000011b474000]

               java.lang.Thread.State: TIMED_WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f4aaf6f0> (a java.util.TaskQueue)

              at java.util.TimerThread.mainLoop(Timer.java:552)

              - locked <0x00000007f4aaf6f0> (a java.util.TaskQueue)

              at java.util.TimerThread.run(Timer.java:505)

             

            "TimedCache-Timer" daemon prio=5 tid=0x00007ff97b099000 nid=0x1060b in Object.wait() [0x000000011af84000]

               java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f4891358> (a java.util.TaskQueue)

              at java.lang.Object.wait(Object.java:503)

              at java.util.TimerThread.mainLoop(Timer.java:526)

              - locked <0x00000007f4891358> (a java.util.TaskQueue)

              at java.util.TimerThread.run(Timer.java:505)

             

            "Framework Event Dispatcher" daemon prio=5 tid=0x00007ff975b08800 nid=0x10203 in Object.wait() [0x0000000117f48000]

               java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f41f4ac0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)

              at java.lang.Object.wait(Object.java:503)

              at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)

              - locked <0x00000007f41f4ac0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)

              at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)

             

            "Framework Active Thread" prio=5 tid=0x00007ff9741b6000 nid=0xfe17 in Object.wait() [0x0000000117d42000]

               java.lang.Thread.State: TIMED_WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f4059920> (a org.eclipse.osgi.framework.internal.core.Framework)

              at org.eclipse.osgi.framework.internal.core.Framework.run(Framework.java:1863)

              - locked <0x00000007f4059920> (a org.eclipse.osgi.framework.internal.core.Framework)

              at java.lang.Thread.run(Thread.java:744)

             

            "CLI Requests Server" daemon prio=5 tid=0x00007ff974975000 nid=0xf103 runnable [0x00000001168f9000]

               java.lang.Thread.State: RUNNABLE

              at java.net.PlainSocketImpl.socketAccept(Native Method)

              at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)

              at java.net.ServerSocket.implAccept(ServerSocket.java:530)

              at java.net.ServerSocket.accept(ServerSocket.java:498)

              at org.netbeans.CLIHandler$Server.run(CLIHandler.java:1100)

             

            "Active Reference Queue Daemon" daemon prio=5 tid=0x00007ff974974800 nid=0xef03 in Object.wait() [0x00000001165c5000]

               java.lang.Thread.State: TIMED_WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f3ea0180> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)

              - locked <0x00000007f3ea0180> (a java.lang.ref.ReferenceQueue$Lock)

              at org.openide.util.lookup.implspi.ActiveQueue$Daemon.run(ActiveQueue.java:180)

              - locked <0x00000007f3ea0180> (a java.lang.ref.ReferenceQueue$Lock)

             

            "TimerQueue" daemon prio=5 tid=0x00007ff9748c3800 nid=0xd703 waiting on condition [0x000000011220c000]

               java.lang.Thread.State: WAITING (parking)

              at sun.misc.Unsafe.park(Native Method)

              - parking to wait for  <0x00000007f3f10eb8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

              at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

              at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)

              at java.util.concurrent.DelayQueue.take(DelayQueue.java:209)

              at javax.swing.TimerQueue.run(TimerQueue.java:171)

              at java.lang.Thread.run(Thread.java:744)

             

            "Java2D Disposer" daemon prio=5 tid=0x00007ff97489a000 nid=0xd307 in Object.wait() [0x0000000111fc1000]

               java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f3f264b8> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)

              - locked <0x00000007f3f264b8> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)

              at sun.java2d.Disposer.run(Disposer.java:145)

              at java.lang.Thread.run(Thread.java:744)

             

            "Java2D Queue Flusher" daemon prio=5 tid=0x00007ff975884000 nid=0xc207 in Object.wait() [0x0000000110cab000]

               java.lang.Thread.State: TIMED_WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f3e85998> (a sun.java2d.opengl.OGLRenderQueue$QueueFlusher)

              at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java:208)

              - locked <0x00000007f3e85998> (a sun.java2d.opengl.OGLRenderQueue$QueueFlusher)

             

            "AWT-EventQueue-0" prio=5 tid=0x00007ff974883000 nid=0xbb03 waiting on condition [0x0000000110ba8000]

               java.lang.Thread.State: WAITING (parking)

              at sun.misc.Unsafe.park(Native Method)

              - parking to wait for  <0x00000007f3f0f658> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

              at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

              at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)

              at java.awt.EventQueue.getNextEvent(EventQueue.java:543)

              at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)

              at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)

              at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)

              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)

              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)

              at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

             

            "AWT-Shutdown" prio=5 tid=0x00007ff975879000 nid=0x750b in Object.wait() [0x000000010e088000]

               java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f3f13b80> (a java.lang.Object)

              at java.lang.Object.wait(Object.java:503)

              at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)

              - locked <0x00000007f3f13b80> (a java.lang.Object)

              at java.lang.Thread.run(Thread.java:744)

             

            "AppKit Thread" daemon prio=5 tid=0x00007ff975881800 nid=0x507 runnable [0x00007fff5c5bd000]

               java.lang.Thread.State: RUNNABLE

              at sun.lwawt.macosx.LWCToolkit.doAWTRunLoop(Native Method)

              at sun.lwawt.macosx.LWCToolkit.invokeAndWait(LWCToolkit.java:549)

              at sun.lwawt.macosx.LWCToolkit.invokeAndWait(LWCToolkit.java:489)

              at sun.lwawt.macosx.CAccessibility.invokeAndWait(CAccessibility.java:75)

              at sun.lwawt.macosx.CAccessibility.getFocusOwner(CAccessibility.java:521)

             

            "Service Thread" daemon prio=5 tid=0x00007ff97380e000 nid=0x5303 runnable [0x0000000000000000]

               java.lang.Thread.State: RUNNABLE

             

            "C2 CompilerThread1" daemon prio=5 tid=0x00007ff975823800 nid=0x5103 waiting on condition [0x0000000000000000]

               java.lang.Thread.State: RUNNABLE

             

            "C2 CompilerThread0" daemon prio=5 tid=0x00007ff97401a000 nid=0x4f03 waiting on condition [0x0000000000000000]

               java.lang.Thread.State: RUNNABLE

             

            "Signal Dispatcher" daemon prio=5 tid=0x00007ff97401f000 nid=0x4d03 waiting on condition [0x0000000000000000]

               java.lang.Thread.State: RUNNABLE

             

            "Finalizer" daemon prio=5 tid=0x00007ff974843800 nid=0x3903 in Object.wait() [0x000000010bef2000]

               java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f3bdf128> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)

              - locked <0x00000007f3bdf128> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)

              at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:189)

             

            "Reference Handler" daemon prio=5 tid=0x00007ff974010800 nid=0x3703 in Object.wait() [0x000000010bdef000]

               java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x00000007f3f24e00> (a java.lang.ref.Reference$Lock)

              at java.lang.Object.wait(Object.java:503)

              at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)

              - locked <0x00000007f3f24e00> (a java.lang.ref.Reference$Lock)

             

            "VM Thread" prio=5 tid=0x00007ff974843000 nid=0x3503 runnable

             

            "GC task thread#0 (ParallelGC)" prio=5 tid=0x00007ff974814800 nid=0x2503 runnable

             

            "GC task thread#1 (ParallelGC)" prio=5 tid=0x00007ff974815000 nid=0x2703 runnable

             

            "GC task thread#2 (ParallelGC)" prio=5 tid=0x00007ff974815800 nid=0x2903 runnable

             

            "GC task thread#3 (ParallelGC)" prio=5 tid=0x00007ff974816000 nid=0x2b03 runnable

             

            "GC task thread#4 (ParallelGC)" prio=5 tid=0x00007ff974817000 nid=0x2d03 runnable

             

            "GC task thread#5 (ParallelGC)" prio=5 tid=0x00007ff974817800 nid=0x2f03 runnable

             

            "GC task thread#6 (ParallelGC)" prio=5 tid=0x00007ff974818000 nid=0x3103 runnable

             

            "GC task thread#7 (ParallelGC)" prio=5 tid=0x00007ff974818800 nid=0x3303 runnable

             

            "VM Periodic Task Thread" prio=5 tid=0x00007ff975834800 nid=0x5503 waiting on condition

             

            JNI global references: 1152

             

            Heap

            PSYoungGen      total 46080K, used 17363K [0x00000007fbd00000, 0x0000000800000000, 0x0000000800000000)

              eden space 23552K, 42% used [0x00000007fbd00000,0x00000007fc6c8250,0x00000007fd400000)

              from space 22528K, 32% used [0x00000007fd400000,0x00000007fdb2caf8,0x00000007fea00000)

              to   space 22528K, 0% used [0x00000007fea00000,0x00000007fea00000,0x0000000800000000)

            ParOldGen       total 131584K, used 73062K [0x00000007f3800000, 0x00000007fb880000, 0x00000007fbd00000)

              object space 131584K, 55% used [0x00000007f3800000,0x00000007f7f59820,0x00000007fb880000)

            PSPermGen       total 92160K, used 67536K [0x00000007e3800000, 0x00000007e9200000, 0x00000007f3800000)

              object space 92160K, 73% used [0x00000007e3800000,0x00000007e79f40d0,0x00000007e9200000)

            • 3. Re: SQL Developer EA3 hangs after start up in MacOS
              JKL

              Jim, do you have any idea on my issue?  Thanks

              • 4. Re: SQL Developer EA3 hangs after start up in MacOS
                Jim Smith

                I'm afraid not.  One of the development team would need to look at the thread dump.

                • 5. Re: SQL Developer EA3 hangs after start up in MacOS
                  JKL

                  Ok, thanks for checking in for me.

                  • 6. Re: SQL Developer EA3 hangs after start up in MacOS
                    Gary Graham-Oracle

                    Hi JKL,

                     

                    Superficially, the thread dump seems fairly normal -- no deadlocks, over half the threads sleeping, waiting for something to do.  Comparing all its thread names with a full thread dump from a Windows system with SQL Developer idle, we see some interesting differences:

                    1. Mac OS  shows lots of ParallelGC task threads, Windows does not.  I believe that is the default GC algorithm, and the Mac has 8 cores.

                    2. Mac OS shows no Background Parser thread, whereas Windows does.

                    3. Windows shows a main thread, whereas Mac OS does not, but does show a DestroyJavaVM thread -- as if on the verge of exiting.

                    4. Mac OS shows an AppKit Thread, which is RUNNABLE and, as far as I can tell, looping in "sun.lwawt.macosx.LWCToolkit.doAWTRunLoop".

                    Just a guess, but possibly there is some issue similar to a deadlock with regard to AppKit's event dispatch thread versus Java's event dispatch thread.  Obviously there are members of our own development team using 4.0 successfully on the Mac, so there must be something specific to your environment.  Possibly with more detail we can get either get a bug filed or see whether it may be a known issue.

                     

                    I found the following comments on AppKit threads and Java event dispatching: https://wikis.oracle.com/display/OpenJDK/Java+vs.+AppKit+Threading+Manifesto

                     

                    Regards,

                    Gary

                    SQL Developer Team

                    • 7. Re: SQL Developer EA3 hangs after start up in MacOS
                      bokoxev

                      Did you ever get this resolved? I am experiencing the same issue with the GA release on my MacBook Pro.

                      • 8. Re: SQL Developer EA3 hangs after start up in MacOS
                        estrenuo

                        I experience the same issues with the GA release on my Mac. But maybe I found a solution. It seems to working for me up to now.

                         

                        1. Go to /Applications/SQLDeveloper.app/Contents/Resources/sqldeveloper/sqldeveloper/bin
                        2. Edit sqldeveloper.conf
                        3. Add the following line at the end:
                          • IncludeConfFile  sqldeveloper-Darwin.conf
                        4. Save the file
                        5. Launch the app as usual from the /Applications directory


                        It look like the sqldveloper-Darwin.conf contains some additional setting that affect the behavior positively. Your results may vary but you could give it a shot.