You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Oliver Deakin (JIRA)" <ji...@apache.org> on 2009/07/22 16:55:15 UTC

[jira] Resolved: (HARMONY-6275) [jdwp][java6] Crash during shutdown on Linux

     [ https://issues.apache.org/jira/browse/HARMONY-6275?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Oliver Deakin resolved HARMONY-6275.
------------------------------------

       Resolution: Fixed
    Fix Version/s: 5.0M11
         Assignee: Oliver Deakin

Fixed at repo revision r796755.

TCPIPSocketTran_Accept() in SocketTransport.cpp has a do-while loop with a possible exit condition of envServerSocket being NULL. However, we do not check this exit condition after the do-while loop and then pass envServerSocket into SetSocketBlockingMode(), which was causing the crash. Adding a NULL check and returning an error if true fixes the problem.

> [jdwp][java6] Crash during shutdown on Linux
> --------------------------------------------
>
>                 Key: HARMONY-6275
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6275
>             Project: Harmony
>          Issue Type: Bug
>          Components: JDK
>            Reporter: Oliver Deakin
>            Assignee: Oliver Deakin
>             Fix For: 5.0M11
>
>
> Executing a command such as "java -Xrunjdwp:transport=dt_socket,server=y,suspend=n HelloWorld" results in a crash during shutdown:
> Listening for transport dt_socket at address: 59572
> HelloWorld
> Signal reported: GENERAL_PROTECTION_FAULT
> Registers:
>     EAX: 0x00000000, EBX: 0xb7f3011c, ECX: 0xb7f1632c, EDX: 0x00000000
>     ESI: 0x00000000, EDI: 0x0860c9f0, ESP: 0x95cc4f40, EBP: 0x95cc4f68
>     EIP: 0xb7f266bc
> Command line:
> target/hdk/jdk/jre/bin/java -Xrunjdwp:transport=dt_socket,server=y,suspend=n HelloWorld
> Working directory:
> /home/odeakin/svn-checkouts/fed6
> Environment variables:
> TERM=xterm
> SHELL=/bin/bash
> SSH_CLIENT=9.20.183.162 4743 22
> CVSROOT=:pserver:odeakin@clear.hursley.ibm.com:/home/cvs/clear
> SSH_TTY=/dev/pts/1
> USER=odeakin
> 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:
> MAIL=/var/mail/odeakin
> PATH=/home/odeakin/apache-ant-1.6.5/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/opt/j950/bin
> PWD=/home/odeakin/svn-checkouts/fed6
> JAVA_HOME=/opt/j950
> EDITOR=vi
> LANG=C
> SHLVL=1
> HOME=/home/odeakin
> LANGUAGE=en_GB:en_US:en_GB:en
> LOGNAME=odeakin
> SSH_CONNECTION=9.20.183.162 4743 9.20.181.102 22
> DISPLAY=:0
> _=target/hdk/jdk/jre/bin/java
> OLDPWD=/home/odeakin/svn-checkouts/fed6/working_classlib
> LD_LIBRARY_PATH=/home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/default:/home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/:
> Loaded modules:
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/java:
>         0x08048000:0x0804d000
>         0x0804d000:0x0804e000
> [heap]:
>         0x0804e000:0x0862b000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/libdt_socket.so:
>         0x95d46000:0x95d4a000
>         0x95d4a000:0x95d4b000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/libhyniochar.so:
>         0x9600d000:0x96161000
>         0x96161000:0x96189000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/libhyarchive.so:
>         0x96189000:0x96195000
>         0x96195000:0x96196000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/libhyluni.so:
>         0x96196000:0x961cb000
>         0x961cb000:0x961cc000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/libhyzlib.so:
>         0x961cc000:0x961de000
>         0x961de000:0x961df000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/libjdwp.so:
>         0x962df000:0x96336000
>         0x96336000:0x96338000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/default/libgc_gen_uncomp.so:
>         0xb6642000:0xb668d000
>         0xb668d000:0xb668f000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/default/libjitrino.so:
>         0xb6690000:0xb68d5000
>         0xb68d5000:0xb68e2000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/default/libem.so:
>         0xb6945000:0xb696d000
>         0xb696d000:0xb696e000
> /lib/libnss_files-2.7.so:
>         0xb69ee000:0xb69f7000
>         0xb69f7000:0xb69f9000
> /lib/libnss_nis-2.7.so:
>         0xb69f9000:0xb6a01000
>         0xb6a01000:0xb6a03000
> /lib/libnsl-2.7.so:
>         0xb6a03000:0xb6a16000
>         0xb6a16000:0xb6a18000
> /lib/libnss_compat-2.7.so:
>         0xb6a1a000:0xb6a21000
>         0xb6a21000:0xb6a23000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/libhynio.so:
>         0xb6a26000:0xb6a28000
>         0xb6a28000:0xb6a29000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/default/libicudata.so.34:
>         0xb6b4d000:0xb73c1000
>         0xb73c1000:0xb73c2000
> /usr/lib/libxml2.so.2.6.32:
>         0xb73c2000:0xb74f5000
>         0xb74f5000:0xb74fa000
> /usr/lib/libz.so.1.2.3.3:
>         0xb74fb000:0xb750f000
>         0xb750f000:0xb7510000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/default/libicuuc.so.34:
>         0xb7510000:0xb7611000
>         0xb7611000:0xb7619000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/default/libharmonyvm.so:
>         0xb7619000:0xb7757000
>         0xb7757000:0xb77b7000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/default/libch.so:
>         0xb79ed000:0xb79f9000
>         0xb79f9000:0xb7a57000
> /lib/libgcc_s.so.1:
>         0xb7c8d000:0xb7c99000
>         0xb7c99000:0xb7c9a000
> /lib/libpthread-2.7.so:
>         0xb7c9b000:0xb7caf000
>         0xb7caf000:0xb7cb1000
> /lib/librt-2.7.so:
>         0xb7cb3000:0xb7cba000
>         0xb7cba000:0xb7cbc000
> /usr/lib/libstdc++.so.6.0.10:
>         0xb7cbc000:0xb7d9f000
>         0xb7d9f000:0xb7da2000
>         0xb7da2000:0xb7da4000
> /lib/libdl-2.7.so:
>         0xb7daa000:0xb7dac000
>         0xb7dac000:0xb7dae000
> /lib/libm-2.7.so:
>         0xb7dae000:0xb7dd2000
>         0xb7dd2000:0xb7dd4000
> /lib/libc-2.7.so:
>         0xb7dd4000:0xb7f0c000
>         0xb7f0c000:0xb7f0d000
>         0xb7f0d000:0xb7f0f000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/default/libvmi.so:
>         0xb7f12000:0xb7f16000
>         0xb7f16000:0xb7f17000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/libhyprt.so:
>         0xb7f18000:0xb7f30000
>         0xb7f30000:0xb7f34000
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/libhythr.so:
>         0xb7f35000:0xb7f50000
>         0xb7f50000:0xb7f51000
> /lib/ld-2.7.so:
>         0xb7f83000:0xb7f9d000
>         0xb7f9d000:0xb7f9f000
> [stack]:
>         0xbfa9c000:0xbfa9f000
> [vdso]:
>         0xffffe000:0xfffff000
> Stack trace:
>   0: 0xb7f266bc  hysock_set_nonblocking (hysock.c:2723)
>   1: 0x95d470fb  SetSocketBlockingMode(_jdwpTransportEnv*, hysocket_struct*, bool) (SocketTransport.cpp:-1)
>   2: 0x95d479f5  TCPIPSocketTran_Accept(_jdwpTransportEnv*, long long, long long) (SocketTransport.cpp:-1)
>   3: 0x963287b0  jdwp::TransportManager::Connect() (TransportManager_pd.cpp:-1)
>   4: 0x9630f7ee  jdwp::PacketDispatcher::Run(JNIEnv_External*) (TransportManager_pd.cpp:-1)
>   5: 0x963110a6  jdwp::PacketDispatcher::StartFunction(jvmtiEnv_struct*, JNIEnv_External*, void*) (TransportManager_pd.cpp:-1)
>   6: 0xb7704846  jthread_wrapper_start_proc(void*) (thread_java_basic.cpp:167)
>   7: 0xb7f414b8  thread_start_func (thread_os.c:106)
>   8: 0xb7ca0f3b  start_thread (??:-1)
>   9: 0xb7e9ebee  __clone (??:-1)
> <end of stack trace>
> Crashed module:
> /home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/libhyprt.so
> (JNI native library)
> VM attached threads:
> --->[0x95cc5b90]  '_jdwp_PacketDispatcher'
>     [0x95d45b90]  '_jdwp_EventDispatcher'
>     [0xb7c8c8e0]  'destroy'
> Segmentation fault
> A bit of debugging shows that we're getting into the hysock calls with a null pointer for the socket struct, which probably means that it's been freed as part of the JDWP shutdown phase before we've finished using it.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.