RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1247378 - core dump when attempting to create striped cache pool w/ one lvcreate cmdline
Summary: core dump when attempting to create striped cache pool w/ one lvcreate cmdline
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: lvm2
Version: 7.2
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Zdenek Kabelac
QA Contact: cluster-qe@redhat.com
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-07-27 20:40 UTC by Corey Marthaler
Modified: 2023-03-08 07:27 UTC (History)
6 users (show)

Fixed In Version: lvm2-2.02.130-2.el7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-11-19 12:47:06 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2015:2147 0 normal SHIPPED_LIVE lvm2 bug fix and enhancement update 2015-11-19 11:11:07 UTC

Description Corey Marthaler 2015-07-27 20:40:29 UTC
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

Comment 2 Zdenek Kabelac 2015-09-08 15:31:23 UTC
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.

Comment 3 Zdenek Kabelac 2015-09-11 12:31:08 UTC
Option -i is  now disabled when creating cache-pool with this upstream commit:

https://www.redhat.com/archives/lvm-devel/2015-September/msg00085.html

Comment 5 Corey Marthaler 2015-09-23 16:10:42 UTC
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

Comment 6 errata-xmlrpc 2015-11-19 12:47:06 UTC
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


Note You need to log in before you can comment on or make changes to this bug.