I find it difficult to imagine how a change like this (sending a SIGKILL to the process instead of SIGSEGV on a page fault) can be done in the final release and not in one of the EA releases or betas. It is clearly a breaking change with no easy workaround (since SIGKILL cannot be caught), for a behaviour which is well defined by POSIX.<p>Even if you momentarily ignore the reasons why someone thought this could be a good idea, why not do it in one of the pre-releases or betas??? Doesn’t look like the kind of thing you’d want to do in a last minute change.<p>The real problem in my opinion is the fact that you cannot go back after a macOS upgrade. So if something like this happens, you literally have no option but waiting for Apple to release a fix, if they want to do it at all.
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.
I have two emails in my work Inbox in this order.<p>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.<p>It is going to be quite a hassle for IT teams across companies to deal with this problem.
> The problem does not affect most typical Mac users, as Java was deprecated for the Mac back in 2012.<p>Haha, this article is quite something :D<p>The Java Applet was removed from the safari browser. That is unrelated to java apps running on the desktop.
> 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.<p>> With macOS 14.4, when a thread is operating in the write mode, if a memory access to a protected memory region is attempted, macOS will send the signal SIGKILL instead.<p>What is bizarre to me is that Oracle relied on receiving SIGSEGV as normal mode of operation. That should have been a hint where things are going, no?
I'm on 14.4 and using Jetbrain's IDE. So -this- is the reason my IDE randomly crashes. I'd been chalking it up to 14.4 but didn't have any specifics.<p>It's mostly fine, though. The crashes are rare, and since everything auto-saves, you're not really losing anything. It's just an "oh, okay." moment.<p>Obviously it'll be good when it's fixed, but on my personal list of impactful bugs, this doesn't crack the top 10.
I find this hard to accept. Doesn't Apple do pre-release testing of their updates? How the release process looks like?<p>News like these are the major reason why I apply updates only after long periods of waiting if anything blows up for others. Why companies use their userbase as testers?
So I ranted about macOS a month ago here -- <a href="https://news.ycombinator.com/item?id=39369788">https://news.ycombinator.com/item?id=39369788</a> -- and in the meantime my Alacritty and iTerm2 began doing cold start up for 2-3 seconds now (granted they get cached so the cold start delay does not happen more than two or three times a day) and I am just left scratching my head and wondering WTF are the macOS devs thinking.<p>As other posters said: macOS might have had an edge over Windows and Linux before but that's no longer the case for a few years now. I'll definitely be looking for ways to use 5K display with my Linux laptop and will likely make a full transition to Linux in the next year or two.<p>Macs have amazing displays. So I'll use mine as thin clients I suppose. My eyes are happier with an Apple display so I'll use them for that alone.<p>Apple can still turn this around but their bogus security claims that serve mostly to annoy devs is them shooting themselves in the foot and making themselves a very uncomfortable bed to sleep in just some very short years in the future. Hope somebody at HQ understands that and is able to see the problem before too many people leave.
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."<p>[1] <a href="https://blogs.oracle.com/java/post/java-on-macos-14-4" rel="nofollow">https://blogs.oracle.com/java/post/java-on-macos-14-4</a>
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?<p>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.
“The problem does not affect most typical Mac users, as Java was deprecated for the Mac back in 2012.”<p>This is misleading. What was deprecated was the browser Java plug-in distributed by Apple. That’s very different from “deprecating Java”.
Has anyone here actually experienced the SIGKILL?
M1 Pro Max on 14.4 for ten days now, using Eclipse & Tomcat & whatever Java all the time, and still waiting for it to happen...
Sonoma has been trash so far. I faced an issue where they changed they way linking is done in the new Xcode version and that broke builds for erlang. This is so bad that programs that run on versions of OTP prior to 25 don’t work on the m1 macs anymore. At least last time I checked. Yes, this affects Xcode primarily but still it makes one think what the hell is going on over there.<p>They basically bamboozled us with fancy wallpapers and gave us this immensely substandard software.
Has anyone as yet designed a work-around?
My thought is to (at least partially) avoid JIT compiliations.
This will of course greatly reduce performance (50 times slower?). But with GUI programs, such as Eclipse, it will hopefully hardly be noticeable.
This is obviously a problem, but it does appear to be an intermittent one, and not easy to provoke for me. I upgraded last week, and have seen precisely one unexpected exit of a JVM process, and I think that memory analysis toolkit running out of memory, and I have been running a lot of stuff.
Good thing that the changelog for the 3gb update only mentions emoji and podcasts:<p>macOS Sonoma 14.4 introduces new emoji as well as other features, bug fixes and security updates for your Mac.<p>Emoji<p>• New mushroom, phoenix, lime, broken chain and shaking heads emoji are now available in emoji keyboard
• 18 people and body emoji support facing the opposite direction<p>This update also includes the following improvements and bug fixes:<p>• Podcasts Episode text can be read in full, searched for a word or phrase, clicked to play from a specific point, and used with accessibility features such as Text Size, Increase Contrast and VoiceOver
• Safari Favourites Bar adds an option to show only icons for websites
I'm not comfortable upgrading my macbook to test this; but, if you migrate your java build pipeline to use a docker container for the jdk, do you think it might not run into this problem?
MacOS is the worst OS on planet. I lost all my data after MacOS updated to 14.x from 13.x, because the laptop stopped starting after update and apple employees have to factory reset the entire system. And unlike any other laptop, where you can just remove hard drive and save your data, this is not possible on Apple devices, because HDD cannot be removed... Also since 14.x in on my laptop, it restarts EVERY SINGLE DAY. I also have a lot of other issues, but I will not write a book here. This was the last time I bought something from Apple.