Re: Kernel bug in handling signals (bug 15615281)
Summary: My compiler generates programs that handle signals directly from the kernel without going through any of libc. Thus these programs use the kernel system calls to set up signal handlers. There appears to be a bug on 10.8 and later (64 bit kernels), where such programs hang when trying to handle any signals. This only appears to be the case when the program handling the signal is 32bit and is forked from a 64bit shell. See steps below for test case reproduction. Steps to Reproduce: 1. Download the attached executable. 2. Run the executable from a 32-bit shell: % arch -arch i386 sh -c './rtex_divzero06 1' This should produce the expected output: !DivideByZeroException 3. Run the executable from a 64-bit shell: % arch -arch x86_64 sh -c './rtex_divzero06 1' This unfortunately hangs on 10.8 and 10.9. Worse, on 10.9, it causes a kernel panic when trying to kill the program when it is launched directly from the shell: % ./rtex_divzero06 1 <hangs> <CTRL+C> causes a kernel panic Expected Results: See above. Program should print !DivideByZeroException. Actual Results: Program hangs on 10.8 and 10.9. When CTRL+C'ing the program, causes a kernel panic on 10.9. Version: 10.8 10.9 %uname -a Darwin <machine> 13.0.0 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64 x86_64 Notes: The program is a compiled test case from the Virgil programming language: https://code.google.com/p/virgil/ Configuration: This always occurs on 10.8 and 10.9. It never occurs on 10.6. Have not tested on 10.7. _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.... This email sent to site_archiver@lists.apple.com
participants (1)
-
sk