[LU-7055] osd_ost_fini calls sleeping function under rwlock Created: 28/Aug/15  Updated: 11/Apr/16  Resolved: 11/Apr/16

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

Type: Bug Priority: Major
Reporter: Oleg Drokin Assignee: Emoly Liu
Resolution: Fixed Votes: 0
Labels: None

Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

I was hitting "BUG: rwlock wrong CPU on CPU#6, umount/19930" sort of message frequently lately and I found at least one of the abusers.

It seems osd_ost_fini calls into osd_seq_free() under write lock, which in turn calls into dput that might sleep which is a no-no.



 Comments   
Comment by Joseph Gmitter (Inactive) [ 28/Aug/15 ]

Hi Emoly,
Can you look into this failure?
Thanks.
Joe

Comment by Andrew Perepechko [ 04/Mar/16 ]

The same issue.

BUG: rwlock wrong CPU on CPU#2, umount/14990, ffff8800891aa748 (Tainted: G        W  ---------------   )
Pid: 14990, comm: umount Tainted: G        W  ---------------    2.6.32 #1
Call Trace:
 [<ffffffff812a728a>] ? rwlock_bug+0x6a/0x70
 [<ffffffff812a72fb>] ? _raw_write_unlock+0x6b/0x80
 [<ffffffff8154892b>] ? _write_unlock+0x2b/0x40
 [<ffffffffa0e22529>] ? osd_obj_map_fini+0x229/0x4b0 [osd_ldiskfs]
 [<ffffffffa0e0913c>] ? osd_device_fini+0x13c/0x190 [osd_ldiskfs]
 [<ffffffffa0788573>] ? class_cleanup+0x583/0xd40 [obdclass]
 [<ffffffffa07663ac>] ? class_name2dev+0x7c/0xe0 [obdclass]
 [<ffffffffa078a29a>] ? class_process_config+0x156a/0x1ad0 [obdclass]
 [<ffffffffa0782dfc>] ? lustre_cfg_new+0x16c/0x6e0 [obdclass]
 [<ffffffffa0782f63>] ? lustre_cfg_new+0x2d3/0x6e0 [obdclass]
 [<ffffffffa078a979>] ? class_manual_cleanup+0x179/0x6e0 [obdclass]
 [<ffffffffa0764360>] ? class_export_put+0x110/0x2d0 [obdclass]
 [<ffffffffa0e0b394>] ? osd_obd_disconnect+0x174/0x1e0 [osd_ldiskfs]
 [<ffffffffa078ceab>] ? lustre_put_lsi+0x1ab/0xeb0 [obdclass]
 [<ffffffffa0794f18>] ? lustre_common_put_super+0x5c8/0xbe0 [obdclass]
 [<ffffffffa07c396d>] ? server_put_super+0x1bd/0xed0 [obdclass]
 [<ffffffff8119880b>] ? generic_shutdown_super+0x5b/0xe0
 [<ffffffff811988f6>] ? kill_anon_super+0x16/0x60
 [<ffffffff8119908f>] ? deactivate_super+0x4f/0x80
 [<ffffffffa078c7b6>] ? lustre_kill_super+0x36/0x60 [obdclass]
 [<ffffffff81199097>] ? deactivate_super+0x57/0x80
 [<ffffffff811b88cf>] ? mntput_no_expire+0xbf/0x110
 [<ffffffff811b943b>] ? sys_umount+0x7b/0x3a0
 [<ffffffff8100b0b2>] ? system_call_fastpath+0x16/0x1b
Comment by Gerrit Updater [ 29/Mar/16 ]

Emoly Liu (emoly.liu@intel.com) uploaded a new patch: http://review.whamcloud.com/19189
Subject: LU-7055 osd: move dput() out of osd_ost_fini()'s rwlock
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: c179250f146670543bc0c28aac7a5ee363ae2fd9

Comment by Gerrit Updater [ 11/Apr/16 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/19189/
Subject: LU-7055 osd: move dput() out of osd_ost_fini()'s rwlock
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: ae70c9e898b8230f26f659bfd85665230ea49720

Comment by Emoly Liu [ 11/Apr/16 ]

This patch has landed to 2.9.

Generated at Sat Feb 10 02:05:36 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.