N/A
In AIX 7.2 TL5 IBM introduced a performance feature for unlock in the interrupt disabled path. The change asserts that there are no waiters on this lock, since it is only correct that all threads contending on a given lock must be disabled (and spin rather than sleep) or they must all be enabled (intbase). In cases where the lock holder is on another cpu, it would eventually release the lock and the disabled lock would succeed. If a strong error check (eg errorcheckdetail 7 ) is enabled and IBM detects incorrect locking semantics, it will trigger an assert (system panic).
Using AIX locktracing it could be seen that odm_io_waitreq() had taken a lock and was waiting to complete the IO request but it was interrupted by odm_iodone() to perform IO and unlocked a lock taken by odm_io_waitreq(). So when odm_io_waitreq() tried to unlock the lock it led to a panic as the lock was unlocked already.
The odm code has been modified to resolve this issue and is fixed in the VRTSodm 7.4.1.3601 hotfix.
A hotfix is now available for this issue in the current version(s) of the product(s) mentioned, please contact Veritas Technical Support to obtain the hotfix.