SystemExtension Activation on top of an Already-Running SystemExtension Fails

Here's the scenario:
  1. Enable developer mode: sudo systemextensionsctl developer on

  2. Activate a system extension

  3. Check the pid of the running system extension

  4. Activate the same system extension (same version/build) again.

Expected behaviors
  • The first instance of the system extension should be set to [terminated waiting to uninstall on reboot]

  • The second, newer instance of the system extension should be set to [activated enabled]

  • The pid of the system extension process should have changed

Observed behaviors
  • systemextensionsctl list does show both instances of the system extension correctly

  • However, there is no running process of the system extension. The first instance gets a SIGTERM as expected but the second instance is never started

If the system extension is activated again (3rd time), then the system extension does get started and a pid can be found.

This behavior is only exhibited in macOS 10.15.5. We have verified this in builds 19F101 and 19F2200. This does not occur in 10.15.4 or 10.15.6 or 11.0.

This does not occur when developer mode is off, presumably due to the system extension not being replaced.

Was this a known issue/regression that was fixed in 10.15.6?

Thank you
Answered by Frameworks Engineer in 630787022
There were changes in this area in 10.15.6 based directly on customer feedback #s! They matter and are always appreciated.
Accepted Answer
There were changes in this area in 10.15.6 based directly on customer feedback #s! They matter and are always appreciated.
Just so I'm understanding that reply correctly: you're saying that this was a bug that was fixed in 10.15.6? "Changes in this area" is 100% expected and understood, but did not directly answer whether this is a known issue or if I am using the APIs wrong.
Strange that it does not occur in 10.15.4. I know that it happens in 10.15.2 as well, good to know that it is fixed in 10.15.6
SystemExtension Activation on top of an Already-Running SystemExtension Fails
 
 
Q