Live data from Hacker News

macOS Sonoma 14.4 might break Java on your machine

appleinsider.com

21–30 of 271 posts

Re: macOS Sonoma 14.4 might break Java on your machine

#21

> 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…

That's actually a pretty normal way to do things. Optimization for JITting, let the CPU hardware to do the heavy lifting instead of putting conditional jumps everywhere.

It's useful for other things as well. I've used SIGSEGV to emulate hardware interrupts. Normal execution wouldn't trap and there's no need for tests + branches (= normally no slowdown), but when an interrupt occurs a specific often accessed page is marked unreadable.

Re: macOS Sonoma 14.4 might break Java on your machine

#22

Maybe the Oracle blog post [1] would be a better link than the Apple Insider article, which says "The problem does not affect most typical Mac users, as Java was deprecated for the Mac back in 2012." [1] https://blogs.oracle.com/java/post/java-on-macos-14-4

I think they're confusing the Java plugin for websites with the normal Java runtime.

Re: macOS Sonoma 14.4 might break Java on your machine

#23
post #7

Earlier quoted context omitted.

[flagged]

FTFA: > The issue was not present in the early access releases for macOS 14.4, so it was discovered only after Apple released the update. There were some security fixes that were marked as under active exploitation in macOS 14.4, so my money is on those landing very steep close to the release date and this being fallout from that.

Please read the actual bugreport instead of an article written my Oracle's PM who really does not want the crap on his account.

Re: macOS Sonoma 14.4 might break Java on your machine

#24
post #7

Earlier quoted context omitted.

[flagged]

FTFA: > The issue was not present in the early access releases for macOS 14.4, so it was discovered only after Apple released the update. There were some security fixes that were marked as under active exploitation in macOS 14.4, so my money is on those landing very steep close to the release date and this being fallout from that.

FTBR:

"It is also successful on the previous versions of Sonoma" (no mention of EA)

"It could not be reproduced on 23-ea+13, 22+36-2370" (EA versions of Java)

Re: macOS Sonoma 14.4 might break Java on your machine

#25

Earlier quoted context omitted.

[flagged]

So I can release breaking changes to my API and expect consumers (who are software suppliers themselves) and it's their fault for not instantly updating their code? How is this not Apple when they were the ones that broke it?

Apple should not be at fault! As simple as that.

Re: macOS Sonoma 14.4 might break Java on your machine

#26

> 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 at best unsafe, at worst trampling on state further, continuing execution in a broken state and destroying all evidence that would be useful for debugging - whereas a coredump preserves the state at the time the issue occurs.

There are cases where you need to catch SIGBUS, such as if an anonymous file has been truncated after you mmap'ed it.

Re: macOS Sonoma 14.4 might break Java on your machine

#27
I have two emails in my work Inbox in this order.

One that says don't update mac os to avoid breaking Java. Another that essentially says upgrade macos to latest version within x days else the issue will be escalated.

It is going to be quite a hassle for IT teams across companies to deal with this problem.

Re: macOS Sonoma 14.4 might break Java on your machine

#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 experiences. Docker sucks, posix compatibility is technically there but isn’t really useful, the thing randomly loses network and only rebooting fixes it. I reboot my corporate Mac more often than I rebooted my windows enterprise laptop.

Re: macOS Sonoma 14.4 might break Java on your machine

#29
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’ve been using macOS as my primary development environment for the past ~4 years and have loved every minute of it. I haven’t run into any of the issues you’ve mentioned thankfully, and docker works absolutely fine for my use cases. I can’t see myself ever switching for any reason.
Post reply on HN