Sending multiple InstallApplication commands to a macOS device causes only one to download/install despite responding Acknowledged to each command

Originator:eriknicolasgomez
Number:rdar://32654662 Date Originated:06-08-2017
Status:Open Resolved:
Product:Installation Product Version:10.12.5
Classification:Bug Reproducible:Always
 
Area:
Installation

Summary:
We have run into a blocker issue with the InstallApplication command. If we queue two+ IA commands for a device, so that they are received within a short time of each other, only the most recently received command will actually attempt to download and the previous ones will never begin. Furthermore. every command returns Acknowledged, so we have no visibility on if the issue occurred other than having the device in front of us.

Steps to Reproduce:
Steps to Reproduce
1. Queue multiple InstallApplication commands for a different manifest + pkg for each command
2. Device will receive each command and Acknowledge each one.
3. Storedownloadd will throw a message like: storedownloadd    DownloadQueue: Could not add download
4. storedownloadd    DownloadQueue: Will start any ready downloads anyways.
5. Only the last IA will actually download the manifest, grab the pkg url, then download the pkg and install.

Expected Results:
Both Packages should install

Observed Results:
Only one package installs though both install application commands are acknowledged

Version:
We have tested this on 10.12.5 and on 10.12.6 Beta 6 with mdm debugging profile installed

Attached logs were generated with sudo log collect

Notes:
Notes:
Related Radars: 
rdar://26408264
rdar://26517261
If the first IA is a super small package and it downloads the manifest/app before the second IA command comes in this issue will not occur. But for most pkgs it will happen because the size is large enough to cause a few second delay, in which another IA command could come in during this time.

Business Impact : With APFS in High Sierra, Organizations will have to disown their imaging tools and use DEP as their primary deployment method. InstallApplication will play a key role in this transition as this would be the API that developers can build to deploy the necessary tools onto the machine on enrollment for streamlined user experience. This issue is currently a BLOCKER due to the high dependency on this API for admins around the world to build their new enterprise deployment strategy with High Sierra.

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!