Re: DEBUG output in init causes fifo to be ignored...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 13 Jun 2003, James Olin Oden wrote:

> I was experience a problem with init (not running rc scripts; I will deal
> with this in seperate email), and so I pulled down the SysVinit srpm
> and rebuilt it with DEBUG set to 1 in init.h.  This cause init to print
> lots of nice debug output, but...
> 
> When its in this mode on our 2GHz, duel processor machines with hyper 
> threading, init then gets into a state where it does not respond to 
> telinit.  If I look in /dev/initctl (init's fifo) the requests are being
> received, but its not servicing the requests.  Its as if its stuck
> somewhere and never calls init::process_signals().
>
OK, I figured out that it if I set:

	#define INITDEBUG  1

in init.h, then init will fork itself immediately, and manage
things from a process with a pid other than 1 (which makes it 
ptrace'able).  Now that I can run gdb against it and run strace 
against it, I tried:

	init 6

and looked at things.  The last syscall I see  init in after 
running the init 6, is:

	futex(0x4212f1f4, FUTEX_WAIT, -1, NULL

And the stack trace is:

	#0  0xffffe002 in ?? ()
	#1  0x0804a1ff in log ()
	#2  0x08049f17 in chld_handler ()
	#3  <signal handler called>
	#4  0xffffe000 in ?? ()
	#5  0x4202774e in sigaction () from /lib/tls/libc.so.6
	#6  0x420daa21 in vsyslog () from /lib/tls/libc.so.6
	#7  0x420da75f in syslog () from /lib/tls/libc.so.6
	#8  0x0804a20f in log ()
	#9  0x0804b1ba in read_inittab ()
	#10 0x0804bcc3 in fifo_new_level ()
	#11 0x0804bef6 in check_init_fifo ()
	#12 0x0804cb88 in init_main ()
	#13 0x0804cf40 in main ()
	#14 0x420156a4 in __libc_start_main () from /lib/tls/libc.so.6

I know precious little about futex's, but I would wage that init is hung 
waiting on a resource and it is never going to get unhung.  It seems to 
be in the log() function.  log() does:

	1) open syslog.
	2) Send message to syslog.
	3) Print to the console device.

Which of these might be the one calling the futex()?  Furthermore, why 
might it be locking on these 2GHz, smp boxes?  What resources might I 
look at to better understand this problem?

thanks...james


_______________________________________________
Redhat-devel-list mailing list
Redhat-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/redhat-devel-list

[Index of Archives]     [Kernel Newbies]     [Red Hat General]     [Fedora]     [Red Hat Install]     [Linux Kernel Development]     [Yosemite News]

  Powered by Linux