Menu

#1195 Frequent hanging: Squirrel 3.6 + Ubuntu 14.10

SQuirreL
open
nobody
None
5
2015-06-09
2015-04-15
No

Squirrel 3.6 frequently hangs while writing queries. No queries are running a the time.

Platform - Ubuntu 14.10 (with Unity):
Linux baader 3.16.0-33-generic #44-Ubuntu SMP Thu Mar 12 12:19:35 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)

Connection is to a sql server:
jTDS Type 4 JDBC Driver for MS SQL Server and Sybase

Thread dump:

2015-04-15 13:43:49
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode):

"Attach Listener" daemon prio=10 tid=0x00007fa078001000 nid=0x428 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"SQLParserThread" prio=10 tid=0x00007fa04c97e800 nid=0x6e7e in Object.wait() [0x00007fa09ae2b000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000fed76c18> (a net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread)
at java.lang.Object.wait(Object.java:503)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread.run(ParserThread.java:385)
- locked <0x00000000fed76c18> (a net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread)

"Thread-5" daemon prio=10 tid=0x00007fa04c7ce800 nid=0x6e7a in Object.wait() [0x00007fa09af2c000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ff22a7b8> (a net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback)
at java.lang.Object.wait(Object.java:503)
at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:69)
- locked <0x00000000ff22a7b8> (a net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback)
at java.lang.Thread.run(Thread.java:722)

"Thread-4" daemon prio=10 tid=0x00007fa04c7aa000 nid=0x6e79 in Object.wait() [0x00007fa09b02d000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ff22a7b8> (a net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback)
at java.lang.Object.wait(Object.java:503)
at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:69)
- locked <0x00000000ff22a7b8> (a net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback)
at java.lang.Thread.run(Thread.java:722)

"Thread-3" daemon prio=10 tid=0x00007fa04c7a7800 nid=0x6e78 in Object.wait() [0x00007fa09b12e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ff22a7b8> (a net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback)
at java.lang.Object.wait(Object.java:503)
at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:69)
- locked <0x00000000ff22a7b8> (a net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback)
at java.lang.Thread.run(Thread.java:722)

"jTDS TimerThread" daemon prio=10 tid=0x00007fa0b80c5800 nid=0x6e77 in Object.wait() [0x00007fa09b853000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ff22b190> (a java.util.LinkedList)
at net.sourceforge.jtds.util.TimerThread.run(TimerThread.java:115)
- locked <0x00000000ff22b190> (a java.util.LinkedList)

"pool-1-thread-2" prio=10 tid=0x00007fa04c79f800 nid=0x6e76 waiting on condition [0x00007fa0a0209000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000ff22b328> (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 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:722)

"pool-1-thread-1" prio=10 tid=0x00007fa04c79d800 nid=0x6e75 waiting on condition [0x00007fa0a0455000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000ff22b328> (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 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:722)

"TimerQueue" daemon prio=10 tid=0x00007fa04c71d000 nid=0x6e72 waiting on condition [0x00007fa0a0556000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000fedb0108> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:220)
at javax.swing.TimerQueue.run(TimerQueue.java:171)
at java.lang.Thread.run(Thread.java:722)

"Timer-0" daemon prio=10 tid=0x00007fa04c626800 nid=0x6e71 in Object.wait() [0x00007fa0a0680000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ff22b9e8> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:552)
- locked <0x00000000ff22b9e8> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)

"DestroyJavaVM" prio=10 tid=0x00007fa0b000a000 nid=0x6e5a waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"AWT-EventQueue-1" prio=10 tid=0x00007fa0b04a9800 nid=0x6e6f runnable [0x00007fa0a0edd000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.DataInputStream.readFully(DataInputStream.java:195)
at java.io.DataInputStream.readFully(DataInputStream.java:169)
at net.sourceforge.jtds.jdbc.SharedSocket.readPacket(SharedSocket.java:850)
at net.sourceforge.jtds.jdbc.SharedSocket.getNetPacket(SharedSocket.java:731)
- locked <0x00000000f008ac20> (a java.util.concurrent.ConcurrentHashMap)
at net.sourceforge.jtds.jdbc.ResponseStream.getPacket(ResponseStream.java:477)
at net.sourceforge.jtds.jdbc.ResponseStream.read(ResponseStream.java:114)
at net.sourceforge.jtds.jdbc.ResponseStream.peek(ResponseStream.java:99)
at net.sourceforge.jtds.jdbc.TdsCore.wait(TdsCore.java:4127)
at net.sourceforge.jtds.jdbc.TdsCore.setRowCountAndTextSize(TdsCore.java:4096)
at net.sourceforge.jtds.jdbc.TdsCore.executeSQL(TdsCore.java:1001)
- locked <0x00000000ff420e50> (a net.sourceforge.jtds.jdbc.TdsCore)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:493)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:1032)
at net.sourceforge.jtds.jdbc.JtdsDatabaseMetaData.getColumns(JtdsDatabaseMetaData.java:422)
at net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData.getColumnInfo(SQLDatabaseMetaData.java:1752)
- locked <0x00000000f0025fd8> (a net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData)
at net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData.getColumnInfo(SQLDatabaseMetaData.java:1841)
- locked <0x00000000f0025fd8> (a net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.accessDbToLoadColumns(SchemaInfo.java:1297)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.loadColumns(SchemaInfo.java:1272)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.isTableExt(SchemaInfo.java:760)
at net.sourceforge.squirrel_sql.plugins.syntax.rsyntax.RSyntaxHighlightTokenMatcher.isTable(RSyntaxHighlightTokenMatcher.java:119)
at net.sourceforge.squirrel_sql.plugins.syntax.rsyntax.RSyntaxHighlightTokenMatcherProxy.isTable(RSyntaxHighlightTokenMatcherProxy.java:31)
at net.sourceforge.squirrel_sql.plugins.syntax.rsyntax.SquirrelTokenMarker.addToken(SquirrelTokenMarker.java:49)
at org.fife.ui.rsyntaxtextarea.TokenMakerBase.addToken(TokenMakerBase.java:107)
at net.sourceforge.squirrel_sql.plugins.syntax.rsyntax.SquirrelTokenMakerBase.addToken(SquirrelTokenMakerBase.java:313)
at net.sourceforge.squirrel_sql.plugins.syntax.rsyntax.SquirrelTokenMakerBase.addToken(SquirrelTokenMakerBase.java:298)
at net.sourceforge.squirrel_sql.plugins.syntax.rsyntax.SquirrelTokenMakerBase.addToken(SquirrelTokenMakerBase.java:287)
at net.sourceforge.squirrel_sql.plugins.syntax.rsyntax.SquirrelTokenMakerBase.yylex(SquirrelTokenMakerBase.java:683)
at net.sourceforge.squirrel_sql.plugins.syntax.rsyntax.SquirrelTokenMakerBase.getTokenList(SquirrelTokenMakerBase.java:370)
at org.fife.ui.rsyntaxtextarea.TokenMakerBase.getLastTokenTypeOnLine(TokenMakerBase.java:203)
at net.sourceforge.squirrel_sql.plugins.syntax.rsyntax.SquirrelTokenMakerBase.getLastTokenTypeOnLine(SquirrelTokenMakerBase.java:72)
at org.fife.ui.rsyntaxtextarea.RSyntaxDocument.updateLastTokensBelow(RSyntaxDocument.java:553)
at org.fife.ui.rsyntaxtextarea.RSyntaxDocument.fireInsertUpdate(RSyntaxDocument.java:177)
at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:749)
at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:708)
at javax.swing.text.PlainDocument.insertString(PlainDocument.java:130)
at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:670)
at javax.swing.text.JTextComponent.replaceSelection(JTextComponent.java:1379)
at org.fife.ui.rtextarea.RTextArea.handleReplaceSelection(RTextArea.java:853)
at org.fife.ui.rtextarea.RTextArea.replaceSelection(RTextArea.java:1226)
at javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction.actionPerformed(DefaultEditorKit.java:884)
at org.fife.ui.rtextarea.RTextAreaEditorKit$DefaultKeyTypedAction.actionPerformedImpl(RTextAreaEditorKit.java:797)
at org.fife.ui.rtextarea.RecordableTextAction.actionPerformed(RecordableTextAction.java:105)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1664)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2879)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2926)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2842)
at java.awt.Component.processEvent(Component.java:6282)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1895)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:899)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727)
at java.awt.Component.dispatchEventImpl(Component.java:4731)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at net.sourceforge.squirrel_sql.client.Main$1.dispatchEvent(Main.java:99)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
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-EventQueue-0" prio=10 tid=0x00007fa0b04a0000 nid=0x6e6e waiting on condition [0x00007fa0a0fe1000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000fee00500> (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:537)
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=10 tid=0x00007fa0b049e800 nid=0x6e6d in Object.wait() [0x00007fa0a10e2000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ff22bdc8> (a java.lang.Object)
at java.lang.Object.wait(Object.java:503)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)
- locked <0x00000000ff22bdc8> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:722)

