WARNING: at fs/buffer.c:1186 mark_buffer_dirty+0x51/0x66()

From: Vladislav Bolkhovitin
Date: Fri Oct 24 2008 - 12:11:06 EST


Hi,

During recent debugging session of my SCSI target SCST (http://scst.sf.net) I noticed many

WARNING: at fs/buffer.c:1186 mark_buffer_dirty+0x51/0x66()

messages in kernel log on the initiator. I attached the full log of several of them.

My target was buggy and I was working on fixing it, but I suppose Linux should handle such failures more gracefully. In all the cases the target had one type of failure: it "ate" a SCSI command and never returned result of it.

Low level drivers were open-iscsi and qla2xxx.

Vlad

Attachment: k.tar.bz2
Description: application/bzip

Oct 16 21:58:54 inif kernel: Buffer I/O error on device sdf, logical block 816
Oct 16 21:58:54 inif kernel: EXT3-fs error (device sdf): ext3_readdir: directory #2 contains a hole at offset 0
Oct 16 21:58:54 inif kernel: Buffer I/O error on device sdf, logical block 0
Oct 16 21:58:54 inif kernel: lost page write due to I/O error on sdf
Oct 16 21:58:54 inif kernel: EXT3-fs error (device sdf): ext3_get_inode_loc: unable to read inode block - inode=2, block=316
Oct 16 21:58:54 inif kernel: ------------[ cut here ]------------
Oct 16 21:58:54 inif kernel: WARNING: at fs/buffer.c:1186 mark_buffer_dirty+0x51/0x66()
Oct 16 21:58:54 inif kernel: Modules linked in: crc32c crypto_hash libcrc32c iscsi_tcp libiscsi scsi_transport_iscsi firmware_class scsi_transport_fc tcp_highspeed w83627hf hwmon_vid eeprom adm1021 hwmon binfmt_misc dm_mirror dm_log dm_mod pci_slot battery ac ehci_hcd uhci_hcd sg e1000 pcspkr i2c_i801 i2c_core ide_cd_mod cdrom e7xxx_edac button usbcore [last unloaded: qla2xxx]
Oct 16 21:58:54 inif kernel: Pid: 19064, comm: pam_console_app Not tainted 2.6.27-ini #3
Oct 16 21:58:54 inif kernel: [<b0116065>] warn_on_slowpath+0x4d/0x66
Oct 16 21:58:54 inif kernel: [<b01270bd>] enqueue_hrtimer+0x72/0xea
Oct 16 21:58:54 inif kernel: [<b0112adb>] hrtick_start_fair+0x8e/0xd9
Oct 16 21:58:54 inif kernel: [<b0112dc3>] pick_next_task_fair+0x8c/0xa2
Oct 16 21:58:54 inif kernel: [<b03098fa>] schedule+0x173/0x3e9
Oct 16 21:58:54 inif kernel: [<b017a205>] mark_buffer_dirty+0x51/0x66
Oct 16 21:58:54 inif kernel: [<b01a5abc>] ext3_commit_super+0x3a/0x4e
Oct 16 21:58:54 inif kernel: [<b01a6603>] ext3_handle_error+0x62/0xaa
Oct 16 21:58:54 inif kernel: [<b0116d25>] printk+0x1b/0x1f
Oct 16 21:58:54 inif kernel: [<b01a66fd>] ext3_error+0x55/0x5a
Oct 16 21:58:54 inif kernel: [<b019e90f>] __ext3_get_inode_loc+0x253/0x2b9
Oct 16 21:58:54 inif kernel: [<b019e99f>] ext3_reserve_inode_write+0x19/0x5f
Oct 16 21:58:54 inif kernel: [<b0167e7c>] filldir64+0x0/0xc5
Oct 16 21:58:54 inif kernel: [<b019e9ff>] ext3_mark_inode_dirty+0x1a/0x30
Oct 16 21:58:54 inif kernel: [<b01ae8ec>] journal_start+0x80/0xa9
Oct 16 21:58:54 inif kernel: [<b01a16d6>] ext3_dirty_inode+0x65/0x6e
Oct 16 21:58:54 inif kernel: [<b0176b31>] __mark_inode_dirty+0x24/0x133
Oct 16 21:58:54 inif kernel: [<b0167e7c>] filldir64+0x0/0xc5
Oct 16 21:58:54 inif kernel: [<b016eb53>] touch_atime+0xa1/0xee
Oct 16 21:58:54 inif kernel: [<b0167e7c>] filldir64+0x0/0xc5
Oct 16 21:58:54 inif kernel: [<b0168077>] vfs_readdir+0x7c/0x7e
Oct 16 21:58:54 inif kernel: [<b01680dc>] sys_getdents64+0x63/0xa5
Oct 16 21:58:54 inif kernel: [<b0102cb9>] sysenter_do_call+0x12/0x21
Oct 16 21:58:54 inif kernel: =======================
Oct 16 21:58:54 inif kernel: ---[ end trace ddb1531dc775930c ]---
Oct 16 21:58:54 inif kernel: Buffer I/O error on device sdf, logical block 0
Oct 16 21:58:54 inif kernel: lost page write due to I/O error on sdf
Oct 16 21:58:54 inif kernel: EXT3-fs error (device sdf) in ext3_reserve_inode_write: IO failure
Oct 16 21:58:54 inif kernel: Buffer I/O error on device sdf, logical block 0
Oct 16 21:58:54 inif kernel: lost page write due to I/O error on sdf
Oct 16 21:58:54 inif kernel: EXT3-fs error (device sdf): ext3_readdir: directory #2 contains a hole at offset 0
Oct 16 21:58:54 inif kernel: Buffer I/O error on device sdf, logical block 0
Oct 16 21:58:54 inif kernel: lost page write due to I/O error on sdf
Oct 16 21:58:54 inif kernel: EXT3-fs error (device sdf): ext3_readdir: directory #2 contains a hole at offset 0
Oct 16 21:58:54 inif kernel: Buffer I/O error on device sdf, logical block 0
Oct 16 21:58:54 inif kernel: lost page write due to I/O error on sdf
Oct 16 21:58:54 inif kernel: EXT3-fs error (device sdf): ext3_readdir: directory #2 contains a hole at offset 0
Oct 16 21:58:54 inif kernel: Buffer I/O error on device sdf, logical block 0
Oct 16 21:58:54 inif kernel: lost page write due to I/O error on sdf
Oct 16 21:58:54 inif kernel: EXT3-fs error (device sdf): ext3_readdir: directory #2 contains a hole at offset 0
Oct 16 21:58:54 inif kernel: Buffer I/O error on device sdf, logical block 0
Oct 16 21:58:54 inif kernel: lost page write due to I/O error on sdf
Oct 16 21:58:54 inif kernel: EXT3-fs error (device sdf): ext3_readdir: directory #2 contains a hole at offset 0
Oct 16 21:58:54 inif kernel: Buffer I/O error on device sdf, logical block 0
Oct 16 21:58:54 inif kernel: lost page write due to I/O error on sdf
Oct 16 21:58:54 inif kernel: EXT3-fs error (device sdf): ext3_readdir: directory #2 contains a hole at offset 0
Oct 16 21:58:54 inif kernel: Buffer I/O error on device sdf, logical block 0
Oct 16 21:58:54 inif kernel: lost page write due to I/O error on sdf
Oct 16 21:58:54 inif kernel: EXT3-fs error (device sdf): ext3_readdir: directory #2 contains a hole at offset 0
Oct 16 21:58:54 inif last message repeated 157 times
Oct 16 21:59:05 inif kernel: journal_bmap: journal block not found at offset 859 on sdf
Oct 16 21:59:05 inif kernel: Aborting journal on device sdf.
Oct 16 21:59:05 inif kernel: __ratelimit: 158 callbacks suppressed
Oct 16 21:59:05 inif kernel: Buffer I/O error on device sdf, logical block 822
Oct 16 21:59:05 inif kernel: lost page write due to I/O error on sdf
Oct 16 21:59:05 inif kernel: journal commit I/O error
Oct 16 21:59:05 inif kernel: sd 12:0:0:0: [sdb] Synchronizing SCSI cache
Oct 16 21:59:05 inif kernel: sd 12:0:0:2: [sdd] Synchronizing SCSI cache
Oct 16 21:59:05 inif kernel: sd 12:0:0:3: [sde] Synchronizing SCSI cache
Oct 16 21:59:12 inif kernel: EXT3-fs error (device sdf): ext3_readdir: directory #2 contains a hole at offset 0
Oct 16 21:59:12 inif kernel: Buffer I/O error on device sdf, logical block 0
Oct 16 21:59:12 inif kernel: lost page write due to I/O error on sdf
Oct 16 21:59:12 inif kernel: ext3_abort called.
Oct 16 21:59:12 inif kernel: EXT3-fs error (device sdf): ext3_journal_start_sb: Detected aborted journal
Oct 16 21:59:12 inif kernel: Remounting filesystem read-only
Oct 16 21:59:44 inif kernel: Buffer I/O error on device sdf, logical block 822
Oct 16 21:59:44 inif kernel: lost page write due to I/O error on sdf