|
Ugh, use after free of some sort during rename.
|
|
So can we get some sort of a debug log from the server?
|
|
Also I wonder how this might be related to LU-898 which is a somewhat similar use after free
|
|
Hongchao
Can you please look into this one?
Thanks
Peter
|
|
Hongchao
Could you please provide an update on this one?
Thanks
Peter
|
|
there are many places where the pointers(max is 5) to lu_fid in md_capainfo are volatile in the context of the current
thread, and the pointers are not notified when the corresponding lu_fid is freed (md_capainfo only contains the pointer
to these lu_fid, which don't know there are pointers needed to update), e.g.
in mdd_rename_unpack, the lu_fid is from the lustre_msg,
...
rec = req_capsule_client_get(pill, &RMF_REC_REINT);
...
rr->rr_fid1 = &rec->rn_fid1;
rr->rr_fid2 = &rec->rn_fid2;
...
if (req->capsule_get_size(pill, &RMF_CAPA1, RCL_CLIENT)
mdt_set_capainfo(info, 0, rr->rr_fid1, req_capsule_client_get(pill, &RMF_CAPA1);
if (req->capsule_get_size(pill, &RMF_CAPA2, RCL_CLIENT)
mdt_set_capainfo(info, 0, rr->rr_fid2, req_capsule_client_get(pill, &RMF_CAPA2);
...
and the lustre_msg could be freed, and if the next rename operation don't contain the second CAPA info
(req->capsule_get_size(pill, &RMF_CAPA2, RCL_CLIENT) == 0), then the corresponding pointer will point to freed memory!
|
|
btw, the possible patch is under test.
|
|
the patch is tracked at http://review.whamcloud.com/#change,1979
|
|
Integrated in lustre-master » x86_64,client,el5,ofa #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdt/mdt_internal.h
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
|
|
Integrated in lustre-master » x86_64,client,el5,inkernel #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdt/mdt_internal.h
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
|
|
Integrated in lustre-master » i686,client,el6,inkernel #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdt/mdt_internal.h
- lustre/include/md_object.h
- lustre/mdd/mdd_internal.h
|
|
Integrated in lustre-master » x86_64,server,el6,inkernel #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
- lustre/mdd/mdd_internal.h
|
|
Integrated in lustre-master » x86_64,client,sles11,inkernel #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
- lustre/mdd/mdd_internal.h
|
|
Integrated in lustre-master » x86_64,server,el5,inkernel #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
|
|
Landed for 2.2
|
|
Integrated in lustre-master » x86_64,server,el5,ofa #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdt/mdt_internal.h
- lustre/include/md_object.h
- lustre/mdd/mdd_internal.h
|
|
Integrated in lustre-master » x86_64,client,el6,inkernel #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/include/md_object.h
- lustre/mdd/mdd_internal.h
- lustre/mdt/mdt_internal.h
|
|
Integrated in lustre-master » x86_64,client,ubuntu1004,inkernel #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdd/mdd_internal.h
- lustre/mdt/mdt_internal.h
- lustre/include/md_object.h
|
|
Integrated in lustre-master » i686,server,el5,ofa #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdd/mdd_internal.h
- lustre/mdt/mdt_internal.h
- lustre/include/md_object.h
|
|
Integrated in lustre-master » i686,server,el5,inkernel #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/include/md_object.h
- lustre/mdd/mdd_internal.h
- lustre/mdt/mdt_internal.h
|
|
Integrated in lustre-master » i686,server,el6,inkernel #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
|
|
Integrated in lustre-master » i686,client,el5,inkernel #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdd/mdd_internal.h
- lustre/mdt/mdt_internal.h
- lustre/include/md_object.h
|
|
Integrated in lustre-master » i686,client,el5,ofa #445
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = SUCCESS
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/include/md_object.h
- lustre/mdd/mdd_internal.h
- lustre/mdt/mdt_internal.h
|
|
fsstress caused the MDS to immediately reboot, no panic, console:
----------
2012-01-26 13:34:49 Lustre: 4952:0:(mdd_orphans.c:447:orph_key_test_and_del()) Skipped 1022 previous similar messages
2012-01-26 13:49:50 LustreError: 5420:0:(lu_object.c:116:lu_object_put()) ASSERTION(cfs_list_empty(&top->loh_lru)) failed
2012-01-26 13:49:50 LustreError: 5420:0:(lu_object.Initializing cgroup subsys cpuset
2012-01-26 13:49:50 Initializing cgroup subsys cpu
2012-01-26 13:49:50 Linux version 2.6.32-220.el6_lustre.x86_64 (jenkins@rhel6-64-build01.lab.whamcloud.com) (gcc version 4.4.5 20110214 (Red Hat 4.4.5-6) (GCC) ) #1 SMP Wed Jan 25 12:21:36 PST 2012
----------------
|
|
Integrated in lustre-master » x86_64,server,el6,ofa #480
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = FAILURE
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
|
|
Integrated in lustre-master » x86_64,client,el6,ofa #480
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = FAILURE
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
|
|
Integrated in lustre-master » i686,client,el6,ofa #480
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision 3a78e12f100e43e2996976d06a95a1b8e61b33ff)
Result = ABORTED
Oleg Drokin : 3a78e12f100e43e2996976d06a95a1b8e61b33ff
Files :
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
|
|
We've seen this LBUG at least 3 times on our production 2.1 systems. Please consider backporting the fix to 2.1.
|
|
ok Ned. We'll consider it for 2.1.2
|
|
Integrated in lustre-b2_1 » x86_64,client,sles11,inkernel #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/mdt/mdt_internal.h
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
|
|
Integrated in lustre-b2_1 » i686,client,el6,inkernel #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/mdt/mdt_internal.h
- lustre/include/md_object.h
- lustre/mdd/mdd_internal.h
|
|
Integrated in lustre-b2_1 » x86_64,server,el6,inkernel #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
|
|
Integrated in lustre-b2_1 » i686,client,el5,ofa #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
|
|
Integrated in lustre-b2_1 » x86_64,server,el5,ofa #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/mdt/mdt_internal.h
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
|
|
Integrated in lustre-b2_1 » x86_64,client,el6,inkernel #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
- lustre/mdd/mdd_internal.h
|
|
Integrated in lustre-b2_1 » i686,server,el6,inkernel #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/mdt/mdt_internal.h
- lustre/include/md_object.h
- lustre/mdd/mdd_internal.h
|
|
Integrated in lustre-b2_1 » x86_64,client,el5,inkernel #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/mdd/mdd_internal.h
- lustre/mdt/mdt_internal.h
- lustre/include/md_object.h
|
|
Integrated in lustre-b2_1 » i686,server,el5,inkernel #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
|
|
Integrated in lustre-b2_1 » x86_64,server,el5,inkernel #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/mdd/mdd_internal.h
- lustre/mdt/mdt_internal.h
- lustre/include/md_object.h
|
|
Integrated in lustre-b2_1 » i686,server,el5,ofa #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/mdd/mdd_internal.h
- lustre/include/md_object.h
- lustre/mdt/mdt_internal.h
|
|
Integrated in lustre-b2_1 » x86_64,client,el5,ofa #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/mdt/mdt_internal.h
- lustre/include/md_object.h
- lustre/mdd/mdd_internal.h
|
|
Integrated in lustre-b2_1 » i686,client,el5,inkernel #41
LU-931 mdd: store lu_fid instead of pointer in md_capainfo (Revision d2476735da2490c10596cb116449d8822b1a5b66)
Result = SUCCESS
Oleg Drokin : d2476735da2490c10596cb116449d8822b1a5b66
Files :
- lustre/include/md_object.h
- lustre/mdd/mdd_internal.h
- lustre/mdt/mdt_internal.h
|
Generated at Sat Feb 10 01:11:49 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.