st0 from buffer offset overflow

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
tobiasd
Beiträge: 95
Registriert: 03.02.2011 15:23:12
Lizenz eigener Beiträge: GNU General Public License

st0 from buffer offset overflow

Beitrag von tobiasd » 24.05.2011 17:30:01

Hi,

seit dem Upgrade auf Debian Squeeze bekommen an unterschiedlichen Tagen immer wieder das Problem mit I/O Errors vom Streamer. Hier ein Auszug aus Bacula:

Error: block.c:1002 Read error on fd=10 at file:blk 0:0 on device "drv2" (/dev/nst0). ERR=Input/output error

dmesg sagt folgendes:

st0: Can't allocate 2097152 byte tape buffer.
st: from_buffer offset overflow.

Das Problem tritt auch auf anderen Maschinen auf. Jedoch bei weitem nicht so häufig (2 mal seit letzten Montag). Ein Reboot behebt das Problem. Hat jemand eine Idee?

Grüße

Tobias

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: st0 from buffer offset overflow

Beitrag von cosmac » 24.05.2011 18:32:42

hi,

das könnte memory fragmentation sein (natürlich auch ganz was anderes). Im Idealfall werden die Daten vom Band direkt per Hardware (DMA) in den Speicher geschrieben. Dazu müssen (in diesem Fall) im Speicher 2MB oder 512 Pages im Stück frei sein. Da die Pages ansonsten einzeln an Programme verteilt und wieder frei gegeben werden, sind große zusammenhängende Stücke irgendwann knapp. Das könnte der Tape Controller umgehen, indem er die Daten Page-weise überträgt (scatter/gather). Aber der Treiber muss das auch unterstützen. Theoretisch könnte auch die Blockgröße irgendwo einstellbar sein.
Beware of programmers who carry screwdrivers.

tobiasd
Beiträge: 95
Registriert: 03.02.2011 15:23:12
Lizenz eigener Beiträge: GNU General Public License

Re: st0 from buffer offset overflow

Beitrag von tobiasd » 25.05.2011 10:51:34

Danke für deine Antwort. Ich hab bei google noch etwas über die Thmatik gefunden.

http://kerneltrap.org/mailarchive/linux ... 634/thread

Der dort erwähnte Bug ( http://bugs.debian.org/606096 ) sollte jedoch mit der aktuellen Kernel Version unter Debian bereits behoben sein. Leider ist der Kernel installiert und das Problem weiterhin vorhanden :( . Die Blocksize lässt sich in Bacula einstellen. Leider hat dies negative Auswirkung auf die Geschwindigkeit. Evtl. hat der Treiber des SCSI Controllers Fehler. Wir verwenden einen SCSI Controller der Firma LSi.

Grüße

Tobias

tobiasd
Beiträge: 95
Registriert: 03.02.2011 15:23:12
Lizenz eigener Beiträge: GNU General Public License

Re: st0 from buffer offset overflow

Beitrag von tobiasd » 09.06.2011 09:07:16

Problem besteht leider immer noch. Kann es sein das dieser Fehler häufiger auftritt umso weniger Speicher man verbaut hat? Kommt mir zumindest so vor wenn ich unsere Backup Server vergleiche.

tobiasd
Beiträge: 95
Registriert: 03.02.2011 15:23:12
Lizenz eigener Beiträge: GNU General Public License

Re: st0 from buffer offset overflow

Beitrag von tobiasd » 30.06.2011 09:59:32

Mittlerweile tritt das Problem auch schon bei anderen Servern auf :?


kern.log:

xxxxxxxxxx kernel: [451873.506638] st0: Can't allocate 1999999 bytetape buffer
xxxxxxxxxx kernel: [452173.632081] st: from_buffer offset overflow.
xxxxxxxxxx kernel: [452173.632085] st: from_buffer offset overflow.
xxxxxxxxxx kernel: [452173.632087] st: from_buffer offset overflow.

Nur ein Neustart hilft.

tapeinfo -f /dev/st0

Product Type: Tape Drive
Vendor ID: 'IBM '
Product ID: 'ULT3580-HH4 '
Revision: '97F1'
Attached Changer API: No
SerialNumber: '1K10044361'
MinBlock: 1
MaxBlock: 16777215
SCSI ID: 0
SCSI LUN: 0
Ready: yes
BufferedMode: yes
Medium Type: 0x48
Density Code: 0x46
BlockSize: 0
DataCompEnabled: yes
DataCompCapable: yes
DataDeCompEnabled: yes
CompType: 0x1
DeCompType: 0x1
BOP: yes
Block Position: 0
Partition 0 Remaining Kbytes: -1
Partition 0 Size in Kbytes: -1
ActivePartition: 0
EarlyWarningSize: 0

Antworten