opencv_contrib icon indicating copy to clipboard operation
opencv_contrib copied to clipboard

4.5.5 version jni calls WeChatQRCode#detectAndDecode segment error

Open jibkmbw755 opened this issue 2 years ago • 0 comments

System information (version)
  • OpenCV => :grey_question:
  • Operating System / Platform => :grey_question:
  • Compiler => :grey_question:
Detailed description

In version 4.5.5, when jni calls the WeChatQRCode#detectAndDecode(Mat img) method, after running for a period of time, a segment error often occurs occasionally. There is no problem in using it.The situation is 1, 2, 128, etc. The specific stack from the java error log is as follows:

【si_code=128 statck:】 --------------- T H R E A D ---------------

Current thread (0x00007fab1fbcd800): JavaThread "pool-6-thread-3" [_thread_in_native, id=154, stack(0x00007fab134fd000,0x00007fab135fd9c0)]

siginfo: si_signo: 11 (SIGSEGV), si_code: 128 (SI_KERNEL), si_addr: 0x0000000000000000 Stack: [0x00007fab134fd000,0x00007fab135fd9c0], sp=0x00007fab135fcca8, free space=1023k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [ld-musl-x86_64.so.1+0x516b9] memcpy+0x24

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) J 24168 org.opencv.wechat_qrcode.WeChatQRCode.detectAndDecode_1(JJ)Ljava/util/List; (0 bytes) @ 0x00007fab41008ee4 [0x00007fab41008ea0+0x44] J 26591 C2 org.opencv.wechat_qrcode.WeChatQRCode.detectAndDecode(Lorg/opencv/core/Mat;)Ljava/util/List; (12 bytes) @ 0x00007fab3deaaf5c [0x00007fab3deaaf20+0x3c] J 24868 C2 com.learnable.qrcode.manager.impl.QrCodeManagerImpl.qrCodeReadTask(Ljava/lang/String;Ljava/util/List;Ljava/util/concurrent/CountDownLatch;)V (724 bytes) @ 0x00007fab411b5528 [0x00007fab411b3680+0x1ea8] J 24870 C2 com.learnable.qrcode.manager.impl.QrCodeManagerImpl$$Lambda$1070.run()V (20 bytes) @ 0x00007fab3ef9d780 [0x00007fab3ef9d720+0x60] J 23613% C2 java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V (225 bytes) @ 0x00007fab40379a74 [0x00007fab40379420+0x654] j java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5 j java.lang.Thread.run()V+11 v ~StubRoutines::call_stub

【si_code=1 statck:】 --------------- T H R E A D ---------------

Current thread (0x00007f041972a800): JavaThread "pool-5-thread-12" [_thread_in_native, id=156, stack(0x00007f040af8f000,0x00007f040b08f9c0)]

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

Stack: [0x00007f040af8f000,0x00007f040b08f9c0], sp=0x00007f040b08e438, free space=1021k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [ld-musl-x86_64.so.1+0x51793] memset+0xa7

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) J 24525 org.opencv.wechat_qrcode.WeChatQRCode.detectAndDecode_1(JJ)Ljava/util/List; (0 bytes) @ 0x00007f04385ca224 [0x00007f04385ca1e0+0x44] J 24514 C1 com.learnable.qrcode.common.opencv.wechat.qrcode.QRCodeDecode.decode(Ljava/awt/image/BufferedImage;)Ljava/util/List; (176 bytes) @ 0x00007f0439cd9e14 [0x00007f0439cd7cc0+0x2154] J 22640 C1 com.learnable.qrcode.integration.impl.QrCodeIntegrationImpl.readQrCodeByOpenCV(Ljava/awt/image/BufferedImage;)Ljava/lang/String; (51 bytes) @ 0x00007f04398de0f4 [0x00007f04398ddfa0+0x154] J 26833 C1 com.learnable.qrcode.integration.impl.QrCodeIntegrationImpl.qrCodeDecode(Ljava/net/URL;)Lcom/learnable/qrcode/common/model/QrcodeDecodeResult; (264 bytes) @ 0x00007f043921e464 [0x00007f043921dac0+0x9a4] J 26170 C2 com.learnable.qrcode.manager.impl.QrCodeManagerImpl.qrCodeReadTask(Ljava/lang/String;Ljava/util/List;Ljava/util/concurrent/CountDownLatch;)V (724 bytes) @ 0x00007f043b52bafc [0x00007f043b52b280+0x87c] J 24877 C2 org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed()Ljava/lang/Object; (34 bytes) @ 0x00007f043b1c3f7c [0x00007f043b1c3de0+0x19c] J 26192 C2 com.learnable.qrcode.config.CatAspect.aspectAround(Lorg/aspectj/lang/ProceedingJoinPoint;)Ljava/lang/Object; (48 bytes) @ 0x00007f043aad7918 [0x00007f043aad72e0+0x638] J 26557 C2 sun.reflect.GeneratedMethodAccessor135.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (65 bytes) @ 0x00007f04388c74e8 [0x00007f04388c7480+0x68] J 24877 C2 org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed()Ljava/lang/Object; (34 bytes) @ 0x00007f043b1c5f38 [0x00007f043b1c3de0+0x2158] J 25884 C2 org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Lorg/springframework/cglib/proxy/MethodProxy;)Ljava/lang/Object; (231 byte s) @ 0x00007f043b41bb94 [0x00007f043b41b1e0+0x9b4] J 25935 C2 com.learnable.qrcode.manager.impl.QrCodeManagerImpl$$Lambda$1081.run()V (20 bytes) @ 0x00007f043944950c [0x00007f04394491c0+0x34c] J 16935 C2 java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V (225 bytes) @ 0x00007f0439f19dc8 [0x00007f0439f19700+0x6c8] j java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5 j java.lang.Thread.run()V+11 v ~StubRoutines::call_stub

