Blocchi di filo bizzare creando array primitivi
-
11-11-2019 - |
Domanda
Di recente abbiamo avuto una situazione in cui una macchina di produzione è andata giù con un enorme dump. È Webserver in resina e ha dato "Tread full thread Java Hotspot (TM) VM a 64 bit (modalità mista 14.0-B16):".
Ci sono un sacco di fili bloccati, ma sono confusi per me. Cioè uno è come:
"resin-8576" daemon prio=10 tid=0x00007f871827b800 nid=0x6b5 waiting for monitor entry [0x00007f864a7e6000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.String.toCharArray(String.java:2725)
at java.lang.Thread.setName(Thread.java:1051)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:605)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649)
at java.lang.Thread.run(Thread.java:619)
Il codice c'è
char result[] = new char[count];
Un altro è come
"resin-8574" daemon prio=10 tid=0x00007f8718277800 nid=0x6b3 waiting for monitor entry [0x00007f864a9e8000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.String.valueOf(String.java:2840)
at java.lang.Thread.getName(Thread.java:1061)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:603)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649)
at java.lang.Thread.run(Thread.java:619)
Dove c'è il codice di stringa
return new String(data);
Quelli sembrano posti strani da bloccare.
Qualcuno potrebbe suggerire un motivo per cui quelle chiamate sarebbero bloccate?
Grazie, -kal
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow