Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 491194 - sys-boot/plymouth - doesn't provide OpenRC services
Summary: sys-boot/plymouth - doesn't provide OpenRC services
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal enhancement (vote)
Deadline: 2017-09-02
Assignee: Matthew Thode ( prometheanfire )
URL:
Whiteboard:
Keywords: NeedPatch
Depends on:
Blocks:
 
Reported: 2013-11-13 21:19 UTC by Dan Goodliffe
Modified: 2018-02-16 18:11 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
add a warning about openrc (openrc-warn.patch,796 bytes, patch)
2013-11-25 14:23 UTC, Enrico Tagliavini
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Goodliffe 2013-11-13 21:19:07 UTC
After booting seemingly normally, plymouthd (mysteriously @lymouthd) appears to sit in a semi-busy loop using more and more memory and CPU time.

Snippet from top:
top - 21:07:15 up  2:19,  3 users,  load average: 0.12, 0.64, 0.71
Tasks: 237 total,   3 running, 234 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.8 us,  0.7 sy,  0.0 ni, 96.2 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                       
  299 root      20   0  263.6m 217.2m   1.4m R  13.9  2.7  20:35.56 @lymouthd --attach-to-session --pid-file /run/plymouth/pid

"strace -p 299" produces an endless loop of:
epoll_wait(3, {}, 64, 0)                = 0
epoll_wait(3, {}, 64, 0)                = 0
epoll_wait(3, {}, 64, 13)               = 0
epoll_wait(3, {}, 64, 0)                = 0
epoll_wait(3, {}, 64, 0)                = 0

"lsof -p 299"
...
plymouthd 299 root    3u  a_inode                0,8        0    7 [eventpoll]
...

Switching to vt1 shows the boot splash with the theme still animating.

Reproducible: Always

Steps to Reproduce:
1.configure plymouth bootsplash
2.boot normally
Can't say specifically when this started to occur, I'm not aware of any changes I've made that may be related.
Actual Results:  
plymouthd continues to eat resources and a steady rate.

Expected Results:  
Not sure if plymouthd should stop completely (exit) or sit completely idle until shutdown/reboot.

Portage 2.2.7 (default/linux/amd64/13.0/desktop/kde, gcc-4.8.1, glibc-2.17, 3.11.7-tuxonice x86_64)
=================================================================
System uname: Linux-3.11.7-tuxonice-x86_64-Intel-R-_Core-TM-_i7-3820_CPU_@_3.60GHz-with-gentoo-2.2
KiB Mem:     8161164 total,    333660 free
KiB Swap:    6291452 total,   6291452 free
Timestamp of tree: Wed, 13 Nov 2013 14:30:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.5-r4, 3.2.5-r3, 3.3.2-r2
dev-util/cmake:           2.8.12.1
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.11.6, 1.12.6, 1.14
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.8.1-r1
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.11 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo RandomLAN
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA PUEL AdobeFlash-10.1 Oracle-BCLA-JavaSE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=native -pipe -fno-stack-protector"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=native -pipe -fno-stack-protector"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://defiant.random.lan/portage http://firebrand.random.lan/portage http://sys.randomdan.homeip.net/"
LANG="en_GB.utf8"
LC_ALL="C"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="-e 'ssh -x'"
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="/var/lib/layman/RandomLAN"
SYNC="rsync://portage@portage/gentoo-portage"
USE="64bit X a52 aac accessibility acl acpi additions aim alsa amd64 apm apng audiofile automount autoshutdown autoupdate bash-completion berkdb bluetooth branding browserplugin bzip2 c++0x cairo caps cdb cdda cddb cdparanoia cdr clang cli consolekit cracklib cscope css ctype curl curlwrappers custom-cflags custom-march custom-optimization cxx dbus declarative device-mapper dhcpcd dio disable-sound disable-torrent disk-partition divx dlloader docbook dpms dri drm dts dv dvb dvd dvdr dvdread dynagraph ebook effects emerald encode exif extensions extrafilters extras fam fame fastcgi ffmpeg firefox firmware flac fontconfig frei0r frontendonly ftp fts3 fuse g3dvl gallium gbm gdbm gif gimp git glamor gles gles1 gles2 glib glitz glut glx gmail gmailtimestamps gmedia gnutls gtk gtk3 h323 hardenedphp hpn iconv icq icu id3 id3tag imagemagick imap imlib imlib2 innodb inotify ipv6 ithreads javascript jpeg jpeg2k kde kdeenablefinal kipi kqemu lame lcms ldap libkms libnotify lightning lm_sensors logrotate lto lvm lvmboot lvmroot lzma lzo mad maildir melt messenger minizip mmx mmxext modules mozcalendar mp3 mp4 mp4live mpeg mpeg2 mpeg4 mpm-prefork msn mudflap multilib multithreaded mysql mysqli mythtv ncurses network network-cron networkmanager nls no-old-linux nocardbus nocd nohardenedkernel nptl nptlonly nscd nsplugin ntp nuv nvidia offensive ogg openexr opengl openvg optimize opus oscar osmesa pam pango pch pcre pdf plasma png policykit portage postgres ppds pvr python python3 qt3support qt4 r600-llvm-compiler rdesktop rdp readline real realmedia redland remote resolvconf rtmp sblive screen secure-delete session shared-dricore sharedext shorten silc smp sndfile soap sockets spell sql sqlite sse sse-filters sse2 sse3 sse4_1 sse4_2 ssl ssse3 startup-notification stats stencil-buffer stream subversion svg sw-suspend symlink sysfs syslog system-cairo system-jpeg system-sqlite system-v8 tcpd themes theora threads thumbnail tidy tiff transcode truetype udev udisks underscores unicode unity-lobby unlock-notify upnp upower usb uuid v4l v4l2 vaapi vdpau vhosts vim vim-pager vim-syntax vim-with-x vlc vorbis vpnc win32codecs wmf wmp wxwidgets x264 xa xattr xcb xcomposite xinerama xml xmms xmp xrandr xscreensaver xsl xslt xv xvfb xvid xvmc yahoo yvl2 zip 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="filter authz_host cgid mime_magic mime autoindex vhost_alias dav dir deflate log_config env rewrite cache mem_cache unixd socache authz_core authn_core socache_shmcb" CALLIGRA_FEATURES="braindump flow karbon stage tables words" CAMERAS="sony_dscf1 sony_dscf55" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="syslog lvm plymouth" DVB_CARDS="none" 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 ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="none" 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_2" RUBY_TARGETS="ruby20" USERLAND="GNU" VIDEO_CARDS="radeon r600" 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, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON
Comment 1 Dan Goodliffe 2013-11-13 21:40:11 UTC
Oh... was just looking to see if there was an older version of plymouth I could try... and found plymouth-openrc-plugin which appears to address the issue.
But no indication anywhere what it actually does or that it should be installed.

