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

Bug 216091

Summary: sys-apps/openrc-0.2.1: /etc/init.d/local segfault on boot
Product: Gentoo Linux Reporter: srrijkers
Component: [OLD] baselayoutAssignee: 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
On each bootup, /etc/init.d/local segfaults, leaving the following kind of message: local[2134]: segfault at 00000000 eip 080553aa esp bfda3fc0 error 4.

This happens with an unmodified /etc/conf.d/local as well.

This doesn't happen when local is started manually.
Comment 1 Doug Goldstein (RETIRED) gentoo-dev 2008-04-03 21:20:49 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?
Comment 2 srrijkers 2008-04-03 21:27:06 UTC
(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
Comment 3 srrijkers 2008-04-03 21:31:29 UTC
(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.
Comment 4 Doug Goldstein (RETIRED) gentoo-dev 2008-04-03 21:46:31 UTC
attach your /etc/conf.d/local and /etc/conf.d/local.start files
Comment 5 srrijkers 2008-04-03 21:56:03 UTC
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.
Comment 6 SpanKY gentoo-dev 2008-04-03 21:56:12 UTC
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.
Comment 7 srrijkers 2008-04-03 22:31:32 UTC
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.
Comment 8 SpanKY gentoo-dev 2008-04-03 22:54:01 UTC
you didnt build openrc properly.  please consult the guide:
http://www.gentoo.org/doc/en/bugzilla-howto.xml
Comment 9 srrijkers 2008-04-04 11:22:37 UTC
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".
Comment 10 Roy Marples 2008-04-04 16:32:57 UTC
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 :)
Comment 11 srrijkers 2008-04-04 17:01:39 UTC
(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!
Comment 12 Doug Goldstein (RETIRED) gentoo-dev 2008-04-04 19:30:56 UTC
committed as part of openrc-0.2.1-r1
Comment 13 srrijkers 2008-04-06 19:30:29 UTC
I haven't encountered the segfault anymore. Thanks again for fixing it!