Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 437714

Summary: sys-fs/lvm2-2.02.97-r1 init stop fails to deactivated lvs and vgs on shutdown
Product: Gentoo Linux Reporter: Norman Back <gentoo2>
Component: [OLD] Core systemAssignee: Robin Johnson <robbat2>
Status: RESOLVED FIXED    
Severity: normal CC: agk, alexander, anf, ap, bugs.gentoo.09-17, cardoe, dewhite, email200202, gentoo, john.newman.0, karsten.elfenbein, navid.zamani, seraph
Priority: Normal Keywords: PATCH
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: proposed patch to fix issue
emerge log

Description Norman Back 2012-10-09 13:42:56 UTC
During shutdown /etc/init.d/lvm fails to deactivate lvs and vgs.
From rc.log:
 * Deactivating swap devices ...
 [ ok ]
 * Shutting down the Logical Volume Manager
 *   Shutting Down LVs & VGs ...
  Command failed with status code 2.
  No such command.  Try 'help'.
 * Failed
 [ !! ]
 * Finished Shutting down the Logical Volume Manager
 * Stopping dmeventd ...
 [ ok ]


Reproducible: Always

Steps to Reproduce:
1. Install sys-fs/lvm2-2.02.97 on a system with lvm2 partitions
2. shutdown or reboot the system

Actual Results:  
rc log shows:
 * Deactivating swap devices ...
 [ ok ]
 * Shutting down the Logical Volume Manager
 *   Shutting Down LVs & VGs ...
  Command failed with status code 2.
  No such command.  Try 'help'.
 * Failed
 [ !! ]
 * Finished Shutting down the Logical Volume Manager
 * Stopping dmeventd ...
 [ ok ]


Expected Results:  
For unmonted lvs, rc.log showing lvs & vgs deactivated

diff of proposed fix

diff lvm.rc-2.02.95-r2 /etc/init.d/lvm
76c76
<         VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix 2> /dev/null)
---
>         VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix --rows 2> /dev/null)
86c86
<                       lvm_commands="${lvm_commands}vgchange --sysinit -a ln\n"
---
>                       lvm_commands="${lvm_commands}vgchange --sysinit -a ln  ${VGS}\n"
Comment 1 Norman Back 2012-10-09 13:47:58 UTC
Created attachment 326086 [details, diff]
proposed patch to fix issue
Comment 2 Alexander Tsoy 2012-12-20 09:45:52 UTC
I have a system with 2 volume groups but I don't see the message "No such command.  Try 'help'." on shutdown. Nevertheless the patch seem reasonable to me except adding ${VGS} argument to vgchange command.


All volume groups from the second appears on separate lines in $lvm_commands variable now:

$ SOMEENV=$(echo -e "one\ntwo\nthree\n")
$ printf "%b\n" "command ${SOMEENV}\n"
command one
two
three

$
Comment 3 Norman Back 2012-12-20 15:45:09 UTC
(In reply to comment #2)
> I have a system with 2 volume groups but I don't see the message "No such
> command.  Try 'help'." on shutdown. Nevertheless the patch seem reasonable
> to me except adding ${VGS} argument to vgchange command.
> 
> 
> All volume groups from the second appears on separate lines in $lvm_commands
> variable now:
> 
> $ SOMEENV=$(echo -e "one\ntwo\nthree\n")
> $ printf "%b\n" "command ${SOMEENV}\n"
> command one
> two
> three
> 
> $

I'm puzzled that you don't see the error message.
I've added DEBUG output to the offending code:

 lvm_commands="${lvm_commands}vgchange --sysinit -a ln\n"
 # DEBUG.  Print command to rc.log
 printf "%b\n" "${lvm_commands}"
 # Order of this is important, have to work around dash and LVM readline
 printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null

This clarifies the issue in the rc.log file:
 * Shutting down the Logical Volume Manager
 *   Shutting Down LVs & VGs ...
#! /sbin/lvm --config 'global { locking_dir = "/run/lock/lvm" }'
lvchange --sysinit -a ln   syssda10
  syssda12
  syssdb10
  syssdb11
  syssdb6
  syssdb8
  syssdb9
  syssdc1
  syssdc3
  syssdc6
  syssdc7
  vgsda11
  vgsda15
  vgsdb7
  vgsdc10
  vgsdc2
vgchange --sysinit -a ln

  Command failed with status code 2.
  No such command.  Try 'help'.
 * Failed
 [ !! ]
Comment 4 Norman Back 2012-12-20 16:02:35 UTC
Simply adding '--rows' to the VGS command changes to debug output in the rc.log to:

 * Shutting down the Logical Volume Manager
 *   Shutting Down LVs & VGs ...
#! /sbin/lvm --config 'global { locking_dir = "/run/lock/lvm" }'
lvchange --sysinit -a ln   syssda10 syssda12 syssdb10 syssdb11 syssdb6 syssdb8 syssdb9 syssdc1 syssdc3 syssdc6 syssdc7 vgsda11 vgsda15 vgsdb7 vgsdc10 vgsdc2
vgchange --sysinit -a ln

  Logical volume syssdc3/slash contains a filesystem in use.
  Logical volume syssdc3/usr contains a filesystem in use.
 * Failed
 [ !! ]
 * Finished Shutting down the Logical Volume Manager

So I agree, adding ${VGS} to vgchange is not required.
Comment 5 Elfenbein, Karsten 2013-01-04 14:14:48 UTC
This bug happens for me as well with sys-fs/lvm2-2.02.97-r1
It appeared after adding a second volume group on my system.

The $lvm_commands look like:
#! /sbin/lvm --config 'global { locking_dir = "/run/lock/lvm" }'\nlvchange --sysinit -a ln   bigraid5  
 samsung840\nvgchange --sysinit -a ln\n

after adding the "--rows" the $VGS does not contain any additional linebreaks and there is no longer an error while shutting down.
Comment 6 John W. Newman 2013-01-31 02:21:06 UTC
I can confirm this happens with more than one VG with the latest udev

The patch of adding --rows to the generated command fixes the issue.  Thanks for that.
Comment 7 Lasse Lindner 2013-02-24 20:33:56 UTC
I can confirm this bug, happens here also with lvm2-2.02.97-r1. Adding "--rows" did the trick, thanks.
Comment 8 seraph@xs4all.nl 2013-03-04 09:49:06 UTC
I can confirm this issue on all my systems that have more than one VG.
Comment 9 Andreas Prieß 2013-04-10 14:51:15 UTC
Since this is not yet fixed: I can also confirm this issue on all my systems with more than one volume group.

Just adding --rows fixes it:

76c76
<         VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix 2> /dev/null)
---
>         VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix --rows 2> /dev/null)
Comment 10 cyberbat 2013-08-17 16:43:47 UTC
Excuse me but what problem for this to be fixed? "--rows" has a lot of confirmations to fix this issue. Can we get it to portage tree?
Comment 11 Navid Zamani 2013-10-20 14:25:35 UTC
This is still not fixed… a year later.

Any hold-up, guys? Can I help?
Comment 12 Robby Klehm 2013-11-10 11:56:16 UTC
Got the same error mentioned at description, solved it today and just like to provide my solution here:

Modify /etc/init.d/lvm at line 87 to:

# 2013-11-10 rklehm: ${VGS} replaced with ${VGS//$'\n'/}
lvm_commands="${lvm_commands}lvchange --sysinit -a ln ${VGS//$'\n'/}\n"


