I have a large SQL file >5k lines, with many SQL statements. Sometimes, the "run all SQLs" functionality stops working. It doesn't work from Session menu, or the tool bar, or the keyboard shortcut. When this happens it does work in other sessions, even using the same alias (same connection details). Running garbage collect doesn't fix the issue.
When I start the app fresh, and load the file, and then run all, the 1st invocation doesn't work, the 2nd does, and then all subsequent invocations to run all do not work. Running single sql statements always works fine.
Output from threads tab in about.
"Image Fetcher 0" Id=33 TIMED_WAITING on java.util.Vector@b0f7101
at java.lang.Object.wait(Native Method)
- waiting on java.util.Vector@b0f7101
at sun.awt.image.ImageFetcher.nextImage(Unknown Source)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)
"SQLParserThread" Id=30 WAITING on net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread@51be969e
at java.lang.Object.wait(Native Method)
- waiting on net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread@51be969e
at java.lang.Object.wait(Unknown Source)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread.run(ParserThread.java:385)
"Swing-Shell" Id=28 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6d356aa7
at sun.misc.Unsafe.park(Native Method)
- waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6d356aa7
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Unknown Source)
...
"Thread-4" Id=26 WAITING on net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback@2c7fd4ce
at java.lang.Object.wait(Native Method)
- waiting on net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback@2c7fd4ce
at java.lang.Object.wait(Unknown Source)
at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:69)
at java.lang.Thread.run(Unknown Source)
"Thread-3" Id=24 WAITING on net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback@2c7fd4ce
at java.lang.Object.wait(Native Method)
- waiting on net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback@2c7fd4ce
at java.lang.Object.wait(Unknown Source)
at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:69)
at java.lang.Thread.run(Unknown Source)
"Thread-2" Id=23 WAITING on net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback@2c7fd4ce
at java.lang.Object.wait(Native Method)
- waiting on net.sourceforge.squirrel_sql.fw.util.TaskThreadPool$MyCallback@2c7fd4ce
at java.lang.Object.wait(Unknown Source)
at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:69)
at java.lang.Thread.run(Unknown Source)
"pool-1-thread-2" Id=22 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5c083f39
at sun.misc.Unsafe.park(Native Method)
- waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5c083f39
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"pool-1-thread-1" Id=21 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5c083f39
at sun.misc.Unsafe.park(Native Method)
- waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5c083f39
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"TimerQueue" Id=20 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3f817581
at sun.misc.Unsafe.park(Native Method)
- waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3f817581
at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
at java.util.concurrent.DelayQueue.take(Unknown Source)
at javax.swing.TimerQueue.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Number of locked synchronizers = 1
- java.util.concurrent.locks.ReentrantLock$NonfairSync@79a75840
"Abandoned connection cleanup thread" Id=19 TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@6d0a1f1b
at java.lang.Object.wait(Native Method)
- waiting on java.lang.ref.ReferenceQueue$Lock@6d0a1f1b
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:70)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Number of locked synchronizers = 1
- java.util.concurrent.ThreadPoolExecutor$Worker@631f4f0f
"DestroyJavaVM" Id=15 RUNNABLE
"AWT-EventQueue-1" Id=14 RUNNABLE
at sun.management.ThreadImpl.dumpThreads0(Native Method)
at sun.management.ThreadImpl.dumpAllThreads(Unknown Source)
at net.sourceforge.squirrel_sql.client.gui.AboutBoxDialog$ThreadPanel.doThreadDump(AboutBoxDialog.java:519)
at net.sourceforge.squirrel_sql.client.gui.AboutBoxDialog$ThreadPanel.<init>(AboutBoxDialog.java:492)
at net.sourceforge.squirrel_sql.client.gui.AboutBoxDialog.createGUI(AboutBoxDialog.java:165)
at net.sourceforge.squirrel_sql.client.gui.AboutBoxDialog.<init>(AboutBoxDialog.java:89)
at net.sourceforge.squirrel_sql.client.gui.AboutBoxDialog.showAboutBox(AboutBoxDialog.java:109)</init></init>
- locked java.lang.Class@356657dc
at net.sourceforge.squirrel_sql.client.mainframe.action.AboutCommand.execute(AboutCommand.java:59)
...
"AWT-Windows" Id=12 RUNNABLE
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"AWT-Shutdown" Id=11 WAITING on java.lang.Object@70e60474
at java.lang.Object.wait(Native Method)
- waiting on java.lang.Object@70e60474
at java.lang.Object.wait(Unknown Source)
at sun.awt.AWTAutoShutdown.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Java2D Disposer" Id=10 WAITING on java.lang.ref.ReferenceQueue$Lock@33402770
at java.lang.Object.wait(Native Method)
- waiting on java.lang.ref.ReferenceQueue$Lock@33402770
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at sun.java2d.Disposer.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Attach Listener" Id=5 RUNNABLE
"Signal Dispatcher" Id=4 RUNNABLE
"Finalizer" Id=3 WAITING on java.lang.ref.ReferenceQueue$Lock@7d971e4
at java.lang.Object.wait(Native Method)
- waiting on java.lang.ref.ReferenceQueue$Lock@7d971e4
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
"Reference Handler" Id=2 WAITING on java.lang.ref.Reference$Lock@3a9654c3
at java.lang.Object.wait(Native Method)
- waiting on java.lang.ref.Reference$Lock@3a9654c3
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference.tryHandlePending(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
java.runtime.name Java(TM) SE Runtime Environment
sun.boot.library.path C:\Program Files\Java\jre1.8.0_172\bin
java.vm.version 25.172-b11
sun.awt.nopixfmt true
java.vm.vendor Oracle Corporation
java.vendor.url http://java.oracle.com/
path.separator ;
java.vm.name Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg sun.io
user.script
user.country GB
sun.java.launcher SUN_STANDARD
sun.os.patch.level
java.vm.specification.name Java Virtual Machine Specification
user.dir C:\Program Files\squirrel-sql-3.9.0
java.runtime.version 1.8.0_172-b11
java.awt.graphicsenv sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs C:\Program Files\Java\jre1.8.0_172\lib\endorsed
os.arch amd64
java.io.tmpdir C:\Users\junk\AppData\Local\Temp\
line.separator
java.vm.specification.vendor Oracle Corporation
user.variant
os.name Windows 10
sun.java2d.noddraw true
sun.jnu.encoding Cp1252
java.library.path C:\Program Files (x86)\Common Files\Oracle\Java\ja
sun.awt.enableExtraMouseButton true
java.specification.name Java Platform API Specification
java.class.version 52.0
sun.management.compiler HotSpot 64-Bit Tiered Compilers
os.version 10.0
user.home C:\Users\junk
user.timezone Europe/Paris
java.awt.printerjob sun.awt.windows.WPrinterJob
java.specification.version 1.8
file.encoding Cp1252
user.name junk
java.class.path C:\Program Files\squirrel-sql-3.9.0\squirrel-sql.j
java.vm.specification.version 1.8
sun.arch.data.model 64
java.home C:\Program Files\Java\jre1.8.0_172
sun.java.command net.sourceforge.squirrel_sql.client.Main --log-con
java.specification.vendor Oracle Corporation
user.language en
awt.toolkit sun.awt.windows.WToolkit
java.vm.info mixed mode
java.version 1.8.0_172
java.ext.dirs C:\Program Files\Java\jre1.8.0_172\lib\ext;C:\Wind
sun.boot.class.path C:\Program Files\Java\jre1.8.0_172\lib\resources.j
java.vendor Oracle Corporation
file.separator \
java.vendor.url.bug http://bugreport.sun.com/bugreport/
sun.cpu.endian little
sun.io.unicode.encoding UnicodeLittle
sun.desktop windows
sun.cpu.isalist amd64
Looking at the last error in the log, it turns out that the error was a stackoverflow exception for some regex parsing of my script.
I added -Xss5M to the java VM opts in the .bat file and now it works again.
Sorry, I can't reproduce your problem, which means I can't find a stack size that is growing during my tests of "Run all SQLs". But if you could post the stacktrace of your stackoverflow exception that might help.
Thanks anyway for posting the -Xss5M workaround.