Can someone verify that the following scenario will cause a core dump on
Solaris 2.7?

Setup: Solaris 2.7, Tcl 8.2.3, TclBlend 1.2.6, JDK 1.2.2
Steps: Start 'jtclsh' and type the following commands

package require java
catch {set x [exec whoami]}
java::load -classpath foo bar

------------------------------------------------

In JDK 1.2.2, the JVM uses a signal handler to catch SIGSEGV.  "package
require java" sets up this signal handler in the process.  However, after
"exec whoami", the parent process loses the signal handler.  I put debug
printf in the code "TclpCreateProcess(...)" in "tclUnixPipe.c" file.  It
seems that after the "vfork()" call, only the child process is retaining the
signal handler.  The parent process no longer has the signal handler.

  // signal handler OK
  pid = vfork();

  // signal handler OK in child process
  // signal handler reverted to SIG_DFL in the parent process

Losing the signal handler causes the process to core dump later on when
accessing certain Java code.

-- Jiang Wu
   [EMAIL PROTECTED]


----------------------------------------------------------------
The TclJava mailing list is sponsored by Scriptics Corporation.
To subscribe:    send mail to [EMAIL PROTECTED]  
                 with the word SUBSCRIBE as the subject.
To unsubscribe:  send mail to [EMAIL PROTECTED] 
                 with the word UNSUBSCRIBE as the subject.
To send to the list, send email to '[EMAIL PROTECTED]'. 
An archive is available at http://www.mail-archive.com/tcljava@scriptics.com

Reply via email to