Looking at the changelog this was based around the openrc USE flag... but plymouth [no longer] has an openrc USE flag.

akira ~ # emerge -qpv plymouth
[ebuild   R   ] sys-boot/plymouth-0.8.8-r4  USE="gtk libkms pango -debug -gdm -static-libs" VIDEO_CARDS="radeon -intel" 

A colleague has an older version of plymouth (0.8.8) which does pull in plymouth-openrc-plugin. Did this dependency get removed deliberately (systemd changes?), because it seems quite key. Should there be at least an elog warning about it?
Comment 2 Dan Goodliffe 2013-11-13 21:52:12 UTC
Bug #487674 I'm guessing explains all of this (reference in the changelog only mentioned removal of systemd USE flag)

For anyone else who finds this, plymouth-openrc-plugin does work for me for now in the simple case.

Is there a plan for where this goes?
Comment 3 Jeroen Roovers (RETIRED) gentoo-dev 2013-11-15 17:01:35 UTC
Might be a duplicate of bug #487558. Which version of nvidia-drivers do you have?
Comment 4 Dan Goodliffe 2013-11-15 17:23:37 UTC
ATI Radeon card, no nvidia-drivers at all.
Having looked at that bug though, I'm not sure I see the connection.
Comment 5 Enrico Tagliavini 2013-11-16 16:12:27 UTC
You are correct, for now you need the openrc plugin. plymouthd is NOT supposed to be running once the boot is done.

The problem here is complex. First the openrc plugin is unmaintained upstream. Nobody is developing it anymore. It is not even strictly needed. What is needed is just an openrc service starting and stopping plymouthd at the beginning and end of boot.

Patches are welcome. I don't use openrc and I have no time doing another installation where I can test right now. The idea is very simple: just port the plymouth systemd services to openrc.

It cannot depend on the openrc plugin for a simple reason: since the openrc plugin is unmaintained it cannot be stable, but plymouth is in the stable branch itself.

Will try to have another look at it, when I can find some time, thanks for pointing this out
Comment 6 Enrico Tagliavini 2013-11-22 11:35:25 UTC
I changed the bug subject. The CPU usage and memory leaks are upstream bugs anyway and they are exposed in gentoo when using OpenRC because the daemon is not stopped when the boot ends
Comment 7 Enrico Tagliavini 2013-11-25 14:23:57 UTC
Created attachment 363952 [details, diff]
add a warning about openrc

I know this doesn't solve the problem, but might help finding somebody to solve it.

What about adding this warn to the ebuild in tree?
Comment 8 Sam Jorna (wraeth) gentoo-dev 2016-04-26 10:38:15 UTC
commit 7f805bae938b58b86f697da02258e2ebe0372981
Author: Sam Jorna <wraeth@gentoo.org>
Date:   Tue Apr 26 20:21:36 2016 +1000

    sys-boot/plymouth: remove proxy maintainer
    
    Proxy maintainer has requested to drop the package per mail to the
    project. Removing both maintainer and project from metadata.xml.
Comment 9 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-08-03 20:11:56 UTC
# Michał Górny <mgorny@gentoo.org> (04 Aug 2017)
# sys-boot/plymouth is unmaintained since Apr 2016. The current version
# has multiple bugs, including not supporting OpenRC. It really needs
# an active maintainer. Removal in 30 days. Bug #621470.
#
# The remaining packages are sys-boot/plymouth reverse dependencies.
# They have no use without it, so they are being removed as well.
kde-plasma/breeze-plymouth
kde-plasma/plymouth-kcm
sys-boot/plymouth
sys-boot/plymouth-openrc-plugin
Comment 10 lperkins 2018-02-01 18:34:01 UTC
For reference:

The plymouth-openrc-plugin package is necessary if you want your Plymouth splash screen to be able to display boot status updates (in addition to turning Plymouth on and off it also captures some of the messages that normally appear on the console and passes them on to Plymouth.)  

If you want Plymouth to appear on shutdown, you'll either need the plugin, or your on-shutdown service needs to start Plymouth, show the splash screen, and then tell Plymouth to shutdown but keep the splash displayed.  Failure to do that last bit results in /var not being unmountable because it is in use by Plymouth.


The current version of plymouth-openrc-plugin works on startup, but not on shutdown.  On shutdown it tells plymouth to exit as soon as it sees localmount go past, but localmount is now run at the beginning of the shutdown process instead of the end.  So it exits immediately before it can even turn the splash on.  I have a fixed version at: https://github.com/tlhonmey/plymouth-openrc-plugin  Do with it as you wish.