Jetty сервис Thread вылетает и использует 100% CPU - PullRequest
1 голос
/ 13 сентября 2011

У меня странная проблема с Jetty.Через некоторое время при обслуживании запросов загрузка ЦП переходит на 100%.Я нашел поток ответственным, и вот несколько примеров его трассировки стека, взятых в eclipse:

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  

Эти трассы были взяты без подключенных клиентов, то есть было достаточно перезапуститьзатронул Thread и снова приостановил его, чтобы выполнить трассировку стека.У кого-нибудь есть идеи?

Редактировать: Это связано, мне интересно: Как получить дамп потока Jetty?

1 Ответ

0 голосов
/ 13 сентября 2011

Как долго он работает, прежде чем это сделает?

Вы запускаете JVM с ключом -server? Я бы порекомендовал сделать это, если вы не.

Для меня это звучит как ошибка Jetty. Может быть, можно попробовать поискать в их архивах.

...