3 Replies Latest reply: Apr 18, 2011 7:00 AM by 846730 RSS

    SIGSEGV (0xb) - How to troubleshoot?

    846730
      We are trying to identify what is causing segmentation fault and particularly how to troubleshoot it?
      The following exception is thrown on our server when under stress, which kills all running java processes.

      # SIGSEGV (0xb) at pc=0x0000000000000038, pid=3082, tid=140191058470656
      #
      # JRE version: 6.0_24-b07
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (19.1-b02 mixed mode linux-amd64 compressed oops)
      # Problematic frame:
      # C 0x0000000000000038

      Full error log at
      http://pastebin.com/VzDfenY5

      We are running on 64bit ubuntu linux with java 6 update 24, the same issue occurs on similar spec.'d machine running on java 6 update 22.

      Any help appreciated.
        • 1. Re: SIGSEGV (0xb) - How to troubleshoot?
          jschellSomeoneStoleMyAlias
          Typically that is caused by JNI code.

          The 64 bit VM itself is more likely to cause that than the 32 bit VM.

          Per posts on the JNI forum there are specific vm options which can cause that to occur. So if you are using hotspot/gc options then you should look for those threads.
          • 2. Re: SIGSEGV (0xb) - How to troubleshoot?
            846730
            Thanks for this suggestion, we will try removing gc options altogether to see if it helps.

            Edited by: 843727 on 14-Mar-2011 11:57
            • 3. Re: SIGSEGV (0xb) - How to troubleshoot?
              846730
              With this SIGSEGV (Segmentation fault) error we were able to troubleshoot by debugging the code referenced in "Java frames:" subsection under THREAD section.

              Therefore looking at Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
              j java.lang.Thread.start0()V+0
              j java.lang.Thread.start()V+32
              j org.trippi.io.RIOTripleIterator.<init>(Ljava/io/InputStream;Lorg/openrdf/rio/RDFParser;Ljava/lang/String;)V+116
              j org.trippi.TripleIterator.fromStream(Ljava/io/InputStream;Ljava/lang/String;Lorg/trippi/RDFFormat;)Lorg/trippi/TripleIterator;+98

              Code suggests the exception was thrown while trying to create a new thread, within the org.trippi.io.RIOTripleIterator. The code here was re-factored to use thread pooling instead of creating new threads each time, see here https://jira.duraspace.org/browse/FCREPO-873 for more info. This helped reduced the SIGSEGV errors significantly although not completely.

              Edited by: 843727 on 18-Apr-2011 05:00