passing invalid global pattern to coreadm wedges it nicely
Passing an invalid global pattern to coreadm causes the service to enter maintenance mode. Trying to set the value to something valid is now impossible as the service needs to be online to make configuration changes. Congratulations, you're screwed.
There are a couple of things wrong here.
1. The manpage makes it clear what an invalid path is, yet we don't check for it in the code.
2. The service exits with SMF_EXIT_ERR_FATAL instead of SMF_EXIT_ERR_CONFIG.
3. The coreadm command should not require the service to be online to make changes!
Joyent also do a good job of explaining the problem here: