[LU-2983] ASSERTION in osd_bufs_get_read() Created: 18/Mar/13  Updated: 23/Apr/13  Resolved: 23/Apr/13

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.4.0
Fix Version/s: Lustre 2.4.0

Type: Bug Priority: Critical
Reporter: Brian Behlendorf Assignee: Alex Zhuravlev
Resolution: Fixed Votes: 0
Labels: sequoia
Environment:

ZFS OSDs


Epic/Theme: OSD_API
Story Points: 1
Severity: 3
Epic: server
Rank (Obsolete): 7270

 Description   

Despite our parity checking hardware RAID on Grove we appear to have run in to a case where ZFS is getting bad block data from disk. The root cause for this still isn't clear and we're looking in to it.

However, it clearly exposed that right now the ZFS OSD doesn't even try to handle IO errors on read from the DMU. Lustre hit the following assertion when ZFS returned the IO error. We need to update osd_bufs_get_read() to handle the error and return it up the stack.

<ConMan> Console [grove250] log at 2013-03-17 23:00:00 PDT.
2013-03-17 23:50:10 LustreError: 7462:0:(osd_io.c:276:osd_bufs_get_read()) ASSERTION( rc == 0 ) failed: 
2013-03-17 23:50:10 LustreError: 7462:0:(osd_io.c:276:osd_bufs_get_read()) LBUG
2013-03-17 23:50:10 Pid: 7462, comm: ll_ost_io00_060
2013-03-17 23:50:10
2013-03-17 23:50:10 Call Trace:
2013-03-17 23:50:10  [<ffffffffa0346965>] libcfs_debug_dumpstack+0x55/0x80 [libcfs]
2013-03-17 23:50:10  [<ffffffffa0346f77>] lbug_with_loc+0x47/0xb0 [libcfs]
2013-03-17 23:50:10  [<ffffffffa0d36796>] osd_bufs_get+0x996/0xa10 [osd_zfs]
2013-03-17 23:50:10  [<ffffffffa06cc386>] ? lu_object_find+0x16/0x20 [obdclass]
2013-03-17 23:50:10  [<ffffffffa0dd540f>] ofd_preprw_read+0x13f/0x850 [ofd]
2013-03-17 23:50:10  [<ffffffffa0dd6073>] ofd_preprw+0x553/0x12b0 [ofd]
2013-03-17 23:50:10  [<ffffffffa0d9030c>] obd_preprw+0x12c/0x3d0 [ost]
2013-03-17 23:50:10  [<ffffffffa0d95af4>] ost_brw_read+0xd14/0x12f0 [ost]
2013-03-17 23:50:10  [<ffffffff8126c489>] ? cpumask_next_and+0x29/0x50
2013-03-17 23:50:10  [<ffffffff810551d4>] ? find_busiest_group+0x244/0x9f0
2013-03-17 23:50:10  [<ffffffffa085d52c>] ? lustre_msg_get_version+0x8c/0x100 [ptlrpc]
2013-03-17 23:50:10  [<ffffffffa085d688>] ? lustre_msg_check_version+0xe8/0x100 [ptlrpc]
2013-03-17 23:50:10  [<ffffffffa0d9c658>] ost_handle+0x2a68/0x46a0 [ost]
2013-03-17 23:50:10  [<ffffffffa0864c2b>] ? ptlrpc_update_export_timer+0x4b/0x470 [ptlrpc]
2013-03-17 23:50:10  [<ffffffffa086d08c>] ptlrpc_server_handle_request+0x41c/0xe00 [ptlrpc]
2013-03-17 23:50:10  [<ffffffffa03476be>] ? cfs_timer_arm+0xe/0x10 [libcfs]
2013-03-17 23:50:10  [<ffffffffa035914f>] ? lc_watchdog_touch+0x6f/0x180 [libcfs]
2013-03-17 23:50:10  [<ffffffffa0864459>] ? ptlrpc_wait_event+0xa9/0x290 [ptlrpc]
2013-03-17 23:50:10  [<ffffffff81051ba3>] ? __wake_up+0x53/0x70
2013-03-17 23:50:10  [<ffffffffa086e625>] ptlrpc_main+0xbb5/0x1970 [ptlrpc]
2013-03-17 23:50:10  [<ffffffffa086da70>] ? ptlrpc_main+0x0/0x1970 [ptlrpc]
2013-03-17 23:50:10  [<ffffffff8100c14a>] child_rip+0xa/0x20
2013-03-17 23:50:10  [<ffffffffa086da70>] ? ptlrpc_main+0x0/0x1970 [ptlrpc]
2013-03-17 23:50:10  [<ffffffffa086da70>] ? ptlrpc_main+0x0/0x1970 [ptlrpc]
2013-03-17 23:50:10  [<ffffffff8100c140>] ? child_rip+0x0/0x20


 Comments   
Comment by Peter Jones [ 18/Mar/13 ]

Alex will look into this one

Comment by Brian Behlendorf [ 18/Mar/13 ]

Related to this we're trying to map the ZFS object number from the OST (which has a bad checksum) back to the full Lustre path for the file. What's the right way to go about this these days?

Comment by Alex Zhuravlev [ 20/Mar/13 ]

http://review.whamcloud.com/5784

Comment by Alex Zhuravlev [ 23/Apr/13 ]

landed

Generated at Sat Feb 10 01:29:57 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.