Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4625862

VM crashes in Unsafe_SetNativeByte when writing to MappedByteBuffer on Linux

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • None
    • 1.4.0
    • core-libs
    • x86
    • linux



      Name: nt126004 Date: 01/18/2002


      FULL PRODUCT VERSION :
      java version "1.4.0-beta3"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta3-b84)
      Java HotSpot(TM) Server VM (build 1.4.0-beta3-b84, mixed mode)


      FULL OPERATING SYSTEM VERSION :
      Red Hat Linux release 7.1sbe (Seawolf)
      Linux dev002 2.4.3-6smp #1 SMP Wed May 16 04:29:16 EDT 2001
      i686 unknown
      glibc-2.2.2-10



      EXTRA RELEVANT SYSTEM CONFIGURATION :
      machine is dual P-III 933


      A DESCRIPTION OF THE PROBLEM :
      Attempting to put a byte into a MappedByteBuffer mapped
      READ_WRITE to a FileChannel causes a VM crash on Linux.
      Same code executes correctly on NT. Source code for test
      case and crash log attached. Bug 4510489 seems to say this
      only happens if the Buffer was mapped READ_ONLY, although
      this test cases clearly causes it when the Buffer is
      READ_WRITE.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. Run attached source code as java/bin/java -server -cp .
      test.CrashTest


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      see error messages

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      [davem@dev002 davem]$ more hs_err_pid2495.log
      Unexpected Signal : 7 occurred at PC=0x40460AA8
      Function=Unsafe_SetNativeByte+0x78
      Library=/home/davem/java/lib/i386/server/libjvm.so

      Current Java thread:
              at sun.misc.Unsafe.putByte(Native Method)
              at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:201)
              at java.nio.ByteBuffer.put(ByteBuffer.java:734)
              at java.nio.ByteBuffer.put(ByteBuffer.java:758)
              at test.CrashTest.main(CrashTest.java:14)

      Dynamic libraries:
      08048000-0804d000 r-xp 00000000 08:02 102382 /home/davem/java/bin/java
      0804d000-0804e000 rw-p 00004000 08:02 102382 /home/davem/java/bin/java
      40000000-40016000 r-xp 00000000 08:08 13296 /lib/ld-2.2.2.so
      40016000-40017000 rw-p 00015000 08:08 13296 /lib/ld-2.2.2.so
      40018000-40021000 r-xp 00000000 08:02 87764 /home/davem/java/lib/i386/nativ
      e_threads/libhpi.so
      40021000-40022000 rw-p 00008000 08:02 87764 /home/davem/java/lib/i386/nativ
      e_threads/libhpi.so
      40022000-40023000 r--p 00000000 08:05 1242757 /usr/lib/locale/en_US/LC_IDENTI
      FICATION
      40023000-40024000 r--p 00000000 08:05 1242758 /usr/lib/locale/en_US/LC_MEASUR
      EMENT
      40024000-40025000 r--p 00000000 08:05 1242761 /usr/lib/locale/en_US/LC_TELEPH
      ONE
      40025000-40026000 r--p 00000000 08:05 1242756 /usr/lib/locale/en_US/LC_ADDRES
      S
      40026000-40027000 r--p 00000000 08:05 1242759 /usr/lib/locale/en_US/LC_NAME
      40027000-40028000 r--p 00000000 08:05 1242760 /usr/lib/locale/en_US/LC_PAPER
      40028000-40029000 r--p 00000000 08:05 147176 /usr/lib/locale/en_US/LC_MESSAG
      ES/SYS_LC_MESSAGES
      40029000-4002a000 r--p 00000000 08:05 2125767 /usr/lib/locale/en_US/LC_MONETA
      RY
      4002a000-40037000 r-xp 00000000 08:08 21 /lib/i686/libpthread-0.9.so
      40037000-4003f000 rw-p 0000c000 08:08 21 /lib/i686/libpthread-0.9.so
      4003f000-40042000 r-xp 00000000 08:08 13309 /lib/libdl-2.2.2.so
      40042000-40043000 rw-p 00002000 08:08 13309 /lib/libdl-2.2.2.so
      40043000-40169000 r-xp 00000000 08:08 17 /lib/i686/libc-2.2.2.so
      40169000-4016f000 rw-p 00125000 08:08 17 /lib/i686/libc-2.2.2.so
      40173000-405ce000 r-xp 00000000 08:02 14643 /home/davem/java/lib/i386/serve
      r/libjvm.so
      405ce000-40765000 rw-p 0045a000 08:02 14643 /home/davem/java/lib/i386/serve
      r/libjvm.so
      4077a000-4078d000 r-xp 00000000 08:08 13314 /lib/libnsl-2.2.2.so
      4078d000-4078f000 rw-p 00012000 08:08 13314 /lib/libnsl-2.2.2.so
      40791000-407c5000 r-xp 00000000 08:05 637785 /usr/lib/libstdc++-2-libc6.1-1-
      2.9.0.so
      407c5000-407d1000 rw-p 00033000 08:05 637785 /usr/lib/libstdc++-2-libc6.1-1-
      2.9.0.so
      407d3000-407f6000 r-xp 00000000 08:08 19 /lib/i686/libm-2.2.2.so
      407f6000-407f7000 rw-p 00022000 08:08 19 /lib/i686/libm-2.2.2.so
      407f7000-40808000 r-xp 00000000 08:02 43897 /home/davem/java/lib/i386/libve
      rify.so
      40808000-4080a000 rw-p 00010000 08:02 43897 /home/davem/java/lib/i386/libve
      rify.so
      4080a000-4082b000 r-xp 00000000 08:02 43898 /home/davem/java/lib/i386/libja
      va.so
      4082b000-4082d000 rw-p 00020000 08:02 43898 /home/davem/java/lib/i386/libja
      va.so
      4082e000-40842000 r-xp 00000000 08:02 43900 /home/davem/java/lib/i386/libzi
      p.so
      40842000-40845000 rw-p 00013000 08:02 43900 /home/davem/java/lib/i386/libzi
      p.so
      40845000-41e0c000 r--s 00000000 08:02 43953 /home/davem/java/lib/rt.jar
      41e4e000-41e65000 r--s 00000000 08:02 43921 /home/davem/java/lib/sunrsasign
      .jar
      41e65000-41ed3000 r--s 00000000 08:02 43923 /home/davem/java/lib/jsse.jar
      41ed3000-41ee6000 r--s 00000000 08:02 43922 /home/davem/java/lib/jce.jar
      41ee6000-42167000 r--s 00000000 08:02
      43938 /home/davem/java/lib/charsets.jar
      4420f000-44210000 r--p 00000000 08:05 1242762 /usr/lib/locale/en_US/LC_TIME
      4c412000-4c42d000 r--p 00000000 08:05 1406283 /usr/lib/locale/en_US/LC_CTYPE
      4c42d000-4c433000 r--p 00000000 08:05 49063 /usr/lib/locale/en_US/LC_COLLAT
      E
      4c433000-4c434000 r--p 00000000 08:05 866666 /usr/lib/locale/en_US/LC_NUMERI
      C
      4c434000-4c436000 r--s 00000000 08:02 22 /home/davem/java/lib/ext/dnsns.
      jar
      4c436000-4c444000 r--s 00000000 08:02 24 /home/davem/java/lib/ext/ldapse
      c.jar
      4c444000-4c445000 rw-s 00000000 08:02 73168 /home/davem/foo
      4c446000-4c450000 r-xp 00000000 08:08 13330 /lib/libnss_files-2.2.2.so
      4c450000-4c451000 rw-p 00009000 08:08 13330 /lib/libnss_files-2.2.2.so
      4c9d4000-4c9f1000 r--s 00000000 08:02 21 /home/davem/java/lib/ext/sunjce
      _provider.jar
      4c9f1000-4ca90000 r--s 00000000 08:02 23 /home/davem/java/lib/ext/locale
      data.jar
      4ca90000-4caa2000 r-xp 00000000 08:02 43903 /home/davem/java/lib/i386/libne
      t.so
      4caa2000-4caa3000 rw-p 00011000 08:02 43903 /home/davem/java/lib/i386/libne
      t.so
      4caa3000-4caa8000 r-xp 00000000 08:02 43904 /home/davem/java/lib/i386/libni
      o.so
      4caa8000-4caa9000 rw-p 00004000 08:02 43904 /home/davem/java/lib/i386/libni
      o.so

      Local Time = Fri Jan 4 00:37:58 2002
      Elapsed Time = 0
      #
      # HotSpot Virtual Machine Error : 7
      # Error ID : 4F530E43505002BA
      # Please report this error at
      # http://java.sun.com/cgi-bin/bugreport.cgi
      #
      # Java VM: Java HotSpot(TM) Server VM (1.4.0-beta3-b84 mixed mode)
      #


      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      package test;

      import java.nio.*;
      import java.nio.channels.*;
      import java.io.*;

      public class CrashTest {
          public static void main(String arg[]) throws Exception {

              RandomAccessFile ras = new RandomAccessFile(new File("foo"),"rw");
              FileChannel fc = ras.getChannel();
              MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_WRITE,0,1);
              mbb.put(new byte[] {1});
              mbb.force();
              fc.close();
          }
      }


      ---------- END SOURCE ----------

      CUSTOMER WORKAROUND :
      No workaround.
      (Review ID: 137905)
      ======================================================================

            mr Mark Reinhold
            nthompsosunw Nathanael Thompson (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: