Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

prime17569

macrumors regular
Original poster
May 26, 2021
208
527
In many Apple support threads online where people encounter strange issues with their devices, a restart often fixes the issue. Great, right? I think not.

We shouldn't have to restart our Apple devices to make them work.

Sure, Apple silicon processors are extremely fast these days, making restarts faster than ever. But the fact of the matter remains that we shouldn't need to interrupt our workflows to restart our devices.

Here is an example of this that I encounter often: AirDrop on the Mac. Sometimes it will fail to work; clicking on the icon for my iPhone or iPad will do nothing. Sometimes this can be fixed by running "killall sharingd" in Terminal; however, most of the time, I need to restart the Mac for it to work again. This is on an M1 MacBook Air, by the way. (Now, I'm not saying that we need to tell users to run a Terminal command; this is just an illustrative example.)

From what I've seen -- and this is my opinion -- most of the strange issues that people have are the result of the system entering a "quasi-working" indeterminate state that Apple did not expect to occur and as such does not provide a way for the system to recover from.

If Apple is focusing on bug fixes and performance improvements for their next-generation operating systems as the rumors say, then they need to focus on identifying edge-case/indeterminate situations and providing a way for the system to recover from them, automatically. And they need to make sure that the system can only operate in determinate, well-defined conditions.

How can this be applied to the example above? On Apple platforms, launchd is responsible for launching daemons and background tasks, and restarting these processes if they crash. However, to my knowledge, there is not a way for launchd to detect an unresponsive process and automatically restart it. In the AirDrop example above, it's my belief that the root cause is sharingd becoming unresponsive or otherwise unable to receive user input. A useful fix would be for launchd to send a "heartbeat" signal to the processes and restart them transparently if they don't respond within a certain time frame. (This approach wouldn't work for user-facing applications, but it would certainly work for background services and daemons that don't put windows on screen.)

I believe a similar approach is used in embedded systems where humans might not be physically near the system to restart it at will. If Apple truly wants to make their computers like appliances, then they should build the software with that philosophy in mind; human intervention shouldn't be required to get out of indeterminate states.

Of course, this would lead to a far better user experience, which is the point of me writing all this. Things will "just work."

I would be interested to hear your thoughts on this.

EDIT: original post was written in a moment of frustration. Please read the thread before replying.
 
Last edited:
sure, software shouldn't have bugs. /thread
That's not quite what I'm saying here. There will never not be bugs.

My point here is that it should be easy to automatically recover from problems should they occur. It shouldn't have a confusing result like a click doing nothing, or iCloud sync suddenly not working, or software updates failing to install with no explanation and the only option being to restart the device entirely if the problem is with a specific daemon or background service. (I shouldn't need to run a Terminal command, either.)

There also needs to be better QA/QC so that edge cases can be detected and resolved as much as possible.
 
Last edited:
Does your Mac have any third-party software or hardware on it…or…have you confirmed that the issues you speak of still occur with no third-party software/hardware involved?
I have had these issues on multiple Mac laptops with no third party hardware installed. With regards to third party software, nothing out of the ordinary- just Microsoft Office, Slack, Spotify, VS Code, Xcode, Chrome, Firefox, Zoom, VLC and a few other things. All from the Mac App Store where possible (except for Xcode, which doesn't download properly from the MAS and hasn't done so for years).

What frustrates me - and what motivated this post - is that these issues occur at random when I least expect them. I can't reliably reproduce them at all. They're little things, but it's really disruptive when you're expecting things to work and they don't. This is especially true of Continuity features, most notably the Universal Clipboard and Universal Control. I might not know why the problem is occurring, but the system certainly does because these are first-party features. Why can't the system diagnose and attempt to fix the problem automatically?
 
Last edited:
That's not quite what I'm saying here. There will never not be bugs.

My point here is that it should be easy to automatically recover from problems should they occur. It shouldn't have a confusing result like a click doing nothing, or iCloud sync suddenly not working, or software updates failing to install with no explanation and the only option being to restart the device entirely if the problem is with a specific daemon or background service. (I shouldn't need to run a Terminal command, either.)

There also needs to be better QA/QC so that edge cases can be detected and resolved as much as possible.
These types of issues exist across multiple operating systems, including Windows, Android, and Linux. You admit in your latest post that you cannot reliably reproduce the issues, which indicates this is not some sort of consistent issue. Given this, no amount of QA would be able to reliably reproduce the issues either. Furthermore, it would be impossible to duplicate every edge case prior to release of an OS or OS update unless you literally have the entire userbase using alpha and beta builds. The other thing to consider is that depending on what the cause of the problem is, it may not be possible to automatically restart a stalled process because of other services and processes being affected as well.
 
These types of issues exist across multiple operating systems, including Windows, Android, and Linux. You admit in your latest post that you cannot reliably reproduce the issues, which indicates this is not some sort of consistent issue. Given this, no amount of QA would be able to reliably reproduce the issues either. Furthermore, it would be impossible to duplicate every edge case prior to release of an OS or OS update unless you literally have the entire userbase using alpha and beta builds. The other thing to consider is that depending on what the cause of the problem is, it may not be possible to automatically restart a stalled process because of other services and processes being affected as well.
These are all very good points.

It's worth mentioning, though, that Apple sells a promise of "it just works," and people buy their products (and like me, develop apps for them) because of that. So when things randomly don't work, people begin to feel that they are reneging on that promise. (Thus the occasional "Apple software quality has gone down" threads we see.)

Yes, we can't expect things to be 100% bug-free, but it doesn't make it any less frustrating when things don't work for no apparent reason. If anything, there needs to be better communication with the user, especially as systems become more complex over time.
 
