-
Bug
-
Resolution: Unresolved
-
P4
-
17
-
generic
-
generic
ADDITIONAL SYSTEM INFORMATION :
Linux Fedora 5.14.12-100.fc33.x86_64
Java 17+35-2724
A DESCRIPTION OF THE PROBLEM :
Simple UDP Server on openjdk 17 do not have the same behavior on older openjdk version (Tested with openjdk 16 and 11)
REGRESSION : Last worked in version 16
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the provided code
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Application should wait until receiving data and not producing a full thread dump
ACTUAL -
/home/.jdks/openjdk-17/bin/java -javaagent:/home/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-0/212.5457.46/lib/idea_rt.jar=42277:/home/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-0/212.5457.46/bin -Dfile.encoding=UTF-8 -classpath/classes UDPServer
Java : 17+35-2724
2021-10-21 13:52:15
Full thread dump OpenJDK 64-Bit Server VM (17+35-2724 mixed mode, sharing):
Threads class SMR info:
_java_thread_list=0x00007f2b64001f70, length=13, elements={
0x00007f2bb8025870, 0x00007f2bb810b9e0, 0x00007f2bb810cdc0, 0x00007f2bb8112140,
0x00007f2bb81134f0, 0x00007f2bb8114900, 0x00007f2bb81162b0, 0x00007f2bb81177e0,
0x00007f2bb8118c50, 0x00007f2bb8124110, 0x00007f2bb81b8a50, 0x00007f2bb81ba3e0,
0x00007f2b64000fe0
}
"main" #1 prio=5 os_prio=0 cpu=97,80ms elapsed=6,08s tid=0x00007f2bb8025870 nid=0x3852 runnable [0x00007f2bbd8ef000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.DatagramChannelImpl.receive0(java.base@17/Native Method)
at sun.nio.ch.DatagramChannelImpl.receiveIntoNativeBuffer(java.base@17/DatagramChannelImpl.java:750)
at sun.nio.ch.DatagramChannelImpl.receive(java.base@17/DatagramChannelImpl.java:728)
at sun.nio.ch.DatagramChannelImpl.trustedBlockingReceive(java.base@17/DatagramChannelImpl.java:666)
at sun.nio.ch.DatagramChannelImpl.blockingReceive(java.base@17/DatagramChannelImpl.java:635)
at sun.nio.ch.DatagramSocketAdaptor.receive(java.base@17/DatagramSocketAdaptor.java:240)
at java.net.DatagramSocket.receive(java.base@17/DatagramSocket.java:700)
at UDPServer.main(UDPServer.java:14)
"Reference Handler" #2 daemon prio=10 os_prio=0 cpu=0,14ms elapsed=6,07s tid=0x00007f2bb810b9e0 nid=0x385a waiting on condition [0x00007f2b9ca1e000]
java.lang.Thread.State: RUNNABLE
at java.lang.ref.Reference.waitForReferencePendingList(java.base@17/Native Method)
at java.lang.ref.Reference.processPendingReferences(java.base@17/Reference.java:253)
at java.lang.ref.Reference$ReferenceHandler.run(java.base@17/Reference.java:215)
"Finalizer" #3 daemon prio=8 os_prio=0 cpu=0,36ms elapsed=6,07s tid=0x00007f2bb810cdc0 nid=0x385b in Object.wait() [0x00007f2b9c91d000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@17/Native Method)
- waiting on <0x000000008bb02f30> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@17/ReferenceQueue.java:155)
- locked <0x000000008bb02f30> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@17/ReferenceQueue.java:176)
at java.lang.ref.Finalizer$FinalizerThread.run(java.base@17/Finalizer.java:172)
"Signal Dispatcher" #4 daemon prio=9 os_prio=0 cpu=0,43ms elapsed=6,06s tid=0x00007f2bb8112140 nid=0x385e waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Service Thread" #5 daemon prio=9 os_prio=0 cpu=0,05ms elapsed=6,06s tid=0x00007f2bb81134f0 nid=0x385f runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Monitor Deflation Thread" #6 daemon prio=9 os_prio=0 cpu=0,20ms elapsed=6,06s tid=0x00007f2bb8114900 nid=0x3860 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #7 daemon prio=9 os_prio=0 cpu=20,25ms elapsed=6,06s tid=0x00007f2bb81162b0 nid=0x3861 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"C1 CompilerThread0" #9 daemon prio=9 os_prio=0 cpu=41,62ms elapsed=6,06s tid=0x00007f2bb81177e0 nid=0x3862 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"Sweeper thread" #10 daemon prio=9 os_prio=0 cpu=0,11ms elapsed=6,06s tid=0x00007f2bb8118c50 nid=0x3863 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Common-Cleaner" #11 daemon prio=8 os_prio=0 cpu=0,17ms elapsed=6,01s tid=0x00007f2bb8124110 nid=0x3864 in Object.wait() [0x00007f2b9c216000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(java.base@17/Native Method)
- waiting on <0x000000008bb41d68> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@17/ReferenceQueue.java:155)
- locked <0x000000008bb41d68> (a java.lang.ref.ReferenceQueue$Lock)
at jdk.internal.ref.CleanerImpl.run(java.base@17/CleanerImpl.java:140)
at java.lang.Thread.run(java.base@17/Thread.java:833)
at jdk.internal.misc.InnocuousThread.run(java.base@17/InnocuousThread.java:162)
"Monitor Ctrl-Break" #12 daemon prio=5 os_prio=0 cpu=16,68ms elapsed=5,96s tid=0x00007f2bb81b8a50 nid=0x3867 runnable [0x00007f2b9c115000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.SocketDispatcher.read0(java.base@17/Native Method)
at sun.nio.ch.SocketDispatcher.read(java.base@17/SocketDispatcher.java:47)
at sun.nio.ch.NioSocketImpl.tryRead(java.base@17/NioSocketImpl.java:261)
at sun.nio.ch.NioSocketImpl.implRead(java.base@17/NioSocketImpl.java:312)
at sun.nio.ch.NioSocketImpl.read(java.base@17/NioSocketImpl.java:350)
at sun.nio.ch.NioSocketImpl$1.read(java.base@17/NioSocketImpl.java:803)
at java.net.Socket$SocketInputStream.read(java.base@17/Socket.java:966)
at sun.nio.cs.StreamDecoder.readBytes(java.base@17/StreamDecoder.java:270)
at sun.nio.cs.StreamDecoder.implRead(java.base@17/StreamDecoder.java:313)
at sun.nio.cs.StreamDecoder.read(java.base@17/StreamDecoder.java:188)
- locked <0x000000008ba9e100> (a java.io.InputStreamReader)
at java.io.InputStreamReader.read(java.base@17/InputStreamReader.java:177)
at java.io.BufferedReader.fill(java.base@17/BufferedReader.java:162)
at java.io.BufferedReader.readLine(java.base@17/BufferedReader.java:329)
- locked <0x000000008ba9e100> (a java.io.InputStreamReader)
at java.io.BufferedReader.readLine(java.base@17/BufferedReader.java:396)
at com.intellij.rt.execution.application.AppMainV2$1.run(AppMainV2.java:49)
"Notification Thread" #13 daemon prio=9 os_prio=0 cpu=0,07ms elapsed=5,96s tid=0x00007f2bb81ba3e0 nid=0x3868 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" #14 daemon prio=9 os_prio=0 cpu=0,13ms elapsed=4,95s tid=0x00007f2b64000fe0 nid=0x3872 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"VM Thread" os_prio=0 cpu=2,00ms elapsed=6,07s tid=0x00007f2bb81079f0 nid=0x3858 runnable
"GC Thread#0" os_prio=0 cpu=0,16ms elapsed=6,08s tid=0x00007f2bb8063be0 nid=0x3853 runnable
"G1 Main Marker" os_prio=0 cpu=0,06ms elapsed=6,08s tid=0x00007f2bb8074a00 nid=0x3854 runnable
"G1 Conc#0" os_prio=0 cpu=0,03ms elapsed=6,08s tid=0x00007f2bb8075960 nid=0x3855 runnable
"G1 Refine#0" os_prio=0 cpu=0,04ms elapsed=6,08s tid=0x00007f2bb80db590 nid=0x3856 runnable
"G1 Service" os_prio=0 cpu=1,06ms elapsed=6,08s tid=0x00007f2bb80dc480 nid=0x3857 runnable
"VM Periodic Task Thread" os_prio=0 cpu=3,30ms elapsed=5,96s tid=0x00007f2bb8027910 nid=0x3869 waiting on condition
JNI global refs: 14, weak refs: 0
Heap
garbage-first heap total 131072K, used 3042K [0x0000000083e00000, 0x0000000100000000)
region size 1024K, 3 young (3072K), 0 survivors (0K)
Metaspace used 949K, committed 1152K, reserved 1056768K
class space used 84K, committed 192K, reserved 1048576K
---------- BEGIN SOURCE ----------
class UDPServer
{
public static void main(String args[]) throws Exception
{
System.out.println("Java : " + Runtime.version().toString());
DatagramSocket serverSocket = new DatagramSocket(7053);
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
}
}
---------- END SOURCE ----------
FREQUENCY : always
Linux Fedora 5.14.12-100.fc33.x86_64
Java 17+35-2724
A DESCRIPTION OF THE PROBLEM :
Simple UDP Server on openjdk 17 do not have the same behavior on older openjdk version (Tested with openjdk 16 and 11)
REGRESSION : Last worked in version 16
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the provided code
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Application should wait until receiving data and not producing a full thread dump
ACTUAL -
/home/.jdks/openjdk-17/bin/java -javaagent:/home/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-0/212.5457.46/lib/idea_rt.jar=42277:/home/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-0/212.5457.46/bin -Dfile.encoding=UTF-8 -classpath/classes UDPServer
Java : 17+35-2724
2021-10-21 13:52:15
Full thread dump OpenJDK 64-Bit Server VM (17+35-2724 mixed mode, sharing):
Threads class SMR info:
_java_thread_list=0x00007f2b64001f70, length=13, elements={
0x00007f2bb8025870, 0x00007f2bb810b9e0, 0x00007f2bb810cdc0, 0x00007f2bb8112140,
0x00007f2bb81134f0, 0x00007f2bb8114900, 0x00007f2bb81162b0, 0x00007f2bb81177e0,
0x00007f2bb8118c50, 0x00007f2bb8124110, 0x00007f2bb81b8a50, 0x00007f2bb81ba3e0,
0x00007f2b64000fe0
}
"main" #1 prio=5 os_prio=0 cpu=97,80ms elapsed=6,08s tid=0x00007f2bb8025870 nid=0x3852 runnable [0x00007f2bbd8ef000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.DatagramChannelImpl.receive0(java.base@17/Native Method)
at sun.nio.ch.DatagramChannelImpl.receiveIntoNativeBuffer(java.base@17/DatagramChannelImpl.java:750)
at sun.nio.ch.DatagramChannelImpl.receive(java.base@17/DatagramChannelImpl.java:728)
at sun.nio.ch.DatagramChannelImpl.trustedBlockingReceive(java.base@17/DatagramChannelImpl.java:666)
at sun.nio.ch.DatagramChannelImpl.blockingReceive(java.base@17/DatagramChannelImpl.java:635)
at sun.nio.ch.DatagramSocketAdaptor.receive(java.base@17/DatagramSocketAdaptor.java:240)
at java.net.DatagramSocket.receive(java.base@17/DatagramSocket.java:700)
at UDPServer.main(UDPServer.java:14)
"Reference Handler" #2 daemon prio=10 os_prio=0 cpu=0,14ms elapsed=6,07s tid=0x00007f2bb810b9e0 nid=0x385a waiting on condition [0x00007f2b9ca1e000]
java.lang.Thread.State: RUNNABLE
at java.lang.ref.Reference.waitForReferencePendingList(java.base@17/Native Method)
at java.lang.ref.Reference.processPendingReferences(java.base@17/Reference.java:253)
at java.lang.ref.Reference$ReferenceHandler.run(java.base@17/Reference.java:215)
"Finalizer" #3 daemon prio=8 os_prio=0 cpu=0,36ms elapsed=6,07s tid=0x00007f2bb810cdc0 nid=0x385b in Object.wait() [0x00007f2b9c91d000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@17/Native Method)
- waiting on <0x000000008bb02f30> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@17/ReferenceQueue.java:155)
- locked <0x000000008bb02f30> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@17/ReferenceQueue.java:176)
at java.lang.ref.Finalizer$FinalizerThread.run(java.base@17/Finalizer.java:172)
"Signal Dispatcher" #4 daemon prio=9 os_prio=0 cpu=0,43ms elapsed=6,06s tid=0x00007f2bb8112140 nid=0x385e waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Service Thread" #5 daemon prio=9 os_prio=0 cpu=0,05ms elapsed=6,06s tid=0x00007f2bb81134f0 nid=0x385f runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Monitor Deflation Thread" #6 daemon prio=9 os_prio=0 cpu=0,20ms elapsed=6,06s tid=0x00007f2bb8114900 nid=0x3860 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #7 daemon prio=9 os_prio=0 cpu=20,25ms elapsed=6,06s tid=0x00007f2bb81162b0 nid=0x3861 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"C1 CompilerThread0" #9 daemon prio=9 os_prio=0 cpu=41,62ms elapsed=6,06s tid=0x00007f2bb81177e0 nid=0x3862 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"Sweeper thread" #10 daemon prio=9 os_prio=0 cpu=0,11ms elapsed=6,06s tid=0x00007f2bb8118c50 nid=0x3863 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Common-Cleaner" #11 daemon prio=8 os_prio=0 cpu=0,17ms elapsed=6,01s tid=0x00007f2bb8124110 nid=0x3864 in Object.wait() [0x00007f2b9c216000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(java.base@17/Native Method)
- waiting on <0x000000008bb41d68> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@17/ReferenceQueue.java:155)
- locked <0x000000008bb41d68> (a java.lang.ref.ReferenceQueue$Lock)
at jdk.internal.ref.CleanerImpl.run(java.base@17/CleanerImpl.java:140)
at java.lang.Thread.run(java.base@17/Thread.java:833)
at jdk.internal.misc.InnocuousThread.run(java.base@17/InnocuousThread.java:162)
"Monitor Ctrl-Break" #12 daemon prio=5 os_prio=0 cpu=16,68ms elapsed=5,96s tid=0x00007f2bb81b8a50 nid=0x3867 runnable [0x00007f2b9c115000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.SocketDispatcher.read0(java.base@17/Native Method)
at sun.nio.ch.SocketDispatcher.read(java.base@17/SocketDispatcher.java:47)
at sun.nio.ch.NioSocketImpl.tryRead(java.base@17/NioSocketImpl.java:261)
at sun.nio.ch.NioSocketImpl.implRead(java.base@17/NioSocketImpl.java:312)
at sun.nio.ch.NioSocketImpl.read(java.base@17/NioSocketImpl.java:350)
at sun.nio.ch.NioSocketImpl$1.read(java.base@17/NioSocketImpl.java:803)
at java.net.Socket$SocketInputStream.read(java.base@17/Socket.java:966)
at sun.nio.cs.StreamDecoder.readBytes(java.base@17/StreamDecoder.java:270)
at sun.nio.cs.StreamDecoder.implRead(java.base@17/StreamDecoder.java:313)
at sun.nio.cs.StreamDecoder.read(java.base@17/StreamDecoder.java:188)
- locked <0x000000008ba9e100> (a java.io.InputStreamReader)
at java.io.InputStreamReader.read(java.base@17/InputStreamReader.java:177)
at java.io.BufferedReader.fill(java.base@17/BufferedReader.java:162)
at java.io.BufferedReader.readLine(java.base@17/BufferedReader.java:329)
- locked <0x000000008ba9e100> (a java.io.InputStreamReader)
at java.io.BufferedReader.readLine(java.base@17/BufferedReader.java:396)
at com.intellij.rt.execution.application.AppMainV2$1.run(AppMainV2.java:49)
"Notification Thread" #13 daemon prio=9 os_prio=0 cpu=0,07ms elapsed=5,96s tid=0x00007f2bb81ba3e0 nid=0x3868 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" #14 daemon prio=9 os_prio=0 cpu=0,13ms elapsed=4,95s tid=0x00007f2b64000fe0 nid=0x3872 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"VM Thread" os_prio=0 cpu=2,00ms elapsed=6,07s tid=0x00007f2bb81079f0 nid=0x3858 runnable
"GC Thread#0" os_prio=0 cpu=0,16ms elapsed=6,08s tid=0x00007f2bb8063be0 nid=0x3853 runnable
"G1 Main Marker" os_prio=0 cpu=0,06ms elapsed=6,08s tid=0x00007f2bb8074a00 nid=0x3854 runnable
"G1 Conc#0" os_prio=0 cpu=0,03ms elapsed=6,08s tid=0x00007f2bb8075960 nid=0x3855 runnable
"G1 Refine#0" os_prio=0 cpu=0,04ms elapsed=6,08s tid=0x00007f2bb80db590 nid=0x3856 runnable
"G1 Service" os_prio=0 cpu=1,06ms elapsed=6,08s tid=0x00007f2bb80dc480 nid=0x3857 runnable
"VM Periodic Task Thread" os_prio=0 cpu=3,30ms elapsed=5,96s tid=0x00007f2bb8027910 nid=0x3869 waiting on condition
JNI global refs: 14, weak refs: 0
Heap
garbage-first heap total 131072K, used 3042K [0x0000000083e00000, 0x0000000100000000)
region size 1024K, 3 young (3072K), 0 survivors (0K)
Metaspace used 949K, committed 1152K, reserved 1056768K
class space used 84K, committed 192K, reserved 1048576K
---------- BEGIN SOURCE ----------
class UDPServer
{
public static void main(String args[]) throws Exception
{
System.out.println("Java : " + Runtime.version().toString());
DatagramSocket serverSocket = new DatagramSocket(7053);
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
}
}
---------- END SOURCE ----------
FREQUENCY : always