【si_code=2 statck:】 --------------- T H R E A D ---------------

Current thread (0x00007f8bdfdec800): JavaThread "pool-5-thread-11" [_thread_in_native, id=146, stack(0x00007f8bd23a1000,0x00007f8bd24a19c0)]

siginfo: si_signo: 11 (SIGSEGV), si_code: 2 (SEGV_ACCERR), si_addr: 0x00007f8beab219c8

Stack: [0x00007f8bd23a1000,0x00007f8bd24a19c0], sp=0x00007f8bd249ffd8, free space=1019k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C 0x00007f8beab219c8

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) J 25073 org.opencv.wechat_qrcode.WeChatQRCode.detectAndDecode_1(JJ)Ljava/util/List; (0 bytes) @ 0x00007f8bffee3be4 [0x00007f8bffee3ba0+0x44] J 25465 C1 com.learnable.qrcode.common.opencv.wechat.qrcode.QRCodeDecode.decode(Ljava/awt/image/BufferedImage;)Ljava/util/List; (176 bytes) @ 0x00007f8c01b81114 [0x00007f8c01b7efc0+0x2154] J 25078 C1 com.learnable.qrcode.integration.impl.QrCodeIntegrationImpl.readQrCodeByOpenCV(Ljava/awt/image/BufferedImage;)Ljava/lang/String; (51 bytes) @ 0x00007f8bffa245f4 [0x00007f8bffa244a0+0x154] J 24612 C1 com.learnable.qrcode.integration.impl.QrCodeIntegrationImpl.qrCodeDecode(Ljava/net/URL;)Lcom/learnable/qrcode/common/model/QrcodeDecodeResult; (264 bytes) @ 0x00007f8c0193f9d4 [0x00007f8c0193efe0+0x9f4] J 25281 C1 com.learnable.qrcode.manager.impl.QrCodeManagerImpl.qrCodeReadTask(Ljava/lang/String;Ljava/util/List;Ljava/util/concurrent/CountDownLatch;)V (724 bytes) @ 0x00007f8c01a81234 [0x00007f8c01a7f4c0+0x1d74] J 25892 C2 org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed()Ljava/lang/Object; (34 bytes) @ 0x00007f8c01ce61c4 [0x00007f8c01ce6060+0x164] J 25350 C1 org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed()Ljava/lang/Object; (15 bytes) @ 0x00007f8bff8ffbf4 [0x00007f8bff8ff780+0x474] J 25355 C1 com.learnable.qrcode.config.CatAspect$$Lambda$1087.doInCatTransaction(Lcom/dianping/cat/message/Transaction;)Ljava/lang/Object; (9 bytes) @ 0x00007f8bff8ff34c [0x00007f8bff8ff200+0x14c] J 25353 C1 com.learnable.qrcode.config.CatAspect.doServiceInTransaction(Ljava/lang/String;Ljava/lang/String;Lcom/learnable/qrcode/config/CatAspect$CatTransactionCallBack;)Ljava/lang/Object; (71 bytes) @ 0x00007f8c01afe06c [0x00007f8 c01afdb40+0x52c] J 25321 C1 com.learnable.qrcode.config.CatAspect.aspectAround(Lorg/aspectj/lang/ProceedingJoinPoint;)Ljava/lang/Object; (48 bytes) @ 0x00007f8c01ab7174 [0x00007f8c01ab6020+0x1154] J 25218 C1 sun.reflect.GeneratedMethodAccessor162.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (65 bytes) @ 0x00007f8c01a5b43c [0x00007f8c01a5b140+0x2fc] J 25892 C2 org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed()Ljava/lang/Object; (34 bytes) @ 0x00007f8c01ce7050 [0x00007f8c01ce6060+0xff0] J 25893 C2 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (126 bytes) @ 0x00007f8c01cf7f94 [0x00007f8c01cf6d20+0x1274] J 24479 C1 org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Lorg/springframework/cglib/proxy/MethodProxy;)Ljava/lang/Object; (231 byte s) @ 0x00007f8c018a6264 [0x00007f8c018a52c0+0xfa4] J 25038 C1 com.learnable.qrcode.manager.impl.QrCodeManagerImpl$$EnhancerBySpringCGLIB$$bd522b64.qrCodeReadTask(Ljava/lang/String;Ljava/util/List;Ljava/util/concurrent/CountDownLatch;)V (58 bytes) @ 0x00007f8c00193c64 [0x00007f8c0019 3620+0x644] J 24483 C1 com.learnable.qrcode.manager.impl.QrCodeManagerImpl$$Lambda$1086.run()V (20 bytes) @ 0x00007f8c01898064 [0x00007f8c01897f00+0x164] J 16519 C2 java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V (225 bytes) @ 0x00007f8bfe83bae4 [0x00007f8bfe83b380+0x764] j java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5 j java.lang.Thread.run()V+11 v ~StubRoutines::call_stub

jibkmbw755 avatar Mar 13 '23 07:03 jibkmbw755