사용자 도구

사이트 도구


java:crash

JVM/Java Crash

JVM Crash hs_err 파일 분석

JIT Compiler Loop optimization bug

  • Java 7 예전버전 이하에서 Apache HttpClient와 Tomcat의 org.apache.http.client.protocol.RequestAddCookies.process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V가 유발시킬 수 있다.
  • 아래와 같은 오류가 발생할 수 있다.
    Caused by: java.util.NoSuchElementException: null
    at java.util.ArrayList$Itr.next(ArrayList.java:757) ~[na:1.6.0_18]
    at org.apache.http.impl.cookie.BestMatchSpec.formatCookies(BestMatchSpec.java:189) ~[httpclient-4.1.3.jar:4.1.3]
    at org.apache.http.client.protocol.RequestAddCookies.process(RequestAddCookies.java:196) ~[httpclient-4.1.3.jar:4.1.3]
    at org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:108) ~[httpcore-4.1.4.jar:4.1.4]
    at org.apache.http.protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:174) ~[httpcore-4.1.4.jar:4.1.4]
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:462) ~[httpclient-4.1.3.jar:4.1.3]
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) ~[httpclient-4.1.3.jar:4.1.3]
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) ~[httpclient-4.1.3.jar:4.1.3]
  • 이는 JVM의 Loop 최적화 관련 버그이며 Java 8과 Java 7u60이상 버전에서는 발생하지 않는다. 그 이하 버전에서는 JVM 시작시 다음과 옵션을 줘야 한다. 성능 저하를 유발한다.
    -XX:-LoopUnswitching
java/crash.txt · 마지막으로 수정됨: 2015/06/26 13:41 저자 kwon37xi