[LU-7065] lod_add_device() may free an already added target description Created: 31/Aug/15 Updated: 02/Oct/15 Resolved: 02/Oct/15 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.8.0 |
| Fix Version/s: | Lustre 2.8.0 |
| Type: | Bug | Priority: | Major |
| Reporter: | John Hammond | Assignee: | Dmitry Eremin (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | lod | ||
| Severity: | 3 |
| Rank (Obsolete): | 9223372036854775807 |
| Description |
|
In the error path of lod_add_device() we may free tgt_desc after adding it to the ldt: LTD_TGT(ltd, index) = tgt_desc;
cfs_bitmap_set(ltd->ltd_tgt_bitmap, index);
ltd->ltd_tgtnr++;
mutex_unlock(<d->ltd_mutex);
lod_putref(lod, ltd);
lock = false;
if (lod->lod_recovery_completed)
ldev->ld_ops->ldo_recovery_complete(env, ldev);
if (!for_ost && lod->lod_initialized) {
rc = lod_sub_init_llog(env, lod, tgt_desc->ltd_tgt);
if (rc != 0) {
CERROR("%s: cannot start llog on %s:rc = %d\n",
lod2obd(lod)->obd_name, osp, rc);
GOTO(out_pool, rc);
}
}
rc = lfsck_add_target(env, lod->lod_child, d, exp, index, for_ost);
if (rc != 0) {
CERROR("Fail to add LFSCK target: name = %s, type = %s, "
"index = %u, rc = %d\n", osp, type, index, rc);
GOTO(out_fini_llog, rc);
}
RETURN(rc);
out_fini_llog:
lod_sub_fini_llog(env, tgt_desc->ltd_tgt,
tgt_desc->ltd_recovery_thread);
out_pool:
lod_ost_pool_remove(&lod->lod_pool_info, index);
out_mutex:
if (lock) {
mutex_unlock(<d->ltd_mutex);
lod_putref(lod, ltd);
}
out_desc:
OBD_FREE_PTR(tgt_desc);
|
| Comments |
| Comment by Joseph Gmitter (Inactive) [ 01/Sep/15 ] |
|
Hi Dmitry, |
| Comment by Andreas Dilger [ 01/Sep/15 ] |
|
Looks like this was added in http://review.whamcloud.com/11408 (commit v2_7_54_0-43-g4dcd475) but it may lead to a crash and should be fixed for 2.8.0. |
| Comment by Gerrit Updater [ 16/Sep/15 ] |
|
Dmitry Eremin (dmitry.eremin@intel.com) uploaded a new patch: http://review.whamcloud.com/16441 |
| Comment by Gerrit Updater [ 02/Oct/15 ] |
|
Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/16441/ |
| Comment by Dmitry Eremin (Inactive) [ 02/Oct/15 ] |
|
Landed to 2.8 |