Alexander Belyak created IGNITE-18411:
-----------------------------------------
Summary: Threads left after wrong SQL query
Key: IGNITE-18411
URL: https://issues.apache.org/jira/browse/IGNITE-18411
Project: Ignite
Issue Type: Bug
Components: clients
Affects Versions: 3.0.0-beta1
Reporter: Alexander Belyak
After simple test
{code:java}
public static void main(String[] args) {
try (IgniteClient client =
IgniteClient.builder().addresses("127.0.0.1:10800").build()) {
try (Session ses = client.sql().createSession()) {
try (ResultSet rs = ses.execute(null,
"SELECT id, salary, key, balance from wrongName ORDER BY
id")) {
System.out.println("SELECT DONE");
}
}
System.out.println("WORK");
} catch (Exception e) {
throw new RuntimeException(e);
}
System.out.println("DONE");
} {code}
JVM still running because of nio threads:
{noformat}
Full thread dump"nioEventLoopGroup-2-1" #14 prio=10 os_prio=0 cpu=73,59ms
elapsed=15,92s tid=0x00007f8d5ca78800 nid=0xb584b runnable [0x00007f8cdbdfa000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPoll.wait([email protected]/Native Method)
at
sun.nio.ch.EPollSelectorImpl.doSelect([email protected]/EPollSelectorImpl.java:120)
at
sun.nio.ch.SelectorImpl.lockAndDoSelect([email protected]/SelectorImpl.java:124)
- locked <0x00000006a4b640f0> (a
io.netty.channel.nio.SelectedSelectionKeySet)
- locked <0x00000006a4b2d7c0> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select([email protected]/SelectorImpl.java:141)
at
io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:68)
at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:813)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:460)
at
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run([email protected]/Thread.java:829)
"main" #1 prio=5 os_prio=0 cpu=551,01ms elapsed=16,46s tid=0x00007f8d5c01a000
nid=0xb5832 waiting on condition [0x00007f8d62e63000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
- parking to wait for <0x00000006a2a92ce8> (a
java.util.concurrent.CompletableFuture$Signaller)
at
java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
at
java.util.concurrent.CompletableFuture$Signaller.block([email protected]/CompletableFuture.java:1796)
at
java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3128)
at
java.util.concurrent.CompletableFuture.waitingGet([email protected]/CompletableFuture.java:1823)
at
java.util.concurrent.CompletableFuture.join([email protected]/CompletableFuture.java:2043)
at org.apache.ignite.sql.Session.execute(Session.java:58)
at org.apache.ignite.example.table.Check.main(Check.java:19)
"Common-Cleaner" #11 daemon prio=8 os_prio=0 cpu=0,28ms elapsed=16,39s
tid=0x00007f8d5c320800 nid=0xb5840 in Object.wait() [0x00007f8d309d7000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait([email protected]/Native Method)
- waiting on <0x00000006a37015f0> (a java.lang.ref.ReferenceQueue$Lock)
at
java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
- waiting to re-lock in wait() <0x00000006a37015f0> (a
java.lang.ref.ReferenceQueue$Lock)
at jdk.internal.ref.CleanerImpl.run([email protected]/CleanerImpl.java:148)
at java.lang.Thread.run([email protected]/Thread.java:829)
at
jdk.internal.misc.InnocuousThread.run([email protected]/InnocuousThread.java:161)
"tcp-client-channel-heartbeats-785447854" #15 prio=5 os_prio=0 cpu=0,12ms
elapsed=15,86s tid=0x00007f8d5ca89000 nid=0xb584d in Object.wait()
[0x00007f8cdb4f8000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait([email protected]/Native Method)
- waiting on <0x00000006a2b26828> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop([email protected]/Timer.java:553)
- waiting to re-lock in wait() <0x00000006a2b26828> (a java.util.TaskQueue)
at java.util.TimerThread.run([email protected]/Timer.java:506)
"ForkJoinPool.commonPool-worker-3" #16 daemon prio=5 os_prio=0 cpu=0,37ms
elapsed=15,85s tid=0x00007f8d5ca8e800 nid=0xb584e waiting on condition
[0x00007f8cdb3f8000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
- parking to wait for <0x00000006a46ff8c0> (a
java.util.concurrent.ForkJoinPool)
at
java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
at
java.util.concurrent.ForkJoinPool.runWorker([email protected]/ForkJoinPool.java:1628)
at
java.util.concurrent.ForkJoinWorkerThread.run([email protected]/ForkJoinWorkerThread.java:183)
"Monitor Ctrl-Break" #12 daemon prio=5 os_prio=0 cpu=9,70ms elapsed=16,28s
tid=0x00007f8d5c7e5800 nid=0xb5842 runnable [0x00007f8d307d7000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0([email protected]/Native Method)
at
java.net.SocketInputStream.socketRead([email protected]/SocketInputStream.java:115)
at
java.net.SocketInputStream.read([email protected]/SocketInputStream.java:168)
at
java.net.SocketInputStream.read([email protected]/SocketInputStream.java:140)
at
sun.nio.cs.StreamDecoder.readBytes([email protected]/StreamDecoder.java:284)
at
sun.nio.cs.StreamDecoder.implRead([email protected]/StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read([email protected]/StreamDecoder.java:178)
- locked <0x00000006a37027e0> (a java.io.InputStreamReader)
at
java.io.InputStreamReader.read([email protected]/InputStreamReader.java:181)
at java.io.BufferedReader.fill([email protected]/BufferedReader.java:161)
at
java.io.BufferedReader.readLine([email protected]/BufferedReader.java:326)
- locked <0x00000006a37027e0> (a java.io.InputStreamReader)
at
java.io.BufferedReader.readLine([email protected]/BufferedReader.java:392)
at com.intellij.rt.execution.application.AppMainV2$1.run(AppMainV2.java:49)
"Reference Handler" #2 daemon prio=10 os_prio=0 cpu=0,24ms elapsed=16,43s
tid=0x00007f8d5c2f1800 nid=0xb5839 waiting on condition [0x00007f8d44373000]
java.lang.Thread.State: RUNNABLE
at
java.lang.ref.Reference.waitForReferencePendingList([email protected]/Native
Method)
at
java.lang.ref.Reference.processPendingReferences([email protected]/Reference.java:241)
at
java.lang.ref.Reference$ReferenceHandler.run([email protected]/Reference.java:213)
"Finalizer" #3 daemon prio=8 os_prio=0 cpu=0,17ms elapsed=16,43s
tid=0x00007f8d5c2f3800 nid=0xb583a in Object.wait() [0x00007f8d44273000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait([email protected]/Native Method)
- waiting on <0x00000006a3703178> (a java.lang.ref.ReferenceQueue$Lock)
at
java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
- waiting to re-lock in wait() <0x00000006a3703178> (a
java.lang.ref.ReferenceQueue$Lock)
at
java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:176)
at
java.lang.ref.Finalizer$FinalizerThread.run([email protected]/Finalizer.java:170)
"Signal Dispatcher" #4 daemon prio=9 os_prio=0 cpu=0,28ms elapsed=16,43s
tid=0x00007f8d5c2fa000 nid=0xb583b runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Service Thread" #5 daemon prio=9 os_prio=0 cpu=0,07ms elapsed=16,43s
tid=0x00007f8d5c2fc000 nid=0xb583c runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #6 daemon prio=9 os_prio=0 cpu=466,98ms elapsed=16,43s
tid=0x00007f8d5c2fe800 nid=0xb583d waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"C1 CompilerThread0" #9 daemon prio=9 os_prio=0 cpu=308,62ms elapsed=16,42s
tid=0x00007f8d5c300800 nid=0xb583e waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"Sweeper thread" #10 daemon prio=9 os_prio=0 cpu=0,08ms elapsed=16,42s
tid=0x00007f8d5c302800 nid=0xb583f runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" #17 daemon prio=9 os_prio=0 cpu=33,91ms elapsed=15,39s
tid=0x00007f8d0c001000 nid=0xb5858 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"VM Thread" os_prio=0 cpu=6,44ms elapsed=16,43s tid=0x00007f8d5c2ee800
nid=0xb5838 runnable
"GC Thread#0" os_prio=0 cpu=9,76ms elapsed=16,44s tid=0x00007f8d5c033800
nid=0xb5833 runnable
"GC Thread#1" os_prio=0 cpu=4,88ms elapsed=16,09s tid=0x00007f8d20049000
nid=0xb5844 runnable
"GC Thread#2" os_prio=0 cpu=8,81ms elapsed=16,09s tid=0x00007f8d2004a800
nid=0xb5845 runnable
"GC Thread#3" os_prio=0 cpu=8,95ms elapsed=16,09s tid=0x00007f8d2004c000
nid=0xb5846 runnable
"GC Thread#4" os_prio=0 cpu=5,07ms elapsed=16,09s tid=0x00007f8d2004e000
nid=0xb5847 runnable
"GC Thread#5" os_prio=0 cpu=9,69ms elapsed=16,09s tid=0x00007f8d2004f800
nid=0xb5848 runnable
"GC Thread#6" os_prio=0 cpu=9,43ms elapsed=16,09s tid=0x00007f8d20051800
nid=0xb5849 runnable
"GC Thread#7" os_prio=0 cpu=0,53ms elapsed=16,09s tid=0x00007f8d20053800
nid=0xb584a runnable
"G1 Main Marker" os_prio=0 cpu=0,15ms elapsed=16,44s tid=0x00007f8d5c0bd000
nid=0xb5834 runnable
"G1 Conc#0" os_prio=0 cpu=0,05ms elapsed=16,44s tid=0x00007f8d5c0bf000
nid=0xb5835 runnable
"G1 Refine#0" os_prio=0 cpu=0,12ms elapsed=16,43s tid=0x00007f8d5c240000
nid=0xb5836 runnable
"G1 Young RemSet Sampling" os_prio=0 cpu=3,69ms elapsed=16,43s
tid=0x00007f8d5c242000 nid=0xb5837 runnable
"VM Periodic Task Thread" os_prio=0 cpu=9,65ms elapsed=16,28s
tid=0x00007f8d5c7e8000 nid=0xb5843 waiting on condition
JNI global refs: 18, weak refs: 0
{noformat}
A similar problem happens on some other exceptions (class cast if I try to read
long from the int field). Otherwise, threads stop as expected if the table in
the example exists.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)