On 17 May 2013, at 10:46, Arjun SM <arjun.sm@gmail.com> wrote:
I have an issue with my daemon taking 100% cpu when left overnight. (Daemon undergoing stress testing at the moment). I am unable to narrow down the issue.
The daemon is triggering a memory access exception (SIGSEGV or SIGBUS) when freeing memory (tiny_malloc_from_free_list), which it catches as a signal (_sigtramp), and in the signal handler it call APIs that aren't signal safe (std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)) which then deadlock. The list of APIs that are guaranteed to be signal safe is vanishingly small; see <x-man-page://2/sigaction> for details. My best guess is that you have your own in-process crash reporter. That's a bad idea in general, and seems to be the cause of this hang. If you didn't catch the signal, it would've been caught by the system-wide out-of-process crash reporter, which would give you a nice crash log. Share and Enjoy -- Quinn "The Eskimo!" <http://www.apple.com/developer/> Apple Developer Relations, Developer Technical Support, Core OS/Hardware _______________________________________________ Do not post admin requests to the list. They will be ignored. Macnetworkprog mailing list (Macnetworkprog@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/macnetworkprog/site_archiver%40lists... This email sent to site_archiver@lists.apple.com
participants (1)
-
Quinn "The Eskimo!"