Bug 1247378
| Summary: | core dump when attempting to create striped cache pool w/ one lvcreate cmdline | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Corey Marthaler <cmarthal> |
| Component: | lvm2 | Assignee: | Zdenek Kabelac <zkabelac> |
| lvm2 sub component: | Cache Logical Volumes | QA Contact: | cluster-qe <cluster-qe> |
| Status: | CLOSED ERRATA | Docs Contact: | |
| Severity: | medium | ||
| Priority: | medium | CC: | agk, heinzm, jbrassow, msnitzer, prajnoha, zkabelac |
| Version: | 7.2 | Keywords: | Triaged |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | lvm2-2.02.130-2.el7 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2015-11-19 12:47:06 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
I'll provide patch which will disable use of striping when allocating cache-pool. We can't handle such complex operation in 1 command ATM. Provided PVs are meant to be space for data & metadata LV Allocator is not set-up to handle also striping allocation at the same time. Moreover it logically fails since it's unclear if we want striped only data or metadata or both. The error is even more visible when larger number of striping is requested. Until these question are answered the only way is to disable use of striping. If user want's stripped data or metadata he currently needs to start with low-level LVs and convert them into cache-pool. Option -i is now disabled when creating cache-pool with this upstream commit: https://www.redhat.com/archives/lvm-devel/2015-September/msg00085.html Marking verified in the latest rpms. It is no longer possible to use '-i' when creating a cache pool volume. [root@host-109 ~]# lvcreate -i 1 --cachepolicy smq --type cache-pool -L 2G -n POOL2 cache_sanity /dev/sdh1 /dev/sdg1 Option --stripes is unsupported with cache pools. Run `lvcreate --help' for more information. [root@host-109 ~]# lvcreate -i 2 --cachepolicy smq --type cache-pool -L 2G -n POOL3 cache_sanity /dev/sdh1 /dev/sdg1 Option --stripes is unsupported with cache pools. Run `lvcreate --help' for more information. 3.10.0-313.el7.x86_64 lvm2-2.02.130-2.el7 BUILT: Tue Sep 15 07:15:40 CDT 2015 lvm2-libs-2.02.130-2.el7 BUILT: Tue Sep 15 07:15:40 CDT 2015 lvm2-cluster-2.02.130-2.el7 BUILT: Tue Sep 15 07:15:40 CDT 2015 device-mapper-1.02.107-2.el7 BUILT: Tue Sep 15 07:15:40 CDT 2015 device-mapper-libs-1.02.107-2.el7 BUILT: Tue Sep 15 07:15:40 CDT 2015 device-mapper-event-1.02.107-2.el7 BUILT: Tue Sep 15 07:15:40 CDT 2015 device-mapper-event-libs-1.02.107-2.el7 BUILT: Tue Sep 15 07:15:40 CDT 2015 device-mapper-persistent-data-0.5.5-1.el7 BUILT: Thu Aug 13 09:58:10 CDT 2015 cmirror-2.02.130-2.el7 BUILT: Tue Sep 15 07:15:40 CDT 2015 sanlock-3.2.4-1.el7 BUILT: Fri Jun 19 12:48:49 CDT 2015 sanlock-lib-3.2.4-1.el7 BUILT: Fri Jun 19 12:48:49 CDT 2015 lvm2-lockd-2.02.130-2.el7 BUILT: Tue Sep 15 07:15:40 CDT 2015 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2015-2147.html |
Description of problem: Striped cache pool creation works if you first create striped volumes for pool and metadata and then use lvconvert, however when attempted with the same cmdline it fails. [root@host-109 ~]# lvcreate -i 1 --cachepolicy smq --type cache-pool -L 2G -n POOL2 cache_sanity /dev/sdh1 /dev/sdg1 Logical volume "POOL2" created. [root@host-109 ~]# lvs -a -o +devices LV Attr LSize Pool Origin Data% Meta% Cpy%Sync Devices [POOL] Cwi---C--- 2.00g 0.00 3.47 100.00 POOL_cdata(0) POOL2 Cwi---C--- 2.00g POOL2_cdata(0) [POOL2_cdata] Cwi------- 2.00g /dev/sdh1(2) [POOL2_cmeta] ewi------- 8.00m /dev/sdh1(0) [POOL_cdata] Cwi-ao---- 2.00g /dev/sdb1(4) [POOL_cmeta] ewi-ao---- 8.00m /dev/sdb1(2) corigin Cwi-a-C--- 4.00g [POOL] [corigin_corig] 0.00 3.47 100.00 corigin_corig(0) [corigin_corig] owi-aoC--- 4.00g /dev/sde1(0) [lvol0_pmspare] ewi------- 8.00m /dev/sdb1(0) [root@host-109 ~]# lvcreate -i 2 --cachepolicy smq --type cache-pool -L 2G -n POOL3 cache_sanity /dev/sdh1 /dev/sdg1 Using default stripesize 64.00 KiB. lvcreate: datastruct/list.c:34: dm_list_add: Assertion `head->n' failed. Aborted (core dumped) Core was generated by `lvcreate -i 2 --cachepolicy smq --type cache-pool -L 2G -n POOL3 cache_sanity /'. Program terminated with signal 6, Aborted. #0 0x00007fda43dc75d7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig); Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.6-13.el7.x86_64 elfutils-libelf-0.163-1.el7.x86_64 elfutils-libs-0.163-1.el7.x86_64 libattr-2.4.46-12.el7.x86_64 libcap-2.22-8.el7.x86_64 libgcc-4.8.5-4.el7.x86_64 libselinux-2.2.2-6.el7.x86_64 libsepol-2.1.9-3.el7.x86_64 ncurses-libs-5.9-13.20130511.el7.x86_64 pcre-8.32-15.el7.x86_64 xz-libs-5.1.2-10alpha.el7.x86_64 zlib-1.2.7-15.el7.x86_64 (gdb) (gdb) bt #0 0x00007fda43dc75d7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007fda43dc8cc8 in __GI_abort () at abort.c:90 #2 0x00007fda43dc0546 in __assert_fail_base (fmt=0x7fda43f101e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7fda443d3fb2 "head->n", file=file@entry=0x7fda443d3fa0 "datastruct/list.c", line=line@entry=34, function=function@entry=0x7fda443d3fe0 <__PRETTY_FUNCTION__.6354> "dm_list_add") at assert.c:92 #3 0x00007fda43dc05f2 in __GI___assert_fail (assertion=assertion@entry=0x7fda443d3fb2 "head->n", file=file@entry=0x7fda443d3fa0 "datastruct/list.c", line=line@entry=34, function=function@entry=0x7fda443d3fe0 <__PRETTY_FUNCTION__.6354> "dm_list_add") at assert.c:101 #4 0x00007fda443a2f8d in dm_list_add (head=head@entry=0x7fda46cf8780, elem=elem@entry=0x7fda46cdc858) at datastruct/list.c:34 #5 0x00007fda44eec63c in _alloc_parallel_area (ix_log_offset=0, alloc_state=0x7ffd31e246b0, max_to_allocate=514, ah=0x7fda46cf86f0) at metadata/lv_manip.c:1840 #6 _find_some_parallel_space (max_to_allocate=514, parallel_pvs=<optimized out>, alloc_state=0x7ffd31e246b0, pvms=0x7fda46cdc710, ah=0x7fda46cf86f0) at metadata/lv_manip.c:2827 #7 _find_max_parallel_space_for_one_policy (alloc_state=0x7ffd31e246b0, pvms=0x7fda46cdc710, alloc_parms=0x7ffd31e24690, ah=0x7fda46cf86f0) at metadata/lv_manip.c:2891 #8 _allocate (can_split=1, allocatable_pvs=<optimized out>, lv=0x7fda46cf85a8, vg=<optimized out>, ah=0x7fda46cf86f0) at metadata/lv_manip.c:3017 #9 allocate_extents (vg=<optimized out>, lv=lv@entry=0x7fda46cf85a8, segtype=segtype@entry=0x7fda46c7e9a0, stripes=stripes@entry=2, mirrors=mirrors@entry=1, log_count=<optimized out>, region_size=region_size@entry=2, extents=extents@entry=512, allocatable_pvs=allocatable_pvs@entry=0x7fda46ccc838, alloc=ALLOC_NORMAL, alloc@entry=ALLOC_INHERIT, approx_alloc=approx_alloc@entry=0, parallel_areas=parallel_areas@entry=0x0) at metadata/lv_manip.c:3318 #10 0x00007fda44ef5711 in lv_extend (lv=lv@entry=0x7fda46cf85a8, segtype=segtype@entry=0x7fda46c7e9a0, stripes=2, stripe_size=128, mirrors=1, region_size=2, extents=512, allocatable_pvs=0x7fda46ccc838, alloc=ALLOC_INHERIT, approx_alloc=0) at metadata/lv_manip.c:3917 #11 0x00007fda44ef7231 in _lv_create_an_lv (vg=vg@entry=0x7fda46cf5d00, lp=lp@entry=0x7ffd31e249f0, new_lv_name=<optimized out>) at metadata/lv_manip.c:7235 #12 0x00007fda44ef93af in lv_create_single (vg=vg@entry=0x7fda46cf5d00, lp=lp@entry=0x7ffd31e249f0) at metadata/lv_manip.c:7605 #13 0x00007fda44e8b43a in lvcreate (cmd=0x7fda46c3e020, argc=<optimized out>, argv=<optimized out>) at lvcreate.c:1534 #14 0x00007fda44e937db in lvm_run_command (cmd=cmd@entry=0x7fda46c3e020, argc=3, argc@entry=14, argv=0x7ffd31e24f90, argv@entry=0x7ffd31e24f38) at lvmcmdline.c:1603 #15 0x00007fda44e93fe9 in lvm2_main (argc=14, argv=0x7ffd31e24f38) at lvmcmdline.c:2068 #16 0x00007fda43db3af5 in __libc_start_main (main=0x7fda44e7a860 <main>, argc=14, ubp_av=0x7ffd31e24f38, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd31e24f28) at libc-start.c:274 #17 0x00007fda44e7a891 in _start () Version-Release number of selected component (if applicable): 3.10.0-296.el7.x86_64 lvm2-2.02.125-2.el7 BUILT: Fri Jul 10 03:42:29 CDT 2015 lvm2-libs-2.02.125-2.el7 BUILT: Fri Jul 10 03:42:29 CDT 2015 lvm2-cluster-2.02.125-2.el7 BUILT: Fri Jul 10 03:42:29 CDT 2015 device-mapper-1.02.102-2.el7 BUILT: Fri Jul 10 03:42:29 CDT 2015 device-mapper-libs-1.02.102-2.el7 BUILT: Fri Jul 10 03:42:29 CDT 2015 device-mapper-event-1.02.102-2.el7 BUILT: Fri Jul 10 03:42:29 CDT 2015 device-mapper-event-libs-1.02.102-2.el7 BUILT: Fri Jul 10 03:42:29 CDT 2015 device-mapper-persistent-data-0.5.4-1.el7 BUILT: Fri Jul 17 08:56:22 CDT 2015 cmirror-2.02.125-2.el7 BUILT: Fri Jul 10 03:42:29 CDT 2015