This patch removes all the newlines that appear at $VGS if there is more than one VG configured.
Comment 13 David Flogeras 2013-11-28 01:52:46 UTC
Just hit this today as well. A bump would be awesome.
Comment 14 Plopmaster 2013-12-11 12:12:01 UTC
Bug hit today too (sys-fs/lvm2-2.02.103)
Bump !
Comment 15 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2014-02-01 21:32:38 UTC
*** Bug 451478 has been marked as a duplicate of this bug. ***
Comment 16 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2014-02-02 05:52:30 UTC
InCVS in .105, please test
Comment 17 Norman Back 2014-02-25 15:42:29 UTC
(In reply to Robin Johnson from comment #16)
> InCVS in .105, please test

I attempted to emerge sys-fs/lvm2-2.02.105-r2 to test this but it failed to compile:

emerge --info '=sys-fs/lvm2-2.02.105-r2::gentoo'
Portage 2.2.7 (default/linux/amd64/13.0/desktop, gcc-4.7.3, glibc-2.17, 3.13.5-gentoo-64 x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.13.5-gentoo-64-x86_64-AMD_Phenom-tm-_II_X4_965_Processor-with-gentoo-2.2
KiB Mem:    16446240 total,  11702832 free
KiB Swap:   34602996 total,  34602996 free
Timestamp of tree: Tue, 25 Feb 2014 02:45:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
distcc 3.1 x86_64-pc-linux-gnu [disabled]
ccache version 3.1.9 [disabled]
app-shells/bash:          4.2_p45
dev-java/java-config:     2.1.12-r1
dev-lang/python:          2.7.5-r3, 3.3.3
dev-util/ccache:          3.1.9-r3
dev-util/cmake:           2.8.11.2
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r3, 1.11.6, 1.12.6, 1.13.4
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.6.3, 4.7.3-r1                                                                                                                      
sys-devel/gcc-config:     1.7.3                                                                                                                                
sys-devel/libtool:        2.4.2                                                                                                                                
sys-devel/make:           3.82-r4                                                                                                                              
sys-kernel/linux-headers: 3.9 (virtual/os-headers)                                                                                                             
sys-libs/glibc:           2.17                                                                                                                                 
Repositories: gentoo local ikelos systemd                                                                                                                      
Installed sets: @kde-4.11, @kernels                                                                                                                            
ACCEPT_KEYWORDS="amd64"                                                                                                                                        
ACCEPT_LICENSE="*"                                                                                                                                             
CBUILD="x86_64-pc-linux-gnu"                                                                                                                                   
CFLAGS="-march=amdfam10 -mtune=amdfam10 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0 /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=amdfam10 -mtune=amdfam10 -O2 -pipe"
DISTDIR="/mnt/portage.autofs/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y -j9 --load-average=8 --quiet-build=y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirror.qubenet.net/mirror/gentoo/ http://mirrors.linuxant.fr/distfiles.gentoo.org/ ftp://mirror.qubenet.net/mirror/gentoo/ http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ http://mirror.leaseweb.com/gentoo/ http://gentoo.modulix.net/gentoo/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ ftp://mirror.bytemark.co.uk/gentoo/"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j9 --load-average=8"
PKGDIR="/mnt/portage.autofs/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /var/lib/layman/ikelos /var/lib/layman/systemd"
SYNC="rsync://datastoreone/gentoo-portage"
USE="3dnow X a52 aac accessibility acl acpi alsa amarok amd64 amr authdaemond bash-completion berkdb bluetooth bluray branding bzip2 cairo caps cdda cdr cli consolekit cracklib crypt cups cxx dbus dri dts dv dvd dvdr dvdread emboss encode exif fam firefox flac fortran gdbm gif gpm gtk iconv ieee1394 ipv6 jpeg kde lcms ldap libnotify lm_sensors lock mad mmx mng modules mp3 mp4 mpeg multilib mysql ncurses network nls nptl ofx ogg opengl openmp oss pam pango pcre pdf png policykit ppds qt3 qt3support qt4 readline samba sasl sdl semantic-desktop session spell sse sse2 ssl startup-notification svg tcpd thunar tiff truetype udev udisks uk_bleb uk_rt unicode upower usb v4l v4l2 vdpau vorbis wxwidgets x264 xcb xine xinerama xml xv xvid xvmc zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias cgi cgid" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="lvm syslog" DVB_CARDS="usb-dib0700" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_GB" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby19 ruby18" SANE_BACKENDS="hp5590 hp net abaton agfafocus apple artec artec_eplus48u as6e avision bh canon canon630u canon_dr canon_pp cardscan coolscan coolscan2 coolscan3 dc210 dc240 dc25 dell1600n_net dmc epjitsu epson epson2 fujitsu genesys gt68xx hp3500 hp3900 hp4200 hp5400 hpljm1005 hpsj5s hs2p ibm kodak kvs1025 kvs20xx leo lexmark ma1509 magicolor matsushita microtek microtek2 mustek mustek_pp mustek_usb nec niash p5 pie pixma plustek plustek_pp pnm qcam ricoh rts8891 s9036 sceptre sharp sm3600 sm3840 snapscan sp15c st400 stv680 tamarack teco1 teco2 teco3 test u12 umax umax1220u umax_pp xerox_mfp" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 18 Norman Back 2014-02-25 15:43:43 UTC
Created attachment 371228 [details]
emerge log
Comment 19 Norman Back 2014-02-25 15:45:04 UTC
emerge -pqv '=sys-fs/lvm2-2.02.105-r2::gentoo'
[ebuild     U ] sys-fs/lvm2-2.02.105-r2 [2.02.103] USE="readline static static-libs thin udev -clvm -cman -device-mapper-only% -lvm1 -lvm2create_initrd (-selinux)"