* [linux-lvm] lvchange seg faults after switching cache policy mq->cleaner->mq
@ 2015-05-03 3:32 Kyle Manna
0 siblings, 0 replies; 2+ messages in thread
From: Kyle Manna @ 2015-05-03 3:32 UTC (permalink / raw)
To: linux-lvm
[-- Attachment #1: Type: text/plain, Size: 3390 bytes --]
Hi,
I (attempted to) change the cache policy on a LV to write the changes
out to the disk.
# lvchange --cachepolicy cleaner vg0/home
Verified the expected setting with:
# lvs -o +cache_policy,cache_settings vg0/home
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Cache Policy Cache Settings
home vg0 Cwi-aoC--- 2.61t [cache0] [home_corig] 100.00 13.25 0.00 cleaner
After doing some tasks (i.e. reflashing the firmware of my broken
Samsung 840 EVO), I wanted to re-enable the mq cache policy with:
# lvchange --cachepolicy mq vg0/home
However, now lvchange segmentation faults on me. I started with lvm2 on
Arch Linux at version 2.02.116-1. I just compiled the git head
(75aa3e951f2) and still have the seg fault.
Recompiled with debug flags and have this stack trace:
#0 0x00007ffff756c8ef in _clone_config_value (mem=0x5555559543a0, v=0x0) at libdm-config.c:1261
#1 0x00007ffff756cfde in _override_path (path=0x555555954330 "/policy_settings", node=0x555555983e18, baton=0x555555997420) at libdm-config.c:1343
#2 0x00007ffff756d1e3 in _enumerate (path=0x7ffff7580d2a "", cn=0x555555983e18, cb=0x7ffff756cf08 <_override_path>, baton=0x555555997420) at libdm-config.c:1360
#3 0x00007ffff756d36b in dm_config_flatten (cft=0x55555594ae60) at libdm-config.c:1382
#4 0x00005555555f5bfc in lv_cache_setpolicy (lv=0x5555559830b0, policy=0x55555597a6d0) at metadata/cache_manip.c:417
#5 0x000055555557bb62 in _lvchange_cachepolicy (cmd=0x555555900000, lv=0x5555559830b0) at lvchange.c:685
#6 0x000055555557d736 in _lvchange_single (cmd=0x555555900000, lv=0x5555559830b0, handle=0x555555940558) at lvchange.c:1102
#7 0x00005555555aa61f in process_each_lv_in_vg (cmd=0x555555900000, vg=0x555555982b80, arg_lvnames=0x7fffffffdbd0, tags_in=0x7fffffffdcc0, stop_on_error=0,
handle=0x555555940558, process_single_lv=0x55555557c836 <_lvchange_single>) at toollib.c:2072
#8 0x00005555555aaec0 in _process_lv_vgnameid_list (cmd=0x555555900000, flags=1048576, vgnameids_to_process=0x7fffffffdc80, arg_vgnames=0x7fffffffdcb0,
arg_lvnames=0x7fffffffdca0, arg_tags=0x7fffffffdcc0, handle=0x555555940558, process_single_lv=0x55555557c836 <_lvchange_single>) at toollib.c:2280
#9 0x00005555555ab27b in process_each_lv (cmd=0x555555900000, argc=1, argv=0x7fffffffdee0, flags=1048576, handle=0x555555940558,
process_single_lv=0x55555557c836 <_lvchange_single>) at toollib.c:2356
#10 0x000055555557e136 in lvchange (cmd=0x555555900000, argc=1, argv=0x7fffffffdee0) at lvchange.c:1260
#11 0x0000555555597bca in lvm_run_command (cmd=0x555555900000, argc=1, argv=0x7fffffffdee0) at lvmcmdline.c:1521
#12 0x000055555559921e in lvm2_main (argc=4, argv=0x7fffffffdec8) at lvmcmdline.c:1985
#13 0x00005555555b6cc0 in main (argc=4, argv=0x7fffffffdec8) at lvm.c:21
(gdb) frame 1
#1 0x00007ffff756cfde in _override_path (path=0x555555954330 "/policy_settings", node=0x555555983e18, baton=0x555555997420) at libdm-config.c:1343
1343 if (!(target->v = _clone_config_value(cft->mem, node->v)))
More readable @ https://gist.github.com/fb7a054e6c3f77332b85
I didn't have enough time to dig in deeper, but the v=0 in the
_clone_config_value() is where things appear to go off the rails.
Hoping this means more to someone who is more familiar with this code.
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* [linux-lvm] lvchange seg faults after switching cache policy mq->cleaner->mq
@ 2015-05-06 18:15 Kyle Manna
0 siblings, 0 replies; 2+ messages in thread
From: Kyle Manna @ 2015-05-06 18:15 UTC (permalink / raw)
To: linux-lvm
Hi,
I (attempted to) change the cache policy on a LV to write the changes
out to the disk.
# lvchange --cachepolicy cleaner vg0/home
Verified the expected setting with:
# lvs -o +cache_policy,cache_settings vg0/home
LV VG Attr LSize Pool Origin Data% Meta% Move
Log Cpy%Sync Convert Cache Policy Cache Settings
home vg0 Cwi-aoC--- 2.61t [cache0] [home_corig] 100.00 13.25
0.00 cleaner
After doing some tasks (i.e. reflashing the firmware of my broken
Samsung 840 EVO), I wanted to re-enable the mq cache policy with:
# lvchange --cachepolicy mq vg0/home
However, now lvchange segmentation faults on me. I started with lvm2 on
Arch Linux at version 2.02.116-1. I just compiled the git head
(75aa3e951f2) and still have the seg fault.
Recompiled with debug flags and have this stack trace:
#0 0x00007ffff756c8ef in _clone_config_value (mem=0x5555559543a0,
v=0x0) at libdm-config.c:1261
#1 0x00007ffff756cfde in _override_path (path=0x555555954330
"/policy_settings", node=0x555555983e18, baton=0x555555997420) at
libdm-config.c:1343
#2 0x00007ffff756d1e3 in _enumerate (path=0x7ffff7580d2a "",
cn=0x555555983e18, cb=0x7ffff756cf08 <_override_path>,
baton=0x555555997420) at libdm-config.c:1360
#3 0x00007ffff756d36b in dm_config_flatten (cft=0x55555594ae60) at
libdm-config.c:1382
#4 0x00005555555f5bfc in lv_cache_setpolicy (lv=0x5555559830b0,
policy=0x55555597a6d0) at metadata/cache_manip.c:417
#5 0x000055555557bb62 in _lvchange_cachepolicy (cmd=0x555555900000,
lv=0x5555559830b0) at lvchange.c:685
#6 0x000055555557d736 in _lvchange_single (cmd=0x555555900000,
lv=0x5555559830b0, handle=0x555555940558) at lvchange.c:1102
#7 0x00005555555aa61f in process_each_lv_in_vg (cmd=0x555555900000,
vg=0x555555982b80, arg_lvnames=0x7fffffffdbd0, tags_in=0x7fffffffdcc0,
stop_on_error=0,
handle=0x555555940558, process_single_lv=0x55555557c836
<_lvchange_single>) at toollib.c:2072
#8 0x00005555555aaec0 in _process_lv_vgnameid_list (cmd=0x555555900000,
flags=1048576, vgnameids_to_process=0x7fffffffdc80,
arg_vgnames=0x7fffffffdcb0,
arg_lvnames=0x7fffffffdca0, arg_tags=0x7fffffffdcc0,
handle=0x555555940558, process_single_lv=0x55555557c836
<_lvchange_single>) at toollib.c:2280
#9 0x00005555555ab27b in process_each_lv (cmd=0x555555900000, argc=1,
argv=0x7fffffffdee0, flags=1048576, handle=0x555555940558,
process_single_lv=0x55555557c836 <_lvchange_single>) at
toollib.c:2356
#10 0x000055555557e136 in lvchange (cmd=0x555555900000, argc=1,
argv=0x7fffffffdee0) at lvchange.c:1260
#11 0x0000555555597bca in lvm_run_command (cmd=0x555555900000, argc=1,
argv=0x7fffffffdee0) at lvmcmdline.c:1521
#12 0x000055555559921e in lvm2_main (argc=4, argv=0x7fffffffdec8) at
lvmcmdline.c:1985
#13 0x00005555555b6cc0 in main (argc=4, argv=0x7fffffffdec8) at lvm.c:21
(gdb) frame 1
#1 0x00007ffff756cfde in _override_path (path=0x555555954330
"/policy_settings", node=0x555555983e18, baton=0x555555997420) at
libdm-config.c:1343
1343 if (!(target->v = _clone_config_value(cft->mem,
node->v)))
More readable @ https://gist.github.com/fb7a054e6c3f77332b85
I didn't have enough time to dig in deeper, but the v=0 in the
_clone_config_value() is where things appear to go off the rails.
Hoping this means more to someone who is more familiar with this code.
I was able to recover with the vgcfgrestore tool.
Thanks,
- Kyle
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-05-06 18:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-03 3:32 [linux-lvm] lvchange seg faults after switching cache policy mq->cleaner->mq Kyle Manna
-- strict thread matches above, loose matches on Subject: below --
2015-05-06 18:15 Kyle Manna
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).