"AWT-XAWT" daemon prio=10 tid=0x00007fa0b049a000 nid=0x6e6c runnable [0x00007fa0a11e3000]
java.lang.Thread.State: RUNNABLE
at sun.awt.X11.XToolkit.waitForEvents(Native Method)
at sun.awt.X11.XToolkit.run(XToolkit.java:627)
at sun.awt.X11.XToolkit.run(XToolkit.java:591)
at java.lang.Thread.run(Thread.java:722)

"Java2D Disposer" daemon prio=10 tid=0x00007fa0b0474800 nid=0x6e6b in Object.wait() [0x00007fa0a12e4000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000feb1b9c0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x00000000feb1b9c0> (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:722)

"Service Thread" daemon prio=10 tid=0x00007fa0b00fa000 nid=0x6e69 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0x00007fa0b00f8000 nid=0x6e68 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0x00007fa0b00f5000 nid=0x6e67 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x00007fa0b00f2800 nid=0x6e66 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0x00007fa0b00a6800 nid=0x6e65 in Object.wait() [0x00007fa0a27fd000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ff4d3158> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x00000000ff4d3158> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)

"Reference Handler" daemon prio=10 tid=0x00007fa0b00a4000 nid=0x6e64 in Object.wait() [0x00007fa0a28fe000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000f09cfaf8> (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 <0x00000000f09cfaf8> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x00007fa0b009c800 nid=0x6e63 runnable

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fa0b0018000 nid=0x6e5b runnable

"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007fa0b001a000 nid=0x6e5c runnable

"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007fa0b001b800 nid=0x6e5d runnable

"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007fa0b001d800 nid=0x6e5e runnable

"GC task thread#4 (ParallelGC)" prio=10 tid=0x00007fa0b001f800 nid=0x6e5f runnable

"GC task thread#5 (ParallelGC)" prio=10 tid=0x00007fa0b0021800 nid=0x6e60 runnable

"GC task thread#6 (ParallelGC)" prio=10 tid=0x00007fa0b0023800 nid=0x6e61 runnable

"GC task thread#7 (ParallelGC)" prio=10 tid=0x00007fa0b0025800 nid=0x6e62 runnable

"VM Periodic Task Thread" prio=10 tid=0x00007fa0b0105000 nid=0x6e6a waiting on condition

JNI global references: 636

Discussion

  • Alfonso bonso

    Alfonso bonso - 2015-04-16

    The crashes seem to happen just as I am typing the last letter of a table name, i.e.

    select * from db.my_tabl

    which suggests that it might be some clever autocomplete/lookup that is freezing

     
  • Alfonso bonso

    Alfonso bonso - 2015-04-22

    .. and as suggested by the thread dump, disabling the rsyntax plugin stops this happening.

     
  • Robert Muil

    Robert Muil - 2015-06-09

    I have a very similar problem, caused by SQuirrel running out of memory (java.lang.OutOfMemoryError: Java heap space) when the rsyntax plugin tries to query tables that it finds in the SQL I've just opened.

    I have not yet found any way of configuring how it makes these queries (e.g. whether it includes a rownum<10 / limit 10 style constraint or not)

     

Log in to post a comment.