Summary: | sys-apps/openrc-0.2.1: /etc/init.d/local segfault on boot | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | srrijkers |
Component: | [OLD] baselayout | Assignee: | Gentoo's Team for Core System packages <base-system> |
Status: | VERIFIED TEST-REQUEST | ||
Severity: | normal | CC: | roy |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
/etc/conf.d/local
backtrace.log Check list existance before iterating |
Description
srrijkers
2008-04-03 20:42:40 UTC
emerge --info? What does /bin/sh point to? The name of the app that's crashing is called "local". /etc/init.d/local is not directly executable. It's run through /sbin/runscript, so if it was in fact crashing, you'd see runscript[PID]: segfault etc. OpenRC doesn't do any name mangling to change the name to the script. What other then the name makes you think that /etc/init.d/local is crashing? (In reply to comment #1) > emerge --info? See below. > What does /bin/sh point to? bash > What other then the name makes you think that /etc/init.d/local is crashing? 1) If I put something in /etc/conf.d/local it isn't executed on startup. 2) rc-status indicates that local is in a perpetual state of "starting" emerge --info: Portage 2.1.4.4 (default-linux/x86/2007.0, gcc-4.2.3, glibc-2.7-r2, 2.6.24-gentoo-r4 i686) ================================================================= System uname: 2.6.24-gentoo-r4 i686 Genuine Intel(R) CPU T2300 @ 1.66GHz Timestamp of tree: Thu, 03 Apr 2008 19:03:01 +0000 ccache version 2.4 [enabled] app-shells/bash: 3.2_p33 dev-lang/python: 2.5.1-r5 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 2.0.0 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.24 ACCEPT_KEYWORDS="x86 ~x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=prescott -mtune=generic -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-O2 -march=prescott -mtune=generic -pipe" DISTDIR="/var/portage/distfiles" EMERGE_DEFAULT_OPTS="--color y" FEATURES="ccache distlocks parallel-fetch sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="en_GB.UTF8" LC_ALL="en_GB.UTF8" LDFLAGS="-Wl,-O1" LINGUAS="en_GB en" MAKEOPTS="-j3" PKGDIR="/var/portage/packages" PORTAGE_RSYNC_EXTRA_OPTS="--prune-empty-dirs" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/var/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X a52 aac acl acpi alsa audiofile avahi bash-completion berkdb bluetooth bzip2 cairo caps cddb cdparanoia cdr cjk cli cracklib crypt cscope cups curl cvs dbus dri dvd dvdr dvdread eds encode exif fam ffmpeg flac fontconfig fortran gdbm gif gnome gnutls gpm graphviz gstreamer gtk gtkhtml hal iconv idn imagemagick imap imlib ipod ipv6 isdnlog jpeg lcms libnotify libsamplerate lm_sensors lua lzo mad midi mmx mng mono mp3 mpeg mudflap ncurses networkmanager nls nntp nptl nptlonly nsplugin ogg opengl openmp pam pcre pdf perl png pppd pulseaudio python readline reflection ruby samba sdl session spell spl sse sse2 ssl subversion svg taglib tcpd tetex theora threads tiff truetype unicode usb vim-syntax vorbis x264 x86 xattr xcb xml xorg xpm xscreensaver xulrunner xv xvid zeroconf zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon 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 deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB en" USERLAND="GNU" VIDEO_CARDS="i810" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS (In reply to comment #2) > 2) rc-status indicates that local is in a perpetual state of "starting" As does /etc/init.d/local status: * status: starting This is three hours after boot. attach your /etc/conf.d/local and /etc/conf.d/local.start files Created attachment 148545 [details]
/etc/conf.d/local
My /etc/conf.d/local. I have also tried it with the two added lines removed; same result. On boot, it doesn't even display "Starting local"
I don't have a /etc/conf.d/local.start.
pid 2134 is pretty large for a boot pid ... rebuild openrc with USE=debug, proper debug CFLAGS, and reboot. if openrc is really the thing segfaulting, it'll launch gdb, and you can provide the traceback. With CFLAGS="-march=prescott -O2 -ggdb" and openrc emerged with USE="debug" I get the following on boot: Auto launching gdb! Attaching to process 2138 Reading symbols from /sbin/rc...(no debugging symbols found)...done. Reading symbols from /lib/libutil.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/libutil.so.1 Reading symbols from /lib/librc.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/librc.so.1 Reading symbols from /lib/libeinfo.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/libeinfo.so.1 Reading symbols from /lib/libncurses.so.5...(no debugging symbols found)...done. Loaded symbols for /lib/libncurses.so.5 Reading symbols from /lib/libdl.so.2... (no debugging symbols found)...done. Loaded symbols for /lib/libdl.so.2 Reading symbols from /lib/libpam.so.0...(no debugging symbols found)...done. Loaded symbols for /lib/libpam.so.0 Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/ld-linux.so.2 (no debugging symbols found) 0xb7fe4410 in __kernel_vsyscall () #0 0xb7fe4410 in __kernel_vsyscall () No symbol table info available. #1 0xb7ed89bd in wait () from /lib/libc.so.6 No symbol table info available. #2 0x08057893 in ?? () No symbol table info available. #3 0xbfe53570 in ?? () No symbol table info available. #4 0x00000000 in ?? () No symbol table info available. (gdb) After which the boot hangs. Detaching gdb gives me a login prompt. you didnt build openrc properly. please consult the guide: http://www.gentoo.org/doc/en/bugzilla-howto.xml Created attachment 148584 [details] backtrace.log (In reply to comment #8) > you didnt build openrc properly. please consult the guide: > http://www.gentoo.org/doc/en/bugzilla-howto.xml Yeah, sorry about that. I forgot to set my FEATURES correctly. Still, with this being my first backtrace and all... ;) I've attached the full backtrace as well. #0 0xb7f8c410 in __kernel_vsyscall () #1 0xb7e809bd in wait () from /lib/libc.so.6 #2 0x08057bc3 in handle_bad_signal (sig=11) at rc.c:925 #3 <signal handler called> #4 0x08055278 in svc_start (deps=true) at runscript.c:751 #5 0x0805642c in runscript (argc=2, argv=0xbf8f96b4) at runscript.c:1279 #6 0x080501a0 in run_applets (argc=3, argv=0xbf8f96b4) at rc-applets.c:387 #7 0x08057ce1 in main (argc=3, argv=0xbf8f96b4) at rc.c:992 Also, let me note that this doesn't structurally happen on *every* boot. I have no idea why or when this happens exactly, just "regularly". Created attachment 148631 [details, diff]
Check list existance before iterating
This patch against openrc-0.2.1 should fix it, thanks to the excellent backtrace :)
(In reply to comment #10) Great! I'll see how this holds up over a couple of (re)boots, after which this bug can probably be resolved. Thanks for your quick reaction! committed as part of openrc-0.2.1-r1 I haven't encountered the segfault anymore. Thanks again for fixing it! |