Resolve Media Changer issues

Recently I had to troubleshoot an issue where loading and unloading tape drives in a tape library was causing trouble. Parallel operations executed on the same library changer device caused a subset of the operations to fail leading to aborted sessions. A Linux Media Agent controlling the library changer reported the following error.

[Normal] From: MMA@linux.syncer.de "MSL6480_D3" Time: 25.09.2017 16:02:33
    => UMA@linux.syncer.de@/dev/tape/by-id/scsi-350014380032e2efb
    Unloading medium to slot 7 from device /dev/tape/by-id/scsi-350014380032e2eff-nst

[Major] From: MMA@linux.syncer.de "MSL6480_D3" Time: 25.09.2017 16:04:13
[90:64]     => UMA@linux.syncer.de@/dev/tape/by-id/scsi-350014380032e2efb
    Cannot unload exchanger medium (System error)

I’ve noticed a slightly different error message after changing the primary Media Agent for the tape library to a Windows host.

[Normal] From: MMA@linux.syncer.de "MSL6480_D6" Time: 02.10.2017 11:28:42
    => UMA@windows.syncer.de@Changer2147483643:0:0:1
    Loading medium from slot 14 to device /dev/tape/by-id/scsi-350014380032e2eff-nst

[Major] From: MMA@linux.syncer.de "MSL6480_D6" Time: 02.10.2017 11:29:40
[90:63]     => UMA@windows.syncer.de@Changer2147483643:0:0:1
    Cannot load exchanger medium ([121] The semaphore timeout period has expired. )

The Windows error message was looking familiar. I’ve tried a modification of the omnirc on the Media Agent hosts responsible for the robot control and it resolved the issue.

# Cannot load exchanger medium (System error) / The semaphore timeout period has expired
OB2SCSITIMEOUT=180