[LU-2707] blockdev_attach can trigger LBUG Created: 29/Jan/13  Updated: 10/Jan/17  Resolved: 10/Jan/17

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

Type: Bug Priority: Minor
Reporter: Richard Henwood (Inactive) Assignee: James A Simmons
Resolution: Won't Do Votes: 0
Labels: None

Issue Links:
Related
is related to LU-409 Oops: RIP: _spin_lock_irq+0x15/0x40 Resolved
is related to LU-6585 Virtual block device (lloop) Closed
Severity: 3
Rank (Obsolete): 6312

 Description   

The script below generates a LBUG:

#!/bin/bash
/usr/lib64/lustre/tests/llmount.sh

dd if=/dev/zero of=/mnt/lustre/virtualfs bs=1024 count=30720

for i in $(seq 5); do
	lctl blockdev_attach /mnt/lustre/virtualfs /dev/virtblock
	dd if=/dev/zero of=/dev/virtblock  bs=1024 count=30720
	lctl blockdev_detach /dev/virtblock
done
# ~/blocktest.sh 
30720+0 records in
30720+0 records out
31457280 bytes (31 MB) copied, 1.88009 s, 16.7 MB/s

Message from syslogd@lmaster-124 at Jan 29 18:11:05 ...
 kernel:LustreError: 3077:0:(osc_page.c:432:osc_page_delete()) ASSERTION( 0 ) failed: 

Message from syslogd@lmaster-124 at Jan 29 18:11:05 ...
 kernel:LustreError: 3077:0:(osc_page.c:432:osc_page_delete()) LBUG
Lustre: 3077:0:(lloop.c:719:lloop_ioctl()) Enter llop_ioctl
LustreError: 3077:0:(osc_cache.c:2378:osc_teardown_async_page()) extent ffff880067dc4e58@{[7650 -> 7679/7679], [2|0|-|cache|wi|ffff88006c24dde8], [122880|30|+|-|ffff88006bddfcb8|256|(null)]} trunc at 7650.
LustreError: 3077:0:(osc_page.c:431:osc_page_delete()) page@ffff880060422900[2 ffff88006bfe0f78:7650 ^(null)_ffff880060422840 4 0 1 (null) (null) 0x0]
LustreError: 3077:0:(osc_page.c:431:osc_page_delete()) page@ffff880060422840[2 ffff88006d122f18:7650 ^ffff880060422900_(null) 4 0 1 (null) (null) 0x0]
LustreError: 3077:0:(osc_page.c:431:osc_page_delete()) vvp-page@ffff88006041c5a0(0:0:0) vm@ffffea0001524a40 20000000000075 4:0 0 7650 lru
LustreError: 3077:0:(osc_page.c:431:osc_page_delete()) lov-page@ffff880060415e28
LustreError: 3077:0:(osc_page.c:431:osc_page_delete()) osc-page@ffff880060421810: 1< 0x845fed 258 0 + - > 2< 31334400 0 4096 0x0 0x520 | (null) ffff88006bc2ea60 ffff88006c24dde8 > 3< + ffff88006c6e5540 0 0 0 > 4< 0 0 8 33431552 - | - - + - > 5< - - + - | 0 - | 30 - ->
LustreError: 3077:0:(osc_page.c:431:osc_page_delete()) end page@ffff880060422900
LustreError: 3077:0:(osc_page.c:431:osc_page_delete()) Trying to teardown failed: -16
LustreError: 3077:0:(osc_page.c:432:osc_page_delete()) ASSERTION( 0 ) failed: 
LustreError: 3077:0:(osc_page.c:432:osc_page_delete()) LBUG
Pid: 3077, comm: lctl

