Jump to content

fontd is running at 100% CPU


3 posts in this topic

Recommended Posts

Hey guys!


Yesterday I updated my system from Catalina to Big Sur. There were no issues during the installation and the system has since been running fine with the new OS. But there is one exception: fontd is constantly running at 100 % CPU.


This has been going on for the last 15 hours. When I kill it it just comes back within seconds and is at 100 % again. The logging console is flooded with thousands of copies of this message:

XType - FontAsset update timer fired.

This clearly indicates to me that something is going wrong with fontd. I have no idea what is causing this, but it is somehow locking up this service.


What I have tried so far:

  • killing the service -> comes right back at 100 % CPU as soon as some application needs access to fonts
  • clearing the font cache (atsutil databases -remove) -> no effect
  • validating all fonts in Font Book.app -> all fonts are fine
  • removing all user installed fonts -> no effect
  • disabling the service using launchctl -> no effect
  • completely reinstalling the OS -> no effect


My setup:

  • macOS 11.0.1 (20B29)
  • OpenCore 0.6.3
  • config.plist and everything else carefully created using the Dortania guides


I don't even think it is related to any Hackintosh stuff and it might just be a bug in Big Sur, but maybe some of you have an idea. The ultimate measure might be a clean install, but I really want to avoid that.


Thanks guys!

Link to comment
Share on other sites

I got it fixed! How did I do it?


Short Answer


Delete ~/Library/Preferences/com.apple.FontRegistry.user and kill fontd one last time.



Long Answer


I created another user account and to my surprise the issue didn't happen for that account. So the issue wasn't system-wide and something in my user directory must be the culprit. I had another look for any possibly related files and found ~/Library/Preferences/com.apple.FontRegistry.user. And in fact the file looked weird. Its modification time was far in the future (year 2262) and the value of LastUpdate in the actual plist was even farther in the future. The mentioned update timer in fontd is probably looking at this value to decide whether an update is necessary. And since the value was so far out of range it probably made fontd constantly think the update is due now.


So how did I end up with these weird time values? I suspect this was caused by my real time clock not working correctly. I sometimes notice that my system shows some date in the future after waking from sleep. It stays like this only for a couple of seconds until the correct time is synced again with a time server. I guess during that brief moment fontd must have written to that plist file taking the current time which was still far in the future. I really need to get that RTC fixed in my OpenCore configuration.

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...