FreeBSD 8.3 panic: cam_periph_release_locked_buses: release of ..

Сегодня с горечью обнаружил что из нагруженных серверов ушел в нирвану (kernel panic), с ошибками:
Aug 11 11:55:53 stream1 kernel: (cd1:umass-sim1:1:0:0): got CAM status 0x4 |
Aug 11 11:55:53 stream1 kernel: (cd1:umass-sim1:1:0:0): fatal error, failed to attach to device |
Aug 11 11:55:53 stream1 kernel: (cd1:umass-sim1:1:0:0): lost device |
Погуглив, выяснилось, что это известный баг в 8.3
Почитать можно тут
Лечится пропатчиванием исходников
/usr/src/sys/cam/scsi/scsi_cd.c |
следующим патчем:
--- /usr/src/sys/cam/scsi/scsi_cd.c.orig 2012-06-27 17:20:12.902599170 +0000 |
+++ /usr/src/sys/cam/scsi/scsi_cd.c 2012-06-27 17:39:11.567322238 +0000 |
softc = (struct cd_softc *)periph->softc; |
- cam_periph_hold(periph, PRIBIO); |
+ if (cam_periph_hold(periph, PRIBIO) != 0) { |
+ cam_periph_unlock(periph); |
+ cam_periph_release(periph); |
if ((softc->flags & CD_FLAG_DISC_REMOVABLE) != 0) |
cdprevent(periph, PR_ALLOW); |
с последующей пересборкой ядра.
З.Ы.
1:21PM up 27 mins, 4 users, load averages: 1.64, 1.15, 0.85 |
полет нормальный, обычно в панику падало минут через 10-12 аптайма(