Description of problem: livesys script is very slow takes 40 seconds to finish the script alone during bootstrap, please fork everything into the background http://autopsy.liveprojects.info/external/extra/livesys-slow.png This section takes WAY too long: # turn off firstboot for livecd boots chkconfig --level 345 firstboot off 2>/dev/null # don't start yum-updatesd for livecd boots chkconfig --level 345 yum-updatesd off 2>/dev/null # turn off mdmonitor by default chkconfig --level 345 mdmonitor off 2>/dev/null # turn off setroubleshoot on the live image to preserve resources chkconfig --level 345 setroubleshoot off 2>/dev/null # don't do packagekit checking by default gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_updates never >/dev/null gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_upgrades never >/dev/null gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_refresh_cache never >/dev/null gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_available false >/dev/null gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_distro_upgrades false >/dev/null gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_firmware false >/dev/null gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_hardware false >/dev/null gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_codec_helper false >/dev/null gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_font_helper false >/dev/null gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_mime_type_helper false >/dev/null # don't start cron/at as they tend to spawn things which are # disk intensive that are painful on a live image chkconfig --level 345 crond off 2>/dev/null chkconfig --level 345 atd off 2>/dev/null chkconfig --level 345 anacron off 2>/dev/null chkconfig --level 345 readahead_early off 2>/dev/null chkconfig --level 345 readahead_later off 2>/dev/null # Stopgap fix for RH #217966; should be fixed in HAL instead touch /media/.hal-mtab # workaround clock syncing on shutdown that we don't want (#297421) sed -i -e 's/hwclock/no-such-hwclock/g' /etc/rc.d/init.d/halt # and hack so that we eject the cd on shutdown if we're using a CD... if strstr "\`cat /proc/cmdline\`" CDLABEL= ; then cat >> /sbin/halt.local << FOE #!/bin/bash # XXX: This often gets stuck during shutdown because /etc/init.d/halt # (or something else still running) wants to read files from the block\ # device that was ejected. Disable for now. Bug #531924 # we want to eject the cd on halt, but let's also try to avoid # io errors due to not being able to get files... #cat /sbin/halt > /dev/null #cat /sbin/reboot > /dev/null #/usr/sbin/eject -p -m \$(readlink -f /dev/live) >/dev/null 2>&1 #echo "Please remove the CD from your drive and press Enter to finish restarting" #read -t 30 < /dev/console FOE chmod +x /sbin/halt.local fi EOF # bah, hal starts way too late cat > /etc/rc.d/init.d/livesys-late << EOF #!/bin/bash # # live: Late init script for live image # # chkconfig: 345 99 01 # description: Late init script for live image. . /etc/init.d/functions if ! strstr "\`cat /proc/cmdline\`" liveimg || [ "\$1" != "start" ] || [ -e /.liveimg-late-configured ] ; then exit 0 fi exists() { which \$1 >/dev/null 2>&1 || return \$* } touch /.liveimg-late-configured # read some variables out of /proc/cmdline for o in \`cat /proc/cmdline\` ; do case \$o in ks=*) ks="--kickstart=\${o#ks=}" ;; xdriver=*) xdriver="--set-driver=\${o#xdriver=}" ;; esac done # this is a bad hack to work around #460581 for the geode # purely to help move testing along for now if [ \`grep -c Geode /proc/cpuinfo\` -ne 0 ]; then cat > /etc/X11/xorg.conf <<FOE Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" EndSection Section "InputDevice" # keyboard added by rhpxl Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "Monitor" Identifier "Monitor0" HorizSync 30-67 VertRefresh 48-52 DisplaySize 152 114 Mode "1200x900" DotClock 57.275 HTimings 1200 1208 1216 1240 VTimings 900 905 908 912 Flags "-HSync" "-VSync" EndMode EndSection Section "Device" Identifier "Videocard0" Driver "amd" VendorName "Advanced Micro Devices, Inc." BoardName "AMD Geode GX/LX" Option "AccelMethod" "EXA" Option "NoCompression" "true" Option "MigrationHeuristic" "greedy" Option "PanelGeometry" "1200x900" EndSection Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 16 SubSection "Display" Depth 16 Modes "1200x900" EndSubSection EndSection FOE fi # if liveinst or textinst is given, start anaconda if strstr "\`cat /proc/cmdline\`" liveinst ; then plymouth --quit /usr/sbin/liveinst \$ks fi if strstr "\`cat /proc/cmdline\`" textinst ; then plymouth --quit /usr/sbin/liveinst --text \$ks fi # configure X, allowing user to override xdriver if [ -n "\$xdriver" ]; then exists system-config-display --noui --reconfig --set-depth=24 \$xdriver fi EOF chmod 755 /etc/rc.d/init.d/livesys /sbin/restorecon /etc/rc.d/init.d/livesys /sbin/chkconfig --add livesys chmod 755 /etc/rc.d/init.d/livesys-late /sbin/restorecon /etc/rc.d/init.d/livesys-late /sbin/chkconfig --add livesys-late Version-Release number of selected component (if applicable): RAWHIDE How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
These chkconfig and gconftool commands need to be run in %post not done in any livesys init script during bootstrap!!! PLEASE FIX IMMEDIATELY!!!
Some of this does indeed look crufty. ;) Can you narrow down what parts are particularly slow? I don't know that we want to make massive changes now, but targeted and well tested changes could be made. I don't think we can run this in the background.
All of the chkconfig and gconftool2 commands can be run in the kickstart's %post not needing to be in the livesys init script creation section. Ideally, any of it that shouldn't need to be run in the livesys init script that is created, should be run somewhere but not there.
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle. Changing version to '19'. (As we did not run this process for some time, it could affect also pre-Fedora 19 development cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.) More information and reason for this action is here: https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19
"All of the chkconfig and gconftool2 commands can be run in the kickstart's %post not needing to be in the livesys init script creation section." No, they can't, because then they'd affect the installed system too. All the stuff that happens in livesys and livesys-late is stuff we want to happen in the live session but *not* in the installed system. Anything that's done as part of kickstart compose will be part of any install from that live image.
This message is a notice that Fedora 19 is now at end of life. Fedora has stopped maintaining and issuing updates for Fedora 19. It is Fedora's policy to close all bug reports from releases that are no longer maintained. Approximately 4 (four) weeks from now this bug will be closed as EOL if it remains open with a Fedora 'version' of '19'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 19 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
Fedora 19 changed to end-of-life (EOL) status on 2015-01-06. Fedora 19 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. If you are unable to reopen this bug, please file a new report against the current release. If you experience problems, please add a comment to this bug. Thank you for reporting this bug and we are sorry it could not be fixed.