MacOS High Sierra – SafariBookmarksSyncAgent CPU problem (updated 20180321)

2018/03/20

Edit – 20180321

Late yesterday afternoon this problem came back. Turning off Safari sync in the iCloud cdev treats the symptom but its not the cure.

Root cause found. Information below updated to reflect the final fix.

Fault Description

For an unknown reason the SafariBooksmarksSyncAgent process is consuming large amounts of CPU and memory on my 2012 MacBook Pro 15”.

Observed Behaviour

The process can be killed using Activity Monitor but will restart when Safari is open. If Safari is closed then the sync process doesn’t restart.

Console.app showed the following warnings and errors:

XX BAChangeCopyChangedItem: BAChange object created with UUID that does not correspond to a known bookmark.
Move change <BAChange 0x7fc580b014b0 (0x7fc580cb0450 85087F40-FD87-4FDB-B101-713F9FCD1AA3) Modify> was provided without a corresponding changed item.
Batch record save operation completed but failed to save records due to unrecoverable error: Error Domain=CKErrorDomain Code=12 "Request UUID: (null)"
Did fail to save record batch with error: Error Domain=CKErrorDomain Code=12 "Request UUID: (null)"
Sync coordinator failed to sync bookmarks with error: Error Domain=CKErrorDomain Code=12 "Request UUID: (null)"
*** CloudKit bookmark sync failed with result <3>: Error Domain=CKErrorDomain Code=12 "Request UUID: (null)"

So obviously the sync agent has some problems.

Getting Close

Some Googlephoo turned up a few items that were close but nothing that really seemed to me like a root cause fix. Eventually I found an article that led me to this Apple support article: Resolve issues caused by changing the permissions of items in your home folder

That seemed like a worthy fix to try since I had just rebuilt my Mac from scratch and started with a fresh and new user profile. It was highly likely that some home directory permissions got clobbered during my various file restores, especially related to the hidden ‘~/Library’ folder.

I performed the steps as described however it didn’t seem to fix it. The sync process was still chewing high CPU.

The Fix Part 1

I closed Safari and reran the Apple support fix steps.
When I started Safari again the sync process was perfectly behaved. For a short while. Read on.

The Fix Part 2

So, soon after posting this article the problem came screaming back. Same fault as originally described.

This time I nuked the site from orbit.

  • In Safari on my Mac I exported my bookmarks. File -> Export Bookmarks.
  • I turned off Safari iCloud Sync on the Mac and my devices.
  • I deleted all Bookmarks from all devices and then properly closed Safari on all devices.
  • Waited five minutes.
  • Opened the console.app and watched the logs for any process with the word safari in it.
  • Turned on Safari in the iCloud cdev on the mac and my devices. Watched a bunch of stuff scroll by in the console.app. None of it appeared to be warnings or errors.
  • Waited five minutes.
  • Imported my bookmarks from the backup file.

Root cause? Unknown. Problem fixed? Yes.

A side effect

Immediately following the fix a bunch of ‘mds’ related processes started churning. These are processes related to the Spotlight app and are part of Spotlight’s discovery and search of data on the computer. Obviously the permissions fix also fixed a bunch of access issues for Spotlight. I left it alone to chug along and it settled down to more normal levels after a short while.

Advertisements

Light rail third rail. What?

2018/03/12

Now that the new light rail down George St is slowly taking shape in Sydney i’ve seen a few comments around the place that go something like:

  • Where’s the overhead wires?
  • Looks nice now but wait till they put the overhead wires in and then its an eyesore.

Well in the Sydney CBD this isn’t going to be an issue because the Govt has decided to use a ground-level power supply. The sections of light rail outside the CBD will still use overhead, probably because its cheaper and less likely to get tangled because a lot of our light rail will run on a dedicated per-way.

So, what is this fancy ground-level power supply system used in our light rail? Here is some information about it. Now before anyone freaks out, yes it’s using a third rail but the live rail isn’t actually exposed to the road. There is some mechanical mechanism that ensures the rail is only energised when a tram is over the rail. That’s all I know. The incidents of drunken Sydney yoofs peeing on the rail and taking a fatal jolt should be negligible.

Though, and I suspect because the system uses magnets, Im sure some bright spark will come along with a big magnet one day and end up dead.

So, the third rail you see in the CBD is perfectly safe. Until someone defeats its safety mechanisms on purpose.


Looking to get started coding?

2018/01/19

Have a read of the knowledge Ashley McNamara has distilled via ashleymcnamara/learn_to_code: Resources for budding developers


Interesting Railways Documents

2018/01/17

Putting this information up here for future keeping. I seem to need to keep referring to these from time to time and it will be handy to have them saved somewhere.

PIR for RailCorp (Now SydneyTrains) Sydenham Signal Box Failure on April 12th.

110429-Signal_System_Report

Presentation on the Stabilisation of the Melbourne Train Control System

Legacy Train Control System Stabilisation


Missing Instant Hotspot on MacOS

2017/12/21

One problem that keeps coming back on my MacBook Pro is that the Instant Hotspot option in the WiFi menu (in the menu bar) disappears.

Don’t confuse this with the Personal Hotspot feature of your phone. Instant Hotspot is part of the Continuity suite that uses your AppleID to make your iPhone’s hotspot feature available to your Mac even if the iPhone has the Personal Hotspot turned off.

After spending some time googling around for solutions to the missing option I worked out that I had to be searching for “Instant Hotspot” instead. I then started to get somewhere.

The fix that worked for me was step three from here.

I had to sign out of iCloud on my Mac and then sign back in. I didn’t have to do it on the iPhone.

Ive hit this issue three times now. No idea what the cause was tbh.


Useful man pages in your browser

2017/12/21

A new useful *nix tool popped up in my Twitter timeline a while back.

http://tldr.sh/

Lede says Simplified and community-driven man pages and it does what it says on the tin.

If you’re a *nix admin you know the drill of looking up man pages for *nix tools. You’re solving some problem and need to grok an *nix command options and/or refer to a sample of how the tool is used. man {toolname} is the way to do it.

Frequently though the result is usually page and pages of esoteric information about the tool most of which you will never learn and will take you a lot of time to wrap your brain around. Sometimes there will be examples, waaay at the bottom of the page and often those usage examples are pretty light on information.

This is where http://tldr.sh/ comes in. Put your *nix tool name into the sample at https://tldr.ostera.io/ and it will display useful help. Example: https://tldr.ostera.io/tar

But it doesn’t end there. The page also has many community contributed clients. Scroll down the page at http://tldr.sh/ for the full list.

My favourite use of it is to add the https://tldr.ostera.io/ as a search provider in your browser. Chrome in my case. Open your Chrome settings and add a search engine with the config as below.

Screen Shot 2017-12-21 at 11.36.16

Now, in any search bar in Chrome you can type tldr {toolname} eg tldr tar and it will display the results right there for you. A convenient way to get useful information about *nix tools.


EtreCheck – A simple Mac OS health check tool

2017/01/31

I had to help a friend the other week to resolve some page hijacking that was occurring on their Mac. See https://discussions.apple.com/docs/DOC-8071. I was surprised to learn that such a thing actually happens with Macs and Safari.

I needed a quick way to run a health check of the Mac OS and found EtreCheck. Recommended.

Source: EtreCheck: About EtreCheck