Description
run the test case:
public void test_close() throws IOException {
// Simple read/write test over the IO streams
final ServerSocket pingServer = new ServerSocket(0);
Runnable runnable = new Runnable() {
public void run() {
try
catch (IOException e)
{ fail(e.getMessage()); } }
};
Thread thread = new Thread(runnable, "Socket.getInputStream");
thread.start();
Socket pingClient = new Socket(InetAddress.getLocalHost(), pingServer
.getLocalPort());
// Busy wait until the client is connected.
int c = 0;
while (!pingClient.isConnected()) {
try
catch (InterruptedException e) {
}
if (++c > 4)
}
// Write some data to the server to provoke it
OutputStream out = pingClient.getOutputStream();
out.write(new byte[256]);
InputStream in = pingClient.getInputStream();
in.read(new byte[42]);
// No exception when reading a closed stream
in.close();
try
{ in.read(); fail("should throw SocketException"); }catch (SocketException e)
{ // expected } pingClient.close();
pingServer.close();
}
vm crashed:
Signal reported: GENERAL_PROTECTION_FAULT
Registers:
EAX: 0xffffffff, EBX: 0xb7f646d8, ECX: 0xffffffff, EDX: 0x00000001
ESI: 0xa6708d6c, EDI: 0xa6708f10, ESP: 0xbfd4bac8, EBP: 0xbfd4bb00
EIP: 0xb7f597e8
Command line:
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/java -classpath /home/bahamut/workspace/sandbox:/home/bahamut/eclipse/plugins/org.junit_3.8.1/junit.jar:/home/bahamut/eclipse/plugins/org.eclipse.jdt.junit_3.2.0.v20060605-1400/junitsupport.jar:/home/bahamut/eclipse/plugins/org.eclipse.jdt.junit.runtime_3.2.0.v20060605-1400/junitruntime.jar org.eclipse.jdt.internal.junit.runner.RemoteTestRunner -version 3 -port 37759 -testLoaderClass org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader -classNames SocketInputStream
Working directory:
/home/bahamut/workspace/sandbox
Environment variables:
GREP_COLOR=auto
GPG_AGENT_INFO=/tmp/seahorse-rOKbLn/S.gpg-agent:9861:1
SHELL=/bin/bash
DESKTOP_STARTUP_ID=
TERM=xterm-256color
XDG_SESSION_COOKIE=e17a10b63cc571e36810390047982e5e-1232596022.78545-2120527474
GTK_RC_FILES=/etc/gtk/gtkrc:/home/bahamut/.gtkrc-1.2-gnome2
WINDOWID=37855233
ANT_HOME=/home/bahamut/apache-ant-1.7.0
ANT_OPTS=-Xms256m -Xmx1024m -XX:MaxPermSize=256m
SVN_EDITOR=/home/bahamut/git_workspace/bin/emacsclient.editor
USER=bahamut
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01;31:.svgz=01;31:.arj=01;31:.taz=01;31:.lzh=01;31:.lzma=01;31:.zip=01;31:.z=01;31:.Z=01;31:.dz=01;31:.gz=01;31:.bz2=01;31:.bz=01;31:.tbz2=01;31:.tz=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.rar=01;31:.ace=01;31:.zoo=01;31:.cpio=01;31:.7z=01;31:.rz=01;31:.jpg=01;35:.jpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.svg=01;35:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=01;35:.ogm=01;35:.mp4=01;35:.m4v=01;35:.mp4v=01;35:.vob=01;35:.qt=01;35:.nuv=01;35:.wmv=01;35:.asf=01;35:.rm=01;35:.rmvb=01;35:.flc=01;35:.avi=01;35:.fli=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.aac=00;36:.au=00;36:.flac=00;36:.mid=00;36:.midi=00;36:.mka=00;36:.mp3=00;36:.mpc=00;36:.ogg=00;36:.ra=00;36:.wav=00;36:
SSH_AUTH_SOCK=/tmp/keyring-Pje9Sb/ssh
GNOME_KEYRING_SOCKET=/tmp/keyring-Pje9Sb/socket
SESSION_MANAGER=local/Harmony-L3NEK37:/tmp/.ICE-unix/9774
USERNAME=bahamut
PATH=.::/home/bahamut/javacc-4.0/bin:/home/bahamut/git_workspace/bin:/home/bahamut/emacs.cvs/emacs-bin/bin:/home/bahamut/download/jdks/pxi3260sr3-20081106_07-sdk/jre/bin:/home/bahamut/apache-ant-1.7.0/bin:/home/bahamut/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
DESKTOP_SESSION=default
GDM_XSERVER_LOCATION=local
PWD=/home/bahamut/harmony/federated
JAVA_HOME=/home/bahamut/download/jdks/pxi3260sr3-20081106_07-sdk
EDITOR=/home/bahamut/git_workspace/bin/emacsclient.editor
LANG=en_US.UTF-8
GNOME_KEYRING_PID=9773
GDM_LANG=en_US.UTF-8
PS1=${debian_chroot:+($debian_chroot)}[\033[01;32m]\u@\h[\033[00m]:[\033[01;34m]\w[\033[00m]$(__git_ps1 " [\033[32m[%s]\033[0m]")
$
GDMSESSION=default
HISTCONTROL=ignoreboth
SHLVL=1
HOME=/home/bahamut
GNOME_DESKTOP_SESSION_ID=Default
LOGNAME=bahamut
XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Dms8zMdO0T,guid=2b27026fa3cf5b15dd478d5e4977ec37
LESSOPEN=| /usr/bin/lesspipe %s
WINDOWPATH=7
DISPLAY=:0.0
LESSCLOSE=/usr/bin/lesspipe %s %s
COLORTERM=gnome-terminal
XAUTHORITY=/home/bahamut/.Xauthority
OLDPWD=/home/bahamut/harmony/federated/working_jdktools
_=/home/bahamut/eclipse/eclipse
IBM_JAVA_COMMAND_LINE=/home/bahamut/download/jdks/pxi3260sr3-20081106_07-sdk/jre/bin/java -Xms40m -Xmx256m -jar /home/bahamut/eclipse/startup.jar -os linux -ws gtk -arch x86 -launcher /home/bahamut/eclipse/eclipse -name Eclipse -showsplash 600 -exitdata 440009 -vm /home/bahamut/download/jdks/pxi3260sr3-20081106_07-sdk/jre/bin/java -vmargs -Xms40m -Xmx256m -jar /home/bahamut/eclipse/startup.jar
LD_LIBRARY_PATH=/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/default:/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/:
Loaded modules:
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/java:
0x08048000:0x0804d000
0x0804d000:0x0804e000
[heap]:
0x0804e000:0x08696000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/libhyniochar.so:
0x95e8e000:0x95fe0000
0x95fe0000:0x96008000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/libhyarchive.so:
0x96008000:0x96015000
0x96015000:0x96016000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/libhyluni.so:
0x96016000:0x96049000
0x96049000:0x9604a000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/libhyzlib.so:
0x9604a000:0x9605a000
0x9605a000:0x9605b000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/default/libgc_gen_uncomp.so:
0xb6467000:0xb64b8000
0xb64b8000:0xb64b9000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/default/libjitrino.so:
0xb64bb000:0xb6700000
0xb6700000:0xb670d000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/default/libem.so:
0xb6770000:0xb6799000
0xb6799000:0xb679a000
/lib/tls/i686/cmov/libnss_files-2.7.so:
0xb681a000:0xb6823000
0xb6823000:0xb6825000
/lib/tls/i686/cmov/libnsl-2.7.so:
0xb6825000:0xb6839000
0xb6839000:0xb683b000
/lib/tls/i686/cmov/libnss_compat-2.7.so:
0xb683d000:0xb6844000
0xb6844000:0xb6846000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/default/libvmi.so:
0xb6851000:0xb6855000
0xb6855000:0xb6856000
/usr/lib/libstdc++.so.5.0.7:
0xb697a000:0xb6a2a000
0xb6a2a000:0xb6a2f000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/default/libicudata.so.34:
0xb6a34000:0xb72a2000
0xb72a2000:0xb72a3000
/usr/lib/libxml2.so.2.6.31:
0xb72a3000:0xb73bd000
0xb73bd000:0xb73c2000
/usr/lib/libz.so.1.2.3.3:
0xb73c3000:0xb73d7000
0xb73d7000:0xb73d8000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/libhynio.so:
0xb73db000:0xb73dd000
0xb73dd000:0xb73de000
/lib/tls/i686/cmov/libnss_nis-2.7.so:
0xb73de000:0xb73e6000
0xb73e6000:0xb73e8000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/default/libicuuc.so.34:
0xb73e8000:0xb74d8000
0xb74d8000:0xb74df000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/default/libharmonyvm.so:
0xb74df000:0xb764b000
0xb764b000:0xb76ab000
/usr/lib/locale/en_US.utf8/LC_CTYPE:
0xb78e1000:0xb7920000
/usr/lib/locale/en_US.utf8/LC_NUMERIC:
0xb7920000:0xb7921000
/usr/lib/locale/en_US.utf8/LC_COLLATE:
0xb7921000:0xb7a02000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/default/libch.so:
0xb7a02000:0xb7a0e000
0xb7a0e000:0xb7a6c000
/lib/libgcc_s.so.1:
0xb7ca2000:0xb7cac000
0xb7cac000:0xb7cad000
/lib/tls/i686/cmov/libpthread-2.7.so:
0xb7cae000:0xb7cc2000
0xb7cc2000:0xb7cc4000
/lib/tls/i686/cmov/librt-2.7.so:
0xb7cc6000:0xb7ccd000
0xb7ccd000:0xb7ccf000
/usr/lib/libstdc++.so.6.0.9:
0xb7ccf000:0xb7db7000
0xb7db7000:0xb7dba000
0xb7dba000:0xb7dbc000
/lib/tls/i686/cmov/libdl-2.7.so:
0xb7dc2000:0xb7dc4000
0xb7dc4000:0xb7dc6000
/lib/tls/i686/cmov/libm-2.7.so:
0xb7dc6000:0xb7de9000
0xb7de9000:0xb7deb000
/lib/tls/i686/cmov/libc-2.7.so:
0xb7deb000:0xb7f34000
0xb7f34000:0xb7f35000
0xb7f35000:0xb7f37000
/usr/lib/locale/en_US.utf8/LC_TIME:
0xb7f3b000:0xb7f3c000
/usr/lib/locale/en_US.utf8/LC_MONETARY:
0xb7f3c000:0xb7f3d000
/usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES:
0xb7f3d000:0xb7f3e000
/usr/lib/locale/en_US.utf8/LC_PAPER:
0xb7f3e000:0xb7f3f000
/usr/lib/locale/en_US.utf8/LC_NAME:
0xb7f3f000:0xb7f40000
/usr/lib/locale/en_US.utf8/LC_ADDRESS:
0xb7f40000:0xb7f41000
/usr/lib/locale/en_US.utf8/LC_TELEPHONE:
0xb7f41000:0xb7f42000
/usr/lib/locale/en_US.utf8/LC_MEASUREMENT:
0xb7f42000:0xb7f43000
/usr/lib/gconv/gconv-modules.cache:
0xb7f43000:0xb7f4a000
/usr/lib/locale/en_US.utf8/LC_IDENTIFICATION:
0xb7f4a000:0xb7f4b000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/libhyprt.so:
0xb7f4b000:0xb7f64000
0xb7f64000:0xb7f68000
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/libhythr.so:
0xb7f68000:0xb7f83000
0xb7f83000:0xb7f84000
[vdso]:
0xb7fb6000:0xb7fb7000
/lib/ld-2.7.so:
0xb7fb7000:0xb7fd1000
0xb7fd1000:0xb7fd3000
[stack]:
0xbfd4c000:0xbfd4e000
Stack trace:
0: 0xb7f597e8 hysock_read (hysock.c:2491)
1: 0x9603450e Java_org_apache_harmony_luni_platform_OSNetworkSystem_readDirect (OSNetworkSystem.c:391)
2: 0x9603439c Java_org_apache_harmony_luni_platform_OSNetworkSystem_read (OSNetworkSystem.c:341)
3: 0x9611ea18 stub::unknown
4: 0x9611e520 org/apache/harmony/luni/net/PlainSocketImpl::read (([BII)I): PlainSocketImpl.java:557
5: 0x95610659 org/apache/harmony/luni/net/SocketInputStream::read (()I): SocketInputStream.java:61
6: 0x95e5d9e6 SocketInputStream::test_getInputStream (()V): SocketInputStream.java:59
7: 0xb67da257 (:-1)
8: 0xb7553829 JIT_execute_method_default (ini_iA32.cpp:295)
9: 0xb6778018 DrlEMImpl::executeMethod(_jmethodID*, jvalue*, jvalue*) (DrlEMImpl.cpp:523)
10: 0xb6784f94 ExecuteMethod (em_intf.cpp:40)
11: 0xb754ecde vm_execute_java_method_array (ini.cpp:61)
12: 0xb7578510 hythread_suspend_enable (hythread_ext.h:605)
13: 0xb75797b1 CallVoidMethodA(JNIEnv_External*, _jobject*, _jmethodID*, jvalue*) (jni_method.cpp:231)
14: 0xb7559258 invoke_primitive_method (java_lang_reflect_VMReflection.cpp:187)
15: 0x9560a92c stub::unknown
16: 0x9560a827 java/lang/reflect/Method::invoke ((Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object: Method.java:317
17: 0x95e5d096 junit/framework/TestCase::runTest (()V): TestCase.java:154
18: 0x95e5cba5 junit/framework/TestCase::runBare (()V): TestCase.java:127
19: 0x95e5caf9 junit/framework/TestResult$1::protect (()V): TestResult.java:106
20: 0x95e5c9f4 junit/framework/TestResult::runProtected ((Ljunit/framework/Test;Ljunit/framework/Protectable;)V): TestResult.java:124
21: 0x95e5baf8 junit/framework/TestResult::run ((Ljunit/framework/TestCase;)V): TestResult.java:109
22: 0x95e5b9a4 junit/framework/TestCase::run ((Ljunit/framework/TestResult;)V): TestCase.java:118
23: 0x95e5b90a junit/framework/TestSuite::runTest ((Ljunit/framework/Test;Ljunit/framework/TestResult;)V): TestSuite.java:208
24: 0x95e5b6ff junit/framework/TestSuite::run ((Ljunit/framework/TestResult;)V): TestSuite.java:203
25: 0x95e5af8a org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestReference::run ((Lorg/eclipse/jdt/internal/junit/runner/TestExecution;)V): JUnit3TestReference.java:128
26: 0x95e5ac85 org/eclipse/jdt/internal/junit/runner/TestExecution::run (([Lorg/eclipse/jdt/internal/junit/runner/ITestReference;)V): TestExecution.java:38
27: 0x95e533cb org/eclipse/jdt/internal/junit/runner/RemoteTestRunner::runTests (([Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/junit/runner/TestExecution;)V): RemoteTestRunner.java:459
28: 0x95e531d2 org/eclipse/jdt/internal/junit/runner/RemoteTestRunner::runTests ((Lorg/eclipse/jdt/internal/junit/runner/TestExecution;)V): RemoteTestRunner.java:673
29: 0x95e50eb9 org/eclipse/jdt/internal/junit/runner/RemoteTestRunner::run (()V): RemoteTestRunner.java:386
30: 0x95e4e42c org/eclipse/jdt/internal/junit/runner/RemoteTestRunner::main (([Ljava/lang/String;)V): RemoteTestRunner.java:196
31: 0xb67da257 (:-1)
32: 0xb7553829 JIT_execute_method_default (ini_iA32.cpp:295)
33: 0xb6778018 DrlEMImpl::executeMethod(_jmethodID*, jvalue*, jvalue*) (DrlEMImpl.cpp:523)
34: 0xb6784f94 ExecuteMethod (em_intf.cpp:40)
35: 0xb754ecde vm_execute_java_method_array (ini.cpp:61)
36: 0xb75773d2 hythread_suspend_enable (hythread_ext.h:605)
37: 0xb75774c8 CallStaticVoidMethodV(JNIEnv_External*, _jobject*, _jmethodID*, char*) (jni_method.cpp:1552)
38: 0xb7577515 CallStaticVoidMethod(JNIEnv_External*, _jobject*, _jmethodID*, ...) (jni_method.cpp:1542)
39: 0x0804b004 main_runJavaMain (main.c:1341)
40: 0x08049cce invocation (main.c:744)
41: 0x080492a8 gpProtectedMain (main.c:393)
42: 0x0804b725 main (cmain.c:140)
43: 0xb7e01450 __libc_start_main (??:-1)
44: 0xb7e01450 __libc_start_main (??:-1)
45: 0xb7e0137d __libc_start_main (??:-1)
<end of stack trace>
Crashed module:
/home/bahamut/harmony/hy.5.git/deploy/jdk/jre/bin/libhyprt.so
(JNI native library)
VM attached threads:
[0x95afdb90] 'ReaderThread'
[0x95b7eb90] 'ref handler'
[0x95bffb90] 'finalizer'
[0x95dccb90] 'finalizer'
[0x95e4db90] 'profiler thread'
--->[0xb7ca18e0] 'main'
seems we have not check the validation of socket before read it.
Attachments
Attachments
Issue Links
- is cloned by
-
HARMONY-6131 [classlib][luni] check for invalid socket before I/O operations
- Closed