How to reboot a Solaris Zone stuck in shutting_down state

Today I had an interesting situation, when attempting to shutdown a Solaris 10 zone with the zoneadm halt command as part of some scheduled maintenance. All seemed well until I checked the status and noticed that the zone had not shutdown correctly.

The state of the zone had not changed from the Running state to a Installed state as expected, but actually remained in a shutting_down state.

In looking around various logs collected, I could not precisely determine the cause of this hung state. However, to solve this problem, I performed the following:

# zoneadm -z <zone> unmount -f
# zoneadm -z <zone> reboot -- -s

Whilst the above commands were successful in getting the zone to halt I still need to investigate why the zone would not shutdown in the first instance (update to follow)...

Note: If you are still unable to shutdown the guest zone, then you will have no option but to perform a reboot of the global zone :(