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)
======================================================================
- duplicates
-
JDK-4463036 (bf) Mapped buffers crash VM if the underlying file is too short (sol, lnx)
-
- Closed
-