We're using spring-webflux with spring boot. And recently program crashes with stack point to RequestMappingInfoHandlerMapping.getMatchingMapping(Ljava/lang/Object;Lorg/springframework/web/server/ServerWebExchange;) method. Since the core dump file is not complete, I cannot analyze the dump file. Post my crash error log as blow.

What spring-boot version do I use

  • Spring-Boot-2.1.9.RELEASE

  • Spring-Webflux-5.1.10.RELEASE

Crash error log with stack info

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f47b694a887, pid=79203, tid=0x00007f43625a6700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_111-b14) (build 1.8.0_111-b14)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.111-b14 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# J 22679 C2 org.springframework.web.reactive.result.method.RequestMappingInfoHandlerMapping.getMatchingMapping(Ljava/lang/Object;Lorg/springframework/web/server/ServerWebExchange;)Ljava/lang/Object; (10 bytes) @ 0x00007f47b694a887 [0x00007f
47b694a5e0+0x2a7]
#
# Core dump written. Default location:/tmp/core or core.79203
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x00007f43bc039000):  JavaThread "reactor-http-epoll-26" daemon [_thread_in_Java, id=83889, stack(0x00007f43624a6000,0x00007f43625a7000)]

siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x00000000e952c73f

Registers:
RAX=0x000000074b60a540, RBX=0x0000000000011337, RCX=0x00000000e004cb5c, RDX=0x0000000000000010
RSP=0x00007f43625a4780, RBP=0x0000000000011336, RSI=0x00000000e969007e, RDI=0x00000000e952c73f
R8 =0x00000006ef3f3918, R9 =0x00000006ef3f3918, R10=0x00000000e9690057, R11=0x00000006ede31a18
R12=0x0000000000000000, R13=0x00000007c002c9e0, R14=0x00000000493db2b3, R15=0x00007f43bc039000
RIP=0x00007f47b694a887, EFLAGS=0x0000000000010202, CSGSFS=0x0000000000000033, ERR=0x0000000000000006
  TRAPNO=0x000000000000000e

Top of Stack: (sp=0x00007f43625a4780)
0x00007f43625a4780:   e9690054ef403810 00000006ef3f3918
0x00007f43625a4790:   000000074b60a540 00000006ef403c68
0x00007f43625a47a0:   000000074b480438 000000074b4802a0
0x00007f43625a47b0:   00000006ef403d98 00000006ede31a18
0x00007f43625a47c0:   000000074b9ceb28 000000074b9ceb10
0x00007f43625a47d0:   0000000600011337 000000074b9ceb40
0x00007f43625a47e0:   00000006ef403790 00007f47b78a4fcc
0x00007f43625a47f0:   00000006ef4037d0 00000006ef403880
0x00007f43625a4800:   00000006ef401e38 00000006ef4037f0
0x00007f43625a4810:   0000000700000000 00000006ef401c78
0x00007f43625a4820:   00000006ef401c78 00007f47b457dbcc
0x00007f43625a4830:   002269eaddbc62dd f818d705ede316e8
0x00007f43625a4840:   be73fe0bef3f7b60 00000006ef3f89b8
0x00007f43625a4850:   00000006ef403a10 00007f47b703e0bc
0x00007f43625a4860:   e96bad5800000058 e96affb2e96bad5d
0x00007f43625a4870:   000000074b5d6ae8 00000006e96c14a8
0x00007f43625a4880:   000000074b38d7a0 00000006ef403a10
0x00007f43625a4890:   00000006ef3f3918 000000074b60a540
0x00007f43625a48a0:   00000006ef403928 00000006ef403938
0x00007f43625a48b0:   000000000000003f 00007f47b4c40b20
0x00007f43625a48c0:   0000000000000000 00007f47b39e23e8
0x00007f43625a48d0:   000000070007cf40 00007f47b466c874
0x00007f43625a48e0:   0000000000000000 00007f47b6118748
0x00007f43625a48f0:   00000006ef403a10 00007f47b7a19d80
0x00007f43625a4900:   00000006ef3f74b0 00000006ef3f3918
0x00007f43625a4910:   000000074b38d7a0 00000007c0204b58
0x00007f43625a4920:   00000006ef3f90f8 00007f47b813965c
0x00007f43625a4930:   00007f43625a4f80 00007f47cdaaa3e6
0x00007f43625a4940:   00000006ef4039f0 00007f47b717f774
0x00007f43625a4950:   f800bc40f8060172 00000007c0204f40
0x00007f43625a4960:   00000000e968f26e 00007f47b7a1f2cc
0x00007f43625a4970:   00000006ef4039f0 00000006ef3f3918

