https://bz.apache.org/bugzilla/show_bug.cgi?id=65775
Bug ID: 65775 Summary: fgets_unlocked crash on CentOS 7 (and Ubuntu 14.04) in Tomcat 9.0.12 through 9.0.54 (and others) Product: Tomcat 9 Version: 9.0.x Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P2 Component: Catalina Assignee: dev@tomcat.apache.org Reporter: mh...@ximasoftware.com Target Milestone: ----- Our Tomcat and it's JVM sporadically crash during an apparent name lookup. Oracle Java 8u181 as a packaged app, and OpenJDK 8u312 Tomcat 9.0.12 and 9.0.54 CentOS 7 (GNU libc 2.17) and Ubuntu 14.04 (GLIBC 2.19) Original stack mentioned IPv6, but is otherwise the same regardless of whether it's disabled Stack: [0x00007efe61a44000,0x00007efe61b45000], sp=0x00007efe61b420b0, free space=1016k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [libc.so.6+0x79530] fgets_unlocked+0x10 V [libjvm.so+0xb2349b] vframeStreamCommon::skip_reflection_related_frames()+0xfb V [libjvm.so+0x73e091] JVM_LatestUserDefinedLoader+0xd1 V [libjvm.so+0x583b8f] frame::sender(RegisterMap*) const+0xaf V [libjvm.so+0xa0a993] OptoRuntime::is_deoptimized_caller_frame(JavaThread*)+0xc3 C 0xd837e72400000000 Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) J 46267 java.net.Inet4AddressImpl.getHostByAddr([B)Ljava/lang/String; (0 bytes) @ 0x00007efef59189cc [0x00007efef5918980+0x4c] J 46266 C1 java.net.InetAddress$2.getHostByAddr([B)Ljava/lang/String; (10 bytes) @ 0x00007efef4a73b8c [0x00007efef4a73ac0+0xcc] j java.net.InetAddress.getHostFromNameService(Ljava/net/InetAddress;Z)Ljava/lang/String;+37 J 46315 C1 org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.populateLocalName()V (36 bytes) @ 0x00007efef646ef54 [0x00007efef646e7e0+0x774] J 35700 C2 org.apache.coyote.AbstractProcessor.action(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V (1081 bytes) @ 0x00007efef77735f0 [0x00007efef7772fa0+0x650] J 24573 C1 org.apache.coyote.Request.action(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V (37 bytes) @ 0x00007efef6cb4a04 [0x00007efef6cb4760+0x2a4] J 33627 C1 org.apache.catalina.connector.Request.getLocalName()Ljava/lang/String; (40 bytes) @ 0x00007efef60c42bc [0x00007efef60c4160+0x15c] J 47606 C2 org.apache.catalina.filters.RemoteIpFilter.doFilter(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V (1086 bytes) @ 0x00007efef95f1088 [0x00007efef95f0520+0xb68] J 47607 C2 org.apache.catalina.filters.RemoteIpFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V (39 bytes) @ 0x00007efef75104cc [0x00007efef7510480+0x4c] J 38331 C2 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V (388 bytes) @ 0x00007efef6eada5c [0x00007efef6ead920+0x13c] J 48137 C2 com.ximasoft.filter.AuthenticationFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V (1149 bytes) @ 0x00007efef96698b8 [0x00007efef96686e0+0x11d8] J 38331 C2 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V (388 bytes) @ 0x00007efef6eada5c [0x00007efef6ead920+0x13c] J 47641 C2 com.ximasoft.filter.AllowAllCorsFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V (56 bytes) @ 0x00007efef6076568 [0x00007efef60764a0+0xc8] J 38331 C2 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V (388 bytes) @ 0x00007efef6eada5c [0x00007efef6ead920+0x13c] J 48136 C2 org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (2665 bytes) @ 0x00007efef812e90c [0x00007efef812e6c0+0x24c] J 47638 C2 org.apache.catalina.authenticator.AuthenticatorBase.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (810 bytes) @ 0x00007efef7c18c4c [0x00007efef7c18020+0xc2c] J 43966 C2 org.apache.catalina.valves.rewrite.RewriteValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (1540 bytes) @ 0x00007efef8eaa068 [0x00007efef8ea94e0+0xb88] J 47594 C2 org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (396 bytes) @ 0x00007efef95cd228 [0x00007efef95ccfa0+0x288] J 47529 C2 org.apache.catalina.connector.CoyoteAdapter.service(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V (892 bytes) @ 0x00007efef9549700 [0x00007efef9549220+0x4e0] J 46992 C2 org.apache.coyote.http11.Http11Processor.service(Lorg/apache/tomcat/util/net/SocketWrapperBase;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState; (1189 bytes) @ 0x00007efef93c1ef0 [0x00007efef93c1c20+0x2d0] J 48415 C1 org.apache.coyote.AbstractProcessorLight.process(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState; (367 bytes) @ 0x00007efef763d914 [0x00007efef763bfa0+0x1974] J 43440 C2 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState; (1315 bytes) @ 0x00007efef8d8cdfc [0x00007efef8d8c900+0x4fc] J 43064 C2 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun()V (637 bytes) @ 0x00007efef8cc175c [0x00007efef8cc16a0+0xbc] J 42778 C2 org.apache.tomcat.util.net.SocketProcessorBase.run()V (35 bytes) @ 0x00007efef4bcbbc4 [0x00007efef4bcbb00+0xc4] j org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(Lorg/apache/tomcat/util/threads/ThreadPoolExecutor$Worker;)V+92 j org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run()V+5 j org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()V+4 j java.lang.Thread.run()V+11 v ~StubRoutines::call_stub At some point org.apache.catalina.connector.Request.getLocalName is called, which is apparently for every request. Each browser client asks for a variety of values and eventually two of them occur within the millisecond necessary to block each other from the final java.net.Inet4AddressImpl.getHostByAddr -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org