Reverting to an older version of Safari Technology Preview

Apple try to make it impossible to revert to a prior version of Safari Technology Preview (STP) – and they also try to force updates to the latest version immediately, without user consent. This is bafflingly hostile behaviour for what is supposed to be a beta version of the browser that users voluntarily, out of charity, help Apple debug.

It’s also highly problematic when new versions are flat-out broken. Starting with around STP 124 I started experiencing consistent crashes on some websites, making them completely unusable in STP. For the time-being I chose to use them separately in regular Safari, on the assumption that these egregious issues would be quickly fixed in the next STP version. Well, three versions later and those bugs have not been fixed. Not even close.

Now, with STP 126, it crashes on launch. Every time.

Well, thankfully there are places where you can obtain the prior versions, even if Apple won’t provide them. My preference is The Wayback Machine – you can start with this calendar, from which you can pick a date and (with any luck) the download page for that date will point to the version you want. You then download the disc image, delete the current copy of STP from your Applications folder (otherwise the pkg installer for the older version will refuse to work), and re-install the older version.

Once you’ve done that, make sure to turn Automatic Updates off in System Preferences, otherwise Apple will just trash your working version with the broken one again.

If you appreciate that – I certainly did; I like having a web browser that doesn’t crash on launch – remember that The Wayback Machine is run by the Internet Archive, a non-profit group, and they can always use monetary support as well as volunteers.

P.S. Yes, I’m aware that their donation page is sadly a bit janky. If you’re a web developer or designer, maybe you could volunteer some of your time to improve it? ūüėĀ

Apple Mail crashes on launch if connection logging is enabled

This was a fun one.  Mail started crashing on launch for absolutely no apparent reason Рnothing had changed to its config or similar in a long time.  The crash logs were all fingering an identical culprit Р-[IMAPTaskManager secondaryIdleMailboxName] called on the wrong GCD queue:

Process: Mail [19884]
Path: /Applications/Mail.app/Contents/MacOS/Mail
Identifier: com.apple.mail
Version: 11.3 (3445.6.18)
Build Info: Mail-3445006018000000~4
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Mail [19884]
User ID: …

Date/Time: 2018-04-19 16:44:45.717 -0700
OS Version: Mac OS X 10.13.4 (17E199)
Report Version: 12
Anonymous UUID: …

Sleep/Wake UUID: …

Time Awake Since Boot: 94000 seconds
Time Since Wake: 530 seconds

System Integrity Protection: enabled

Crashed Thread: 13 Dispatch queue: Task Manager Serialization Queue (QOS: UNSPECIFIED)

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This method should only be called on the serialization queue'
terminating with uncaught exception of type NSException
abort() called

Application Specific Backtrace 1:
0 CoreFoundation 0x00007fff55da96bb __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00007fff7d4c1942 objc_exception_throw + 48
2 CoreFoundation 0x00007fff55daf2a2 +[NSException raise:format:arguments:] + 98
3 Foundation 0x00007fff57ee7340 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 193
4 IMAP 0x00007fff6fe88959 -[IMAPTaskManager secondaryIdleMailboxName] + 216
5 IMAP 0x00007fff6fe880cb -[IMAPTask mailboxIsUserVisibleUsingDataSource:] + 180
6 IMAP 0x00007fff6fe6ab68 -[IMAPMailboxSyncTask _nextNetworkPriorityAndOperation:reservedNetworkPriority:] + 164
7 IMAP 0x00007fff6fe6c4ba -[IMAPMailboxSyncTask recalculatePriorities] + 398
8 IMAP 0x00007fff6fe67dd9 -[IMAPMailboxSyncTask initWithDataSource:taskManager:imapMailbox:fromStatus:forceFullSync:] + 766
9 IMAP 0x00007fff6fe931f7 -[IMAPTaskManager _syncMailboxWithDataSource:withIMAPMailbox:fromStatus:forceFullSync:userInitiated:] + 370
10 IMAP 0x00007fff6fe92e68 -[IMAPTaskManager syncMailboxWithDataSource:withIMAPMailbox:fromStatus:forceFullSync:userInitiated:] + 240
11 IMAP 0x00007fff6fe9631a -[IMAPTaskManager didAddMessagesWithUnknownUID:toDataSource:] + 872
12 Foundation 0x00007fff57e4a5df __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 7
13 Foundation 0x00007fff57e4a441 -[NSBlockOperation main] + 68
14 Foundation 0x00007fff57e488ee -[__NSOperationInternal _start:] + 778
15 Foundation 0x00007fff57e44917 __NSOQSchedule_f + 369
16 libdispatch.dylib 0x00007fff7e09ee08 _dispatch_client_callout + 8
17 libdispatch.dylib 0x00007fff7e0b1ed1 _dispatch_continuation_pop + 472
18 libdispatch.dylib 0x00007fff7e0a9783 _dispatch_async_redirect_invoke + 703
19 libdispatch.dylib 0x00007fff7e0a09f9 _dispatch_root_queue_drain + 515
20 libdispatch.dylib 0x00007fff7e0a07a5 _dispatch_worker_thread3 + 101
21 libsystem_pthread.dylib 0x00007fff7e3f0169 _pthread_wqthread + 1387
22 libsystem_pthread.dylib 0x00007fff7e3efbe9 start_wqthread + 13

Long story short, the issue turns out to be having connection logging enabled. ¬†That’d been turned on many months before in order to debug a different stupid Mail bug, and had been simply left on (deliberately IIRC, since Mail tends to bug-out quite often, so why not have logs already available when it comes time to debug it yet again?).

Connection logging is enabled or disabled by opening the “Connection Doctor” (Window menu > Connection Doctor) and using the checkbox titled “Log Connection Activity”.

So how do you get to that checkbox when Mail crashes on launch? ¬†Well, in this specific instance I was able to disable all mail accounts via System Preference’s Accounts pane, launch Mail, disable logging, quit Mail, re-enable all mail accounts via System Preferences, and then relaunch Mail to have it finally actually work.

From even just brief web searching, it’s clear that this issue has been present and well-known in Mail for a really long time. ¬†Sigh. ¬†Apple’s protestations that they care about software quality, or the Mac, are relentlessly undermined by their actual actions.

macOS 10.12.2 appears to have brought with it some GPU issues

I run Einstein@Home, using both CPU cores & my GPU. ¬†Other than a few month period where Einstein@Home was issuing broken GPU work units, I’ve been successfully doing this for years, I think. ¬†Longer than I can really remember, in any case.

It appears, however, that 10.12.2 has introduced some serious issues impacting those GPU tasks. ¬†While there’s always been occasional issues with performance while running these GPU tasks – e.g. Amazon streaming video drops frames – I’ve not had any major complaints.

Now, however, I have this:

Screen shot showing massive graphics corruptionThat’s what I get when I render a Nikon NEF file, pretty much anywhere in the system.

The exact symptoms of the issue seem to vary depending on where & what type of NEF file I render – e.g. rendering them in Preview mostly constraints the graphics corruption to Preview, and doesn’t readily lead to the whole system hanging. ¬†Using the Finder for its previews, or Quicklook, however, very quickly leads to massive graphics corruption and, for Nikon D7100 NEFs, quickly hangs the system entirely. ¬†Oddly, Nikon D500 NEFs don’t tend to cause immediate system hangs, but will prevent the system restarting or shutting down – it ends up hung at a black screen, after seemingly closing the window server, with a very consistent pattern of corruption and a frozen mouse cursor.

I never saw this, or anything like it, prior to the 10.12.2 update.  Sigh.

FWIW, the particular work unit in question triggering this right now is:

Screen shot of the Einstein@Home work unit properties dialog