Last edited:
These are all very good points.

It's worth mentioning, though, that Apple sells a promise of "it just works," and people buy their products (and like me, develop apps for them) because of that. So when things randomly don't work, it's as if they are reneging on that promise.

Yes, we can't expect things to be 100% bug-free, but it doesn't make it any less frustrating when things don't work for no apparent reason. If anything, there needs to be better communication with the user.

Please point me to the marketing materials using that phrase.
 
How much of a problem is this really? My M1 macs both reboot in a matter of seconds and selecting to reopen applications at boot restores most things to how they were before the reboot. I never used to power off my Intel Mac mini but now I switch my M1 off every night because the boot process is so fast that is powers on faster than my Intel machine woke up from hibernation.
 
Turning off and on again is for all electronics. Sometimes my fan acts up and I need to unplug and plug it back in. Most stuff can get resolved this way. Which is why it’s typically the first thing that is requested.

In terms of computing, this helps with memory leaks, weird driver/kernel issues, rogue processes, etc. it’s a way to get a fresh start.
 
This is a little ridiculous. Apple devices are already about as good as it gets in consumer electronics NOT needing constant restarts to maintain basic functionality.
That's true. But they could certainly be better. Then again, perhaps I am experiencing a unique set of issues as explained in an earlier post.
 
I have had these issues on multiple Mac laptops with no third party hardware installed. With regards to third party software, nothing out of the ordinary- just Microsoft Office, Slack, Spotify, VS Code, Xcode, Chrome, Firefox, Zoom, VLC and a few other things. All from the Mac App Store where possible (except for Xcode, which doesn't download properly from the MAS and hasn't done so for years).

What frustrates me - and what motivated this post - is that these issues occur at random when I least expect them. I can't reliably reproduce them at all. They're little things, but it's really disruptive when you're expecting things to work and they don't. This is especially true of Continuity features, most notably the Universal Clipboard and Universal Control. I might not know why the problem is occurring, but the system certainly does because these are first-party features. Why can't the system diagnose and attempt to fix the problem automatically?
You are spot on with 90% of this post. You touched a nerve with the whole airdrop thing, (wife and I do frequent forced restarts of one or both of our iphones frequently to facilitate airdrop). As one of the lead admins on a 290,000 member forum on FB for iphone tricks, far too often my recommendation of forced restart is the solution to a problem.
 
No, it's not. "Seamless" is not "you will never have a problem ever".
That is true. The issue I have, though, is that I'm not given any insight into why the problem is occurring. In the AirDrop example, when I click on the destination device, there isn't any feedback in the UI that the AirDrop failed. No progress bar or loading spinner. It will just sit there as if nothing happened. Then, suddenly, two days later, there will be ten copies of the file I was trying to send in the other device's downloads folder. (Note: I only click the destination device once or twice, then give up and come back later.)

So I will amend my initial point to say that there is also an issue in the software's communication (or lack thereof) with the user.
 
In many Apple support threads online where people encounter strange issues with their devices, a restart often fixes the issue. Great, right? I think not.

We shouldn't have to restart our Apple devices to make them work.

Sure, Apple silicon processors are extremely fast these days, making restarts faster than ever. But the fact of the matter remains that we shouldn't need to interrupt our workflows to restart our devices.

Here is an example of this that I encounter often: AirDrop on the Mac. Sometimes it will fail to work; clicking on the icon for my iPhone or iPad will do nothing. Sometimes this can be fixed by running "killall sharingd" in Terminal; however, most of the time, I need to restart the Mac for it to work again. This is on an M1 MacBook Air, by the way. (Now, I'm not saying that we need to tell users to run a Terminal command; this is just an illustrative example.)

From what I've seen -- and this is my opinion -- most of the strange issues that people have are the result of the system entering a "quasi-working" indeterminate state that Apple did not expect to occur and as such does not provide a way for the system to recover from.

If Apple is focusing on bug fixes and performance improvements for their next-generation operating systems as the rumors say, then they need to focus on identifying edge-case/indeterminate situations and providing a way for the system to recover from them, automatically. And they need to make sure that the system can only operate in determinate, well-defined conditions.

How can this be applied to the example above? On Apple platforms, launchd is responsible for launching daemons and background tasks, and restarting these processes if they crash. However, to my knowledge, there is not a way for launchd to detect an unresponsive process and automatically restart it. In the AirDrop example above, it's my belief that the root cause is sharingd becoming unresponsive or otherwise unable to receive user input. A useful fix would be for launchd to send a "heartbeat" signal to the processes and restart them transparently if they don't respond within a certain time frame. (This approach wouldn't work for user-facing applications, but it would certainly work for background services and daemons that don't put windows on screen.)

I believe a similar approach is used in embedded systems where humans might not be physically near the system to restart it at will. If Apple truly wants to make their computers like appliances, then they should build the software with that philosophy in mind; human intervention shouldn't be required to get out of indeterminate states.

Of course, this would lead to a far better user experience, which is the point of me writing all this. Things will "just work."

I would be interested to hear your thoughts on this.
Honestly I think this comes from not understanding the complexities of a full on operating system.

And other guy is right about demanding software without bugs.

While it’s generally true that, with enough knowledge, you can often never have to restart a traditional computer to fix bugs, you can’t do the same on a security restricted device and maintain the security.

I can’t kill background services and restart them, i can’t look at system logs (directly) and reload a kernel module.

And for the general public, even if they could, it would simply take less time to reboot the device.

On this same note, we really shouldn’t have to just erase our device and not restore from backup to fix an iCloud bug. That I can get behind.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.