Hacker News new | ask | show | jobs
by fifteen1506 820 days ago
The change of a SIGSEGV to a SIGKILL, seriously?
2 comments

And, why not? macOS is Apple’s IP and they have all rights to do with it as they want. Buy the way, Chrome/Node.js JavaScript engine uses JIT compilation too. Are they affected?
This breaks POSIX compatibility, which is basically saying FU to how a lot of developers expect to interact with an operating system for decades now.
It is not obvious to me that this breaks POSIX compatibility. The kernel may choose to signal a process with SIGSEGV on a memory protection violation but I can't find anything that suggests this is required.

Last I checked, macOS formally maintains POSIX certification. Linux is not POSIX compliant, so I wouldn't use Linux as the measure of what is correct behavior under POSIX.

POSIX.1-2017 specification. Section titled "Memory Protection"

https://pubs.opengroup.org/onlinepubs/9699919799/functions/V...

Maybe I'm being pedantic but as far as I can tell that document doesn't say when a SIGKILL can or can't be issued. So it seems like it would be valid to issue a SIGKILL at any time the kernel wants. Obviously, that's probably not users/programmers want but it seems to technically meet the specification you list.
It's not random. It is occurring in response to protected memory access. Violates the spec.
Ah yes that is fairly clear, thanks, I was not able to find that. A plausible interpretation is that the kernel still reserves the right to terminate the process at anytime, including immediately after a general protection fault. Still an unexpected behavior, much like the Linux OOM killer.
2017? Wiki says macOS are UNIX 03 certified ;)
No. MacOS is UNIX Certified. This is a bug in MacOS. Breaks POSIX compliance.
macOS breaks POSIX compliance at many levels. It’s Unix only on paper, lol.
It's Apple saying "What part of 'you cannot write to this page of memory don't you understand?"