Live data from Hacker News

macOS Sonoma 14.4 might break Java on your machine

appleinsider.com

131–140 of 271 posts

Re: macOS Sonoma 14.4 might break Java on your machine

#131
post #123
post #106

Earlier quoted context omitted.

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.

Still no difference. I would not update to 13.x.y until at least a month later. Defer all updates.

Re: macOS Sonoma 14.4 might break Java on your machine

#132
post #52

Earlier quoted context omitted.

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)

Right so it’s present in all shipping versions of Java back to at least 8, and the reproduction case works fine on Sonoma pre-14.4. Ergo, Apple changed something in 14.4 (a minor patch release), and it broke something in Java. I’m not sure what point you’re trying to make. It’s possible that Java was doing something very weird, maybe undocumented/unsupported; but it’s not clear how this is anything other than Apple m…

Yes, pre 14.4 (14.3.1 to be exact) but NOT early access of macos. The whole thread and Oracle's blogpost is about that it "suddenly broke but it was still working in a preview release of macos".

Java DOES work with an EA version of Java according to the bugtrackers.

Oracle's PM doesn't know what's going on and is mixing things up.

Re: macOS Sonoma 14.4 might break Java on your machine

#133
post #77

Earlier quoted context omitted.

It's documented and part of the interface for POSIX: > Write attempts to memory that was mapped without write access, or any access to > memory mapped PROT_NONE, shall result in a SIGSEGV signal. > > References to unmapped addresses shall result in a SIGSEGV signal. How a SIGSEGV can be handled by the program to continue execution normally need some OS specific code. For Linux there's also userfaultfd to suit this ne…

> How a SIGSEGV can be handled by the program to continue execution normally need some OS specific code A JVM's use of SIGSEGV might include platform-dependent details for recovery. But for simple application usages (e.g. eliding inlined bounds checks in a performance critical loop operating on an array) longjmp can suffice for recovery. POSIX very carefully defines async-safety and longjmp to permit jumping out of a…

> ...such as that the signal did not interrupt a non-async-signal-safe function.

So you have to disable signals prior to doing anything "non-async-signal-safe" and re-enable them thereafter? That's a pretty big "but"...

Re: macOS Sonoma 14.4 might break Java on your machine

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

Some people think that I am crazy when I said that I would prefer to use Linux instead of the MacOS in a MacBook if this was an option for me. I constantly have network issues and UI issues that I can just recover after reboot the system. But the big problem is the MacOS experience, I really hate it.

Re: macOS Sonoma 14.4 might break Java on your machine

#135

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.

Windows has a mess of legacy UI that are never fully replaced.

They could have gone down the path of translating the windows UI APIs, though I think it's better that they left it as is. The bigger issue however, is that there are different systems depending on what it is you want to configure, and it's all ducktaped in an ancient registry that I'm just amazed only breaks as often as it does.

Not to mention that the thing Windows was supposed to always be better at, was driver support. On windows, you have to manually source them, and try as best to avoid all the bloatware that comes with. Windows itself might also decide to replace a driver with an older one (version, release date...). WiFi drivers didn't work last time I upgraded the mobo either.

As for Linux. Completely agree. Gnome is consistent, and gets out of the way often enough. There are some annoyances there too. I have my 90 y/o grandma use Linux/Gnome, because that's what Just Works these days.

Re: macOS Sonoma 14.4 might break Java on your machine

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

Mac OS UX is just bad. I've been using it daily for a few years already, but I still struggle to perform basic tasks. And by "basic" I mean "How do I move a file?" or "How do I go one folder up?". Sure, I can read about this, but this shouldn't require me to read a manual.

Re: macOS Sonoma 14.4 might break Java on your machine

#137

Earlier quoted context omitted.

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.

I've been using MacOS for about 5 years, as it is the machine issued by my workplace. And I hate it. It's so much worse than Linux that it's not even a joke. Hell, I think I would have preferred to work on Windows with WSL than this crap. The hardware is not even that good. I presume people like it because it looks slick and serves as a status symbol.

I didn’t realize you were joking until the second paragraph.

Re: macOS Sonoma 14.4 might break Java on your machine

#138
post #99

Earlier quoted context omitted.

I just set up a windows box for some development last week. Spent 2-3 hours per day on it (on work not setup). So far I haven't managed to turn off the firewall scare popups, I did manage to remove that crap in the task bar that pops up the weather and selected news covering half the screen if you hover in the wrong place, I may or may not have turned off the OneDrive upsell, and I also got a full screen message to u…

Let's not pretend that Mac OS is immune to a bit of the old upsell too. Core OS that features only work when paired with iPad/iPhone. iCloud is actively difficult not to use. The sidebar with the Apple shares and news apps.

> iCloud is actively difficult not to use.

Agreed, but if you turn it off it stays off, it doesn't pop up something every day.

> The sidebar with the Apple shares and news apps.

I kinda know it's there, but I can't remember when I last activated it by mistake *. But then I turn off all notifications except app icon badges so I don't use it at all otherwise.

> Core OS that features only work when paired with iPad/iPhone.

Which ones? Doing phone calls and texts from your laptop? I suppose that requires control of the OS on both sides to work well. I don't know what's available on the Android side.

If there are other features that work when paired with apple mobiles and don't work with Android, I don't know about them.

* Last time I've seen that bar I think it was my cat's butt on the F keys :) She taught me a lot of keyboard shortcuts.

Re: macOS Sonoma 14.4 might break Java on your machine

#139

Earlier quoted context omitted.

It's not "bizarre" at all. It's a direct translation of hardware CPU traps to userspace API. That's what signal handers are : virtualized interrupts! There's nothing wrong with using signals to achieve performance levels otherwise not possible.

But this also means that signal handlers are running in what's effectively a separate thread of execution - even in otherwise single-threaded code! So the things you're allowed to do safely in your signal handler are very limited, they boil down to atomically tweaking some lightweight data structure (or even just setting a flag) that the main code will look at later and behave accordingly.

While it's true that async-signal-safe programming bears some similarities to multi-threaded programming, an interrupt really isn't the same as a thread. Also, there's a lot more you can do in a signal handler than just set a flag: you can longjmp or even make calls to regular functions.

For example, one kind of program organization that used to be more common in Unix but that remains legal involves keeping signals masked all the time except around certain blocking system calls, e.g. ppoll, that atomically unblock signals and wait. In such a program, a signal can arrive only inside the blocking system call and so the handler can call regular functions without the usual strictures of asynchronous signal safety. (Consider responding to SIGWINCH, which tells you about changing terminal size.)

Synchronous signals are also special in that they're, well, synchronous. That means that in the signal handler you can examine the target memory address or instruction pointer and take action specific to a given spot in your program --- e.g. longjmp to an error handler.

All of this is useful, safe, and legal under POSIX. The main problems with POSIX signals are that, 1) as this thread underscores, most people don't understand them, and 2) signal handlers are process global and hard to share. (Consider if you're running two VMs in a process and each wants to use a SIGSEGV GC safe point trick.)

(userfaultfd, sadly, requires more system calls than a synchronous signal handler to handle anomalous memory access.)

We should be enhancing POSIX signals to make them easier to share, not casting aspersions on them.

Re: macOS Sonoma 14.4 might break Java on your machine

#140

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

I think it is used to avoid doing null checks on every pointer access.
Post reply on HN