Resume superseding login items can lead to major usability issues

Originator:dljs.jr
Number:rdar://12225387 Date Originated:03-Sep-2012 11:32 AM
Status:Open Resolved:
Product:Mac OS X Product Version:10.8.1
Classification:Performance Reproducible:Always
 
Summary:
When an application that is resumed has a long, synchronous startup process (like an I/O heavy application), it interferes with the loading of login items.  Sometimes for only a few seconds, but for some applications this can take up to a minute, even on factory SSD-equipped Macs.

While a portion of this problem falls on the head of a developer, it seems reasonable that if a developer is creating a regular application and not a background service or menu-bar only item that lends itself to being part of a startup process then they don't need to assume that their application should deploy quickly.

Consider Sparrow, the third party email client.  Their startup process is long on my Early 2011 MBP with SSD, and without any knowledge of their inner mechanics I can assume that this is because their network + database I/O is done synchronously (not with regards to the application's main thread and UI, but with regards to its startup process as a whole).  In an email application, you can make an argument for this being sane; the application is mostly useless until emails have been loaded in to the list view.  If I don't quit Sparrow before a reboot, then my login items will be delayed for nearly a minute; this is a problem for me because my login items include such useful applications as Dropbox, Alfred, TextExpander, and KeyboardMaestro.

Obviously, the Resume feature *should* happen immediately in order for the feature itself to feel responsive and to make it feel like the Mac is being booted up instantaneously.

But I question the validity of app resume being a blocking operation.

Steps to Reproduce:

Add a few apps to Login Items for your user account, launch an application that is very heavy on I/O (once again, I'm going with Sparrow), then reboot without quitting any running applications.

Expected Results:

Applications should resume in a timely manner, and login items should start up in a timely manner.  Especially on an SSD.

Actual Results:

The IO heavy application resume will cause all login item launches to be delayed, drastically.

Regression:

This has been an issue since Lion, when Resume was introduced.

Notes:

03-Sep-2012 11:49 AM Douglas Stephen:
For more information regarding my process for identifying this issue, please see this thread on reddit.com/r/applehelp:

http://www.reddit.com/r/applehelp/comments/za8ot/psa_ive_been_seeing_a_lot_of_people_upset_by_slow/

03-Sep-2012 03:01 PM Douglas Stephen:
Just as an additional experiment, I decided to quit Sparrow, add it as a Login Item, ensuring that it was at the top of the list of Login Items.

After doing so, while Sparrow itself still takes a long time to load, it no longer has any impact on the rest of the Login Items loading in a timely manner.  This is the behavior I would expect.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!