Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-10553

Caffeine causes SIGSEGV in Solr tests

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Cannot Reproduce
    • None
    • None
    • None
    • None

    Description

      While running the Solr tests, the JVM often crushes with SIGSEGV. The reason is Caffeine's usage of Unsafe. Please open an issue on this lib or remove this library.

      I looked at Caffeine's usage of Unsafe: IT IS TOTALLY USELESS!

      See this log: https://jenkins.thetaphi.de/job/Lucene-Solr-6.x-Linux/3347/artifact/solr/build/solr-core/test/J2/hs_err_pid17108.log

      Current thread (0xbf7af000):  JavaThread "Thread-4" [_thread_in_Java, id=17265, stack(0xc342e000,0xc347f000)]
      
      Stack: [0xc342e000,0xc347f000],  sp=0xc347dba0,  free space=318k
      Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
      J 5565% c1 com.github.benmanes.caffeine.cache.BaseMpscLinkedArrayQueue.poll()Ljava/lang/Object; (108 bytes) @ 0xe7ae7848 [0xe7ae6e20+0x00000a28]
      j  com.github.benmanes.caffeine.cache.BoundedLocalCache.drainWriteBuffer()V+21
      j  com.github.benmanes.caffeine.cache.BoundedLocalCache.maintenance(Ljava/lang/Runnable;)V+10
      j  com.github.benmanes.caffeine.cache.BoundedLocalCache.performCleanUp(Ljava/lang/Runnable;)V+11
      j  com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask.run()V+5
      j  org.apache.solr.store.blockcache.BlockCache$$Lambda$278.execute(Ljava/lang/Runnable;)V+1
      j  com.github.benmanes.caffeine.cache.BoundedLocalCache.scheduleDrainBuffers()V+54
      j  com.github.benmanes.caffeine.cache.BoundedLocalCache.scheduleAfterWrite()V+44
      j  com.github.benmanes.caffeine.cache.BoundedLocalCache.afterWrite(Lcom/github/benmanes/caffeine/cache/Node;Ljava/lang/Runnable;J)V+47
      j  com.github.benmanes.caffeine.cache.BoundedLocalCache.put(Ljava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;+209
      j  com.github.benmanes.caffeine.cache.BoundedLocalCache.put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+5
      j  com.github.benmanes.caffeine.cache.LocalManualCache.put(Ljava/lang/Object;Ljava/lang/Object;)V+8
      j  org.apache.solr.store.blockcache.BlockCache.store(Lorg/apache/solr/store/blockcache/BlockCacheKey;I[BII)Z+176
      j  org.apache.solr.store.blockcache.BlockCacheTest$1.test()V+331
      j  org.apache.solr.store.blockcache.BlockCacheTest$1.test(I)V+8
      j  org.apache.solr.store.blockcache.BlockCacheTest$1.run()V+47
      v  ~StubRoutines::call_stub
      V  [libjvm.so+0x65f759]  JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*)+0x319
      V  [libjvm.so+0x910889]  os::os_exception_wrapper(void (*)(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*), JavaValue*, methodHandle const&, JavaCallArguments*, Thread*)+0x19
      V  [libjvm.so+0x65e093]  JavaCalls::call_virtual(JavaValue*, Handle, KlassHandle, Symbol*, Symbol*, Thread*)+0x163
      V  [libjvm.so+0x6ee089]  thread_entry(JavaThread*, Thread*)+0x89
      V  [libjvm.so+0xa747d4]  JavaThread::thread_main_inner()+0xf4
      V  [libjvm.so+0x912e5c]  thread_native_entry(Thread*)+0x10c
      C  [libpthread.so.0+0x6f72]  start_thread+0xd2
      C  [libc.so.6+0xee2ae]  clone+0x5e
      
      
      siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x8d0ffbb0
      
      Register to memory mapping:
      
      EAX=0x00000040 is an unknown value
      EBX=0x00000000 is pointing into the stack for thread: 0xbf7ddc00
      ECX=0x00000000 is pointing into the stack for thread: 0xbf7ddc00
      EDX=0xc9a00918 is pointing into object: 0xc9a004f8
      
      [error occurred during error reporting (printing register info), id 0xb]
      
      Registers:
      EAX=0x00000040, EBX=0x00000000, ECX=0x00000000, EDX=0xc9a00918
      ESP=0xc347dba0, EBP=0xc347dcf0, ESI=0xc9c81ee8, EDI=0xc347dcc8
      EIP=0xe7ae7848, EFLAGS=0x00010246, CR2=0x000000008d0ffbb0
      
      Top of Stack: (sp=0xc347dba0)
      0xc347dba0:   00000038 bebd16c0 c347dbf8 f702a6f9
      0xc347dbb0:   e6c031c0 00000028 00000004 c347dc24 
      
      Instructions: (pc=0xe7ae7848)
      0xe7ae7828:   f0 58 0f be b6 e4 01 00 00 83 fe 00 8b bc 24 f8
      0xe7ae7838:   00 00 00 8b b4 24 98 00 00 00 0f 85 cc 06 00 00
      0xe7ae7848:   89 0c 3e 8d 34 3e 8b fe 33 f9 c1 ef 14 83 ff 00
      0xe7ae7858:   0f 85 cf 06 00 00 f0 83 44 24 c0 00 8b 8c 24 f4 
      

      The reson for this crash is wrong integer calculations while calculating offsets.

      I have seen several Unsafe-related crashes the last weeks. All coming from Caffeine. So please, please, please: Remove that lib or ask them to remove Unsafe!

      Attachments

        Activity

          People

            Unassigned Unassigned
            uschindler Uwe Schindler
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: