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
@@ -1041,7 +1041,11 @@
softc = (struct cd_softc *)periph->softc;
cam_periph_lock(periph);
-      cam_periph_hold(periph, PRIBIO);
+      if (cam_periph_hold(periph, PRIBIO) != 0) {
+           cam_periph_unlock(periph);
+            cam_periph_release(periph);
+           return (0);
+   }
if ((softc->flags & CD_FLAG_DISC_REMOVABLE) != 0)
cdprevent(periph, PR_ALLOW);

с последующей пересборкой ядра.
З.Ы.


# uptime
1:21PM  up 27 mins, 4 users, load averages: 1.64, 1.15, 0.85

полет нормальный, обычно в панику падало минут через 10-12 аптайма(

Оцените статью
( Пока оценок нет )

Добавить комментарий