Call Trace:
 [<ffffffffa0349905>] libcfs_debug_dumpstack+0x55/0x80 [libcfs]
 [<ffffffffa0349f07>] lbug_with_loc+0x47/0xb0 [libcfs]
 [<ffffffffa09051a1>] osc_page_delete+0x311/0x320 [osc]
 [<ffffffffa0524445>] cl_page_delete0+0xc5/0x4e0 [obdclass]
 [<ffffffffa05248a2>] cl_page_delete+0x42/0x120 [obdclass]
 [<ffffffffa0e9ee6d>] ll_invalidatepage+0x8d/0x160 [lustre]
 [<ffffffff8112bc85>] do_invalidatepage+0x25/0x30
 [<ffffffff8112bea2>] truncate_inode_page+0xa2/0xc0
 [<ffffffff8112c1c0>] truncate_inode_pages_range+0x160/0x480
 [<ffffffff81274a0a>] ? kobject_get+0x1a/0x30
 [<ffffffff8112c4f5>] truncate_inode_pages+0x15/0x20
 [<ffffffffa0f63c5f>] lloop_ioctl+0x5af/0x770 [llite_lloop]
 [<ffffffffa0e5b427>] ll_iocontrol_call+0x87/0xd0 [lustre]
 [<ffffffffa0e6ca65>] ll_file_ioctl+0x3d5/0x1230 [lustre]
 [<ffffffff8106f5d6>] ? wait_consider_task+0x7e6/0xb20
 [<ffffffff8118e4f2>] vfs_ioctl+0x22/0xa0
 [<ffffffff8106fa8f>] ? do_wait+0x17f/0x240
 [<ffffffff8118e9ba>] do_vfs_ioctl+0x3aa/0x580
 [<ffffffff8118ec11>] sys_ioctl+0x81/0xa0
 [<ffffffff8100b0f2>] system_call_fastpath+0x16/0x1b

Kernel panic - not syncing: LBUG
Pid: 3077, comm: lctl Not tainted 2.6.32-279.14.1.el6_lustre.x86_64 #1
Call Trace:
 [<ffffffff814fdcba>] ? panic+0xa0/0x168
 [<ffffffffa0349f5b>] ? lbug_with_loc+0x9b/0xb0 [libcfs]
 [<ffffffffa09051a1>] ? osc_page_delete+0x311/0x320 [osc]
 [<ffffffffa0524445>] ? cl_page_delete0+0xc5/0x4e0 [obdclass]
 [<ffffffffa05248a2>] ? cl_page_delete+0x42/0x120 [obdclass]
 [<ffffffffa0e9ee6d>] ? ll_invalidatepage+0x8d/0x160 [lustre]
 [<ffffffff8112bc85>] ? do_invalidatepage+0x25/0x30
 [<ffffffff8112bea2>] ? truncate_inode_page+0xa2/0xc0
 [<ffffffff8112c1c0>] ? truncate_inode_pages_range+0x160/0x480
 [<ffffffff81274a0a>] ? kobject_get+0x1a/0x30
 [<ffffffff8112c4f5>] ? truncate_inode_pages+0x15/0x20
 [<ffffffffa0f63c5f>] ? lloop_ioctl+0x5af/0x770 [llite_lloop]
 [<ffffffffa0e5b427>] ? ll_iocontrol_call+0x87/0xd0 [lustre]
 [<ffffffffa0e6ca65>] ? ll_file_ioctl+0x3d5/0x1230 [lustre]
 [<ffffffff8106f5d6>] ? wait_consider_task+0x7e6/0xb20
 [<ffffffff8118e4f2>] ? vfs_ioctl+0x22/0xa0
 [<ffffffff8106fa8f>] ? do_wait+0x17f/0x240
 [<ffffffff8118e9ba>] ? do_vfs_ioctl+0x3aa/0x580
 [<ffffffff8118ec11>] ? sys_ioctl+0x81/0xa0
 [<ffffffff8100b0f2>] ? system_call_fastpath+0x16/0x1b


 Comments   
Comment by Richard Henwood (Inactive) [ 30/Jan/13 ]

it seems a simpler reproducer is available for this:

# /usr/lib64/lustre/tests/llmount.sh
# dd if=/dev/zero of=/mnt/lustre/virtualfs bs=1024 count=30720
# lctl blockdev_attach /mnt/lustre/virtualfs /dev/virtblock
Comment by James A Simmons [ 10/Jan/17 ]

llite_lloop is no longer supported so lets close this ticket.

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