Live data from Hacker News

macOS Sonoma 14.4 might break Java on your machine

appleinsider.com

121–130 of 271 posts

Re: macOS Sonoma 14.4 might break Java on your machine

#122
post #28

Been saying this for as long as I’ve been using macOS: it is not a developer friendly OS and am close to the conclusion that this reputation is a psy-op. Yeah it’s pretty, it mostly works when the box is first turned on and the hardware is unmatched but macOS itself is actually subpar. QA seems second tier, things you’d except from other OSes like, I don’t know, using a third party second display are just bad experie…

I cannot believe that, on macOS, high cpu usage leads to audio buffer underruns and popping, like something from the 90s but on today's premium hardware. It's inexcusable. On a platform that is constantly touted as the best for audio work, DAWs etc no less.

changing the volume of the sound under high CPU load will also move the balance one side.

I often have to re-center the balance, it's driving me nuts.

Re: macOS Sonoma 14.4 might break Java on your machine

#123
post #106
post #104

Earlier quoted context omitted.

The difference, if I read gp correctly, is that an older major release would still get new security updates when necessary, but if you already are on the current major, which had been out without this problem for quite a while, you will only see security updates bundled with minor feature changes like the one that introduced the JVM incompatibility. Not really an Apple-specific problem, it could hit anyone who suppor…

No difference to me. It's an OS update. My policy is to wait before installing any OS update on my work Mac, whether its major or minor. Just wait at least a month. So far I have avoided all of these bullshit issues over several years of updates.

The difference is those who still waited on the major update ("almost 6 months") would still be able to jump on some 13.x.y security fix on short notice, without breaking their JVM, whereas people already on 14.x who can't work without JVM are cut off for the time being.

Re: macOS Sonoma 14.4 might break Java on your machine

#125
post #28

Been saying this for as long as I’ve been using macOS: it is not a developer friendly OS and am close to the conclusion that this reputation is a psy-op. Yeah it’s pretty, it mostly works when the box is first turned on and the hardware is unmatched but macOS itself is actually subpar. QA seems second tier, things you’d except from other OSes like, I don’t know, using a third party second display are just bad experie…

MacOS has bugs and inconsistencies everywhere. Some are bugs, some are inconsistent UX, only a few of them are "well... I just don't like it". An example: you cannot right click app-icons in the Docker in the mission control overview. The list of specific annoyances and bugs is likely in the 3 digits by now, and I've only used it for half a year. The worst of all was getting the M2 soft-bricked by an update, because…

Not to defend MacOS, but Windows is the no. 1 of incosistent UIs - by large. If you want a consistent UI, choose Linux.

Re: macOS Sonoma 14.4 might break Java on your machine

#126

> As a normal part of the just-in-time compile and execute cycle, processes running on macOS may access memory in protected memory regions. Prior to the macOS 14.4 update, in certain circumstances, the macOS kernel would respond to these protected memory accesses by sending a signal, SIGBUS or SIGSEGV, to the process. > With macOS 14.4, when a thread is operating in the write mode, if a memory access to a protected m…

Despite what the other commenters are saying, it is bizarre. 1. There is very little you can safely do in a signal handler. For a threaded application, that pretty much boils entirely down to setting a bit and leaving it at that. If they did anything more, the behavior is undefined. 2. The memory state that a program receiving a SIGSEGV in is often undefined/garbage, and attempting to execute further at this point is…

>There is very little you can safely do in a signal handler

You can actually do pretty much anything you want, it's just the C library that uses a lot of global state and internal memory allocations, which messes things up. The core syscall API and any reentrant code you write yourself are not affected.

>The memory state that a program receiving a SIGSEGV in is often undefined/garbage

That may be true for arbitrary segfaults caused by bugs, but the JIT has 100% control over what instructions to emit, it is not restricted by ABIs or platform-specific issues, so there is no problem to use SEGV as a signaling mechanism.

Re: macOS Sonoma 14.4 might break Java on your machine

#127
post #28

Been saying this for as long as I’ve been using macOS: it is not a developer friendly OS and am close to the conclusion that this reputation is a psy-op. Yeah it’s pretty, it mostly works when the box is first turned on and the hardware is unmatched but macOS itself is actually subpar. QA seems second tier, things you’d except from other OSes like, I don’t know, using a third party second display are just bad experie…

I cannot believe that, on macOS, high cpu usage leads to audio buffer underruns and popping, like something from the 90s but on today's premium hardware. It's inexcusable. On a platform that is constantly touted as the best for audio work, DAWs etc no less.

Thought the popping was a Rosetta 2 bug as I had only noticed it running x86 software on m2 pro.

Your explanation makes a lot more sense as x86 is probably the only time I’m pushing the cpu usage high enough.

The popping is darn annoying

Re: macOS Sonoma 14.4 might break Java on your machine

#128
post #55

So this will break IDEs and anything that uses the JVM natively on macOS. But if I’m reading the bug report right, should leave dockerized JVM services intact? This is why most enterprise workplace tech teams don’t roll out any OS level updates immediately. Regardless of whether they are on windows or macOS. Also a good idea to disable automatic updates on all devices that you use daily.

Yeah, I was also wondering what happens to JVM within docker. I don't really know enough about how deep the virtualization goes... . On the other hand, I'd find it difficult if CPU level signal handling would be emulated within MacOS to fit what Linux expects to happen...

Docker on MacOS runs through a Linux VM. Native containerization on MacOS is so badly supported many container runtimes don't even try. E.g. Podman on MacOS also runs through a Linux VM.

Re: macOS Sonoma 14.4 might break Java on your machine

#129

Earlier quoted context omitted.

MacOS has bugs and inconsistencies everywhere. Some are bugs, some are inconsistent UX, only a few of them are "well... I just don't like it". An example: you cannot right click app-icons in the Docker in the mission control overview. The list of specific annoyances and bugs is likely in the 3 digits by now, and I've only used it for half a year. The worst of all was getting the M2 soft-bricked by an update, because…

Not to defend MacOS, but Windows is the no. 1 of incosistent UIs - by large. If you want a consistent UI, choose Linux.

Linux can be consistent if you reject all but applications built in your desktops toolkit of choice. Which means you're missing out on a lot of applications.

Re: macOS Sonoma 14.4 might break Java on your machine

#130
post #61

Earlier quoted context omitted.

>> As a normal part of the just-in-time compile and execute cycle This means a workaround is running java with -Djava.compiler=NONE, no?

A better choice would be -Xrs which keeps optimizations enabled, but disables use of SEGV.

This disables use of all signal handlers, which means Java apps will also e.g. fail to quit cleanly in response to issuing SIGQUIT, or hitting ^C at the terminal. Better than "no workaround whatsoever" but far from ideal!
Post reply on HN