Instructions: (pc=0x00007f47b694a887)
0x00007f47b694a867:   bb c0 e7 8a 4a 07 00 00 00 8b 7b 24 41 8b 54 fc
0x00007f47b694a877:   0c 8b dd c1 eb 10 33 dd 85 d2 0f 8e aa 31 00 00
0x00007f47b694a887:   8b ea ff cd 23 eb 3b ea 0f 83 60 2e 00 00 48 c1
0x00007f47b694a897:   e7 03 8b 6c af 10 41 8b 7c ec 0c 89 5c 24 40 4c

Register to memory mapping:

RAX=0x000000074b60a540 is an oop
org.springframework.web.reactive.result.method.RequestMappingInfo
 - klass: 'org/springframework/web/reactive/result/method/RequestMappingInfo'
RBX=0x0000000000011337 is an unknown value
RCX=0x00000000e004cb5c is an unknown value
RDX=0x0000000000000010 is an unknown value
RSP=0x00007f43625a4780 is pointing into the stack for thread: 0x00007f43bc039000
RBP=0x0000000000011336 is an unknown value
RSI=0x00000000e969007e is an unknown value
RDI=0x00000000e952c73f is an unknown value
R8 =
[error occurred during error reporting (printing register info), id 0xb]

Stack: [0x00007f43624a6000,0x00007f43625a7000],  sp=0x00007f43625a4780,  free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
J 22679 C2 org.springframework.web.reactive.result.method.RequestMappingInfoHandlerMapping.getMatchingMapping(Ljava/lang/Object;Lorg/springframework/web/server/ServerWebExchange;)Ljava/lang/Object; (10 bytes) @ 0x00007f47b694a887 [0x00007f47
b694a5e0+0x2a7]
J 22215 C2 org.springframework.web.reactive.result.method.AbstractHandlerMethodMapping.addMatchingMappings(Ljava/util/Collection;Ljava/util/List;Lorg/springframework/web/server/ServerWebExchange;)V (79 bytes) @ 0x00007f47b703e0bc [0x00007f47
b703dfe0+0xdc]
J 25980 C2 org.springframework.web.reactive.result.method.AbstractHandlerMethodMapping.lookupHandlerMethod(Lorg/springframework/web/server/ServerWebExchange;)Lorg/springframework/web/method/HandlerMethod; (302 bytes) @ 0x00007f47b7a19d80 [0x
00007f47b7a19c20+0x160]
J 25982 C2 org.springframework.web.reactive.result.method.AbstractHandlerMethodMapping.getHandlerInternal(Lorg/springframework/web/server/ServerWebExchange;)Lreactor/core/publisher/Mono; (68 bytes) @ 0x00007f47b7a1f2cc [0x00007f47b7a1f180+0x
14c]
J 25445 C2 org.springframework.web.reactive.handler.AbstractHandlerMapping.getHandler(Lorg/springframework/web/server/ServerWebExchange;)Lreactor/core/publisher/Mono; (16 bytes) @ 0x00007f47b78a4424 [0x00007f47b78a43e0+0x44]
J 36481 C2 reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain()V (454 bytes) @ 0x00007f47b62a5ff4 [0x00007f47b62a5e60+0x194]
J 25631 C2 reactor.core.publisher.FluxConcatMap.subscribe(Lreactor/core/CoreSubscriber;)V (46 bytes) @ 0x00007f47b2e62048 [0x00007f47b2e61980+0x6c8]
J 24453 C2 reactor.core.publisher.MonoNext.subscribe(Lreactor/core/CoreSubscriber;)V (16 bytes) @ 0x00007f47b3239814 [0x00007f47b3239760+0xb4]
J 24028 C2 reactor.core.publisher.MonoSwitchIfEmpty.subscribe(Lreactor/core/CoreSubscriber;)V (29 bytes) @ 0x00007f47b36336ec [0x00007f47b36335e0+0x10c]
J 22870 C2 reactor.core.publisher.MonoFlatMap.subscribe(Lreactor/core/CoreSubscriber;)V (47 bytes) @ 0x00007f47b347cb84 [0x00007f47b347c9c0+0x1c4]
J 22870 C2 reactor.core.publisher.MonoFlatMap.subscribe(Lreactor/core/CoreSubscriber;)V (47 bytes) @ 0x00007f47b347cb84 [0x00007f47b347c9c0+0x1c4]
J 22651 C2 reactor.core.publisher.MonoDefer.subscribe(Lreactor/core/CoreSubscriber;)V (43 bytes) @ 0x00007f47b2e4e8c8 [0x00007f47b2e4e840+0x88]
J 22651 C2 reactor.core.publisher.MonoDefer.subscribe(Lreactor/core/CoreSubscriber;)V (43 bytes) @ 0x00007f47b2e4e8c8 [0x00007f47b2e4e840+0x88]
J 22651 C2 reactor.core.publisher.MonoDefer.subscribe(Lreactor/core/CoreSubscriber;)V (43 bytes) @ 0x00007f47b2e4e8c8 [0x00007f47b2e4e840+0x88]
J 22651 C2 reactor.core.publisher.MonoDefer.subscribe(Lreactor/core/CoreSubscriber;)V (43 bytes) @ 0x00007f47b2e4e8c8 [0x00007f47b2e4e840+0x88]
J 22651 C2 reactor.core.publisher.MonoDefer.subscribe(Lreactor/core/CoreSubscriber;)V (43 bytes) @ 0x00007f47b2e4e8c8 [0x00007f47b2e4e840+0x88]
J 36109 C2 reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(Ljava/lang/Object;)V (192 bytes) @ 0x00007f47b81e19f8 [0x00007f47b81e17c0+0x238]
J 23416 C2 reactor.core.publisher.MonoZip$ZipInner.onNext(Ljava/lang/Object;)V (20 bytes) @ 0x00007f47b73f158c [0x00007f47b73f12c0+0x2cc]
J 23279 C2 reactor.core.publisher.Operators$ScalarSubscription.request(J)V (49 bytes) @ 0x00007f47b731bfd8 [0x00007f47b731bf60+0x78]
J 23418 C2 reactor.core.publisher.MonoZip$ZipInner.onSubscribe(Lorg/reactivestreams/Subscription;)V (30 bytes) @ 0x00007f47b73f2acc [0x00007f47b73f28e0+0x1ec]
J 23606 C2 reactor.core.publisher.MonoJust.subscribe(Lreactor/core/CoreSubscriber;)V (15 bytes) @ 0x00007f47b41b2430 [0x00007f47b41b2340+0xf0]
J 34806 C2 reactor.core.publisher.Mono.subscribe(Lorg/reactivestreams/Subscriber;)V (12 bytes) @ 0x00007f47b3caa210 [0x00007f47b3caa180+0x90]
J 24329 C2 reactor.core.publisher.MonoZip.subscribe(Lreactor/core/CoreSubscriber;)V (171 bytes) @ 0x00007f47b7571e34 [0x00007f47b7571760+0x6d4]
J 22870 C2 reactor.core.publisher.MonoFlatMap.subscribe(Lreactor/core/CoreSubscriber;)V (47 bytes) @ 0x00007f47b347cb84 [0x00007f47b347c9c0+0x1c4]
J 22651 C2 reactor.core.publisher.MonoDefer.subscribe(Lreactor/core/CoreSubscriber;)V (43 bytes) @ 0x00007f47b2e4e8c8 [0x00007f47b2e4e840+0x88]
J 22651 C2 reactor.core.publisher.MonoDefer.subscribe(Lreactor/core/CoreSubscriber;)V (43 bytes) @ 0x00007f47b2e4e8c8 [0x00007f47b2e4e840+0x88]
J 25529 C2 reactor.core.publisher.MonoPeekTerminal.subscribe(Lreactor/core/CoreSubscriber;)V (44 bytes) @ 0x00007f47b55d257c [0x00007f47b55d2460+0x11c]
J 24355 C2 reactor.core.publisher.MonoPeekFuseable.subscribe(Lreactor/core/CoreSubscriber;)V (44 bytes) @ 0x00007f47b7579718 [0x00007f47b75790c0+0x658]
J 22651 C2 reactor.core.publisher.MonoDefer.subscribe(Lreactor/core/CoreSubscriber;)V (43 bytes) @ 0x00007f47b2e4e8c8 [0x00007f47b2e4e840+0x88]
J 22651 C2 reactor.core.publisher.MonoDefer.subscribe(Lreactor/core/CoreSubscriber;)V (43 bytes) @ 0x00007f47b2e4e8c8 [0x00007f47b2e4e840+0x88]
J 23196 C2 reactor.core.publisher.MonoOnErrorResume.subscribe(Lreactor/core/CoreSubscriber;)V (20 bytes) @ 0x00007f47b46a070c [0x00007f47b46a0620+0xec]
J 23196 C2 reactor.core.publisher.MonoOnErrorResume.subscribe(Lreactor/core/CoreSubscriber;)V (20 bytes) @ 0x00007f47b46a070c [0x00007f47b46a0620+0xec]
J 23196 C2 reactor.core.publisher.MonoOnErrorResume.subscribe(Lreactor/core/CoreSubscriber;)V (20 bytes) @ 0x00007f47b46a070c [0x00007f47b46a0620+0xec]
J 25529 C2 reactor.core.publisher.MonoPeekTerminal.subscribe(Lreactor/core/CoreSubscriber;)V (44 bytes) @ 0x00007f47b55d257c [0x00007f47b55d2460+0x11c]
J 23196 C2 reactor.core.publisher.MonoOnErrorResume.subscribe(Lreactor/core/CoreSubscriber;)V (20 bytes) @ 0x00007f47b46a070c [0x00007f47b46a0620+0xec]
J 34806 C2 reactor.core.publisher.Mono.subscribe(Lorg/reactivestreams/Subscriber;)V (12 bytes) @ 0x00007f47b3caa210 [0x00007f47b3caa180+0x90]
J 24355 C2 reactor.core.publisher.MonoPeekFuseable.subscribe(Lreactor/core/CoreSubscriber;)V (44 bytes) @ 0x00007f47b757966c [0x00007f47b75790c0+0x5ac]
J 26226 C2 reactor.netty.channel.ChannelOperationsHandler.channelRead(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V (304 bytes) @ 0x00007f47b779c7b4 [0x00007f47b779c4c0+0x2f4]
J 26220 C2 reactor.netty.http.server.HttpTrafficHandler.channelRead(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V (716 bytes) @ 0x00007f47b6b7f2ac [0x00007f47b6b7e740+0xb6c]
J 39241 C2 io.netty.channel.CombinedChannelDuplexHandler.channelRead(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V (62 bytes) @ 0x00007f47b8a8e7bc [0x00007f47b8a8e220+0x59c]
J 22809 C2 io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V (9 bytes) @ 0x00007f47b50cea50 [0x00007f47b50ce880+0x1d0]
J 38932 C2 io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady()V (311 bytes) @ 0x00007f47b95f5584 [0x00007f47b95f4fe0+0x5a4]
J 38936 C2 io.netty.channel.epoll.EpollEventLoop.processReady(Lio/netty/channel/epoll/EpollEventArray;I)V (166 bytes) @ 0x00007f47b9608b08 [0x00007f47b9608920+0x1e8]
J 28921% C2 io.netty.channel.epoll.EpollEventLoop.run()V (262 bytes) @ 0x00007f47b6131800 [0x00007f47b6131440+0x3c0]
j  io.netty.util.concurrent.SingleThreadEventExecutor$5.run()V+44
j  io.netty.util.internal.ThreadExecutorMap$2.run()V+11
j  io.netty.util.concurrent.FastThreadLocalRunnable.run()V+4
J 17201 C1 java.lang.Thread.run()V (17 bytes) @ 0x00007f47b387e144 [0x00007f47b387e000+0x144]
v  ~StubRoutines::call_stub
V  [libjvm.so+0x690206]  JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x1056
V  [libjvm.so+0x690711]  JavaCalls::call_virtual(JavaValue*, KlassHandle, Symbol*, Symbol*, JavaCallArguments*, Thread*)+0x321
V  [libjvm.so+0x690bb7]  JavaCalls::call_virtual(JavaValue*, Handle, KlassHandle, Symbol*, Symbol*, Thread*)+0x47
V  [libjvm.so+0x7278f0]  thread_entry(JavaThread*, Thread*)+0xa0
V  [libjvm.so+0xa742b3]  JavaThread::thread_main_inner()+0x103
V  [libjvm.so+0xa743fc]  JavaThread::run()+0x11c
V  [libjvm.so+0x924ea8]  java_start(Thread*)+0x108
C  [libpthread.so.0+0x7e25]  start_thread+0xc5


---------------  P R O C E S S  ---------------
...

Is that an issue caused by webflux?

Comment From: bclozel

Hi @thewaychung

As explained by this error message, this is a JVM crash. Spring Framework does not ship anything but bytecode, so this problem is a JVM issue. Feel free to submit a bug report with the relevant information as explained in the error message.

Thanks!

Comment From: thewaychung

Hi @bclozel Thank you for replying so quick. I know this might be a JVM compiler issue. I mean, has any other developers feed back this kind of issue before? I'm wondering how to resolve this issue, since we cannot upgrade JVM version quickly on production environment.

Comment From: bclozel

If such an issue has been reported already, it's not been done here but rather on the issue tracker mentioned in your error message. Did you check that tracker for similar issues?

Comment From: thewaychung

If such an issue has been reported already, it's not been done here but rather on the issue tracker mentioned in your error message. Did you check that tracker for similar issues?

I didn't find any similar issues. Thanks for your time. I think I should go to JVM community for the issue. Thank you again @bclozel .