2011-09-13 7 views
1

J'ai un étrange problème avec Jetty. Après un certain temps, en servant des requêtes, l'utilisation du CPU passe à 100%. J'ai trouvé le fil responsable, et voici quelques échantillons de sa trace de la pile prises dans Eclipse:Jetty service Le fil se bloque et utilise 100% CPU

SocketInputStream.read(byte[], int, int) line: 113 
ByteArrayBuffer.readFrom(InputStream, int) line: 388  
SocketConnector$ConnectorEndPoint(StreamEndPoint).fill(Buffer) line: 132  
SocketConnector$ConnectorEndPoint.fill(Buffer) line: 209  
HttpParser.parseNext() line: 289  
HttpParser.parseAvailable() line: 214 
HttpConnection.handle() line: 411 
SocketConnector$ConnectorEndPoint.run() line: 241 
QueuedThreadPool$3.run() line: 529 
Thread.run() line: 680 

Throwable.fillInStackTrace() line: not available [native method]  
SocketException(Throwable).<init>(String) line: 196 
SocketException(Exception).<init>(String) line: 41 
SocketException(IOException).<init>(String) line: 41  
SocketException.<init>(String) line: 29 
SocketInputStream.read(byte[], int, int) line: 113 
ByteArrayBuffer.readFrom(InputStream, int) line: 388  
SocketConnector$ConnectorEndPoint(StreamEndPoint).fill(Buffer) line: 132  
SocketConnector$ConnectorEndPoint.fill(Buffer) line: 209  
HttpParser.parseNext() line: 289  
HttpParser.parseAvailable() line: 214 
HttpConnection.handle() line: 411 
SocketConnector$ConnectorEndPoint.run() line: 241 
QueuedThreadPool$3.run() line: 529 
Thread.run() line: 680 

ByteArrayBuffer.readFrom(InputStream, int) line: 388  
SocketConnector$ConnectorEndPoint(StreamEndPoint).fill(Buffer) line: 132  
SocketConnector$ConnectorEndPoint.fill(Buffer) line: 209  
HttpParser.parseNext() line: 289  
HttpParser.parseAvailable() line: 214 
HttpConnection.handle() line: 411 
SocketConnector$ConnectorEndPoint.run() line: 241 
QueuedThreadPool$3.run() line: 529 
Thread.run() line: 680 

SocketConnector$ConnectorEndPoint.fill(Buffer) line: 209  
HttpParser.parseNext() line: 289  
HttpParser.parseAvailable() line: 214 
HttpConnection.handle() line: 411 
SocketConnector$ConnectorEndPoint.run() line: 241 
QueuedThreadPool$3.run() line: 529 
Thread.run() line: 680 

Ces traces ont été prises sans clients connectés, c'est-il suffisait de relancer la discussion affectée et suspendez-le à nouveau pour prendre la trace de la pile. Quelqu'un a des idées?

Edit: Est-ce lié, je me demande: How to get Jetty thread dump?

Répondre

0

Combien de temps faut-il avant qu'il ne fonctionne cela?

Commencez-vous la JVM avec le commutateur -server? Je recommanderais de le faire si vous n'êtes pas.

Pour moi, cela ressemble à un bug de la jetée. Peut-être peut-être essayer de chercher dans leurs archives.