Thread View: net.bugs.2bsd
2 messages
2 total messages
Started by Kevin "Mr. Boots" Ruddy
Mon, 06 Jan 1986 20:56
init
Author: Kevin "Mr. Boots" Ruddy
Date: Mon, 06 Jan 1986 20:56
Date: Mon, 06 Jan 1986 20:56
26 lines
2025 bytes
2025 bytes
There is apparently a very interesting (and annoying) bug in 2.9's init, or
so we have encountered. If ^C is hit in between when init forks and when
getty is exec'd, SIGINT is sent to init. Sometimes this even happened to
running login's.
This bug should be able to be reproduced by repeatedly hitting ^C at any
currently running getty or login. The result of this is that init's child
thinks it's going into special session. It logs everyone out and is a
rather nasty problem. (A question: when this happens, it sometimes happens
that not everyone is logged out. Why would kill(-1, SIGKILL) not always
work?)
The best fix for this would be this: after init forks in dfork(), have
it firstly setpgrp(0, getpid()). This should solve all problems. For
some odd reason, when we do this, and compile -ljobs, init "breaks" and
things go temporarily haywire, and it becomes impossible to log in.
Our second solution was to signal(SIGINT, SIG_DFL), rather than setpgrp().
This seems to have fixed the problem.
Has anyone else experienced this problem? It became very annoying when
we started to use the 'B' option in getty, and people tried to set speeds
by hitting ^C many times in a row ...
--
ADDR: Kevin Ruddy, 42 Pantry Road, Sudbury MA 01776
UUCP: {genrad!grkermit,harvard!wjh12,bbncca,mit-eddie!frog}!lsrhs!smiles
ARPA: lsrhs!smiles@bbncca.arpa
Re: init
Author: root
Date: Thu, 09 Jan 1986 16:09
Date: Thu, 09 Jan 1986 16:09
27 lines
1606 bytes
1606 bytes
>There is apparently a very interesting (and annoying) bug in 2.9's init, or >so we have encountered. If ^C is hit in between when init forks and when >getty is exec'd, SIGINT is sent to init. Sometimes this even happened to >running login's. > >This bug should be able to be reproduced by repeatedly hitting ^C at any >currently running getty or login. The result of this is that init's child >thinks it's going into special session. It logs everyone out and is a >rather nasty problem. (A question: when this happens, it sometimes happens >that not everyone is logged out. Why would kill(-1, SIGKILL) not always >work?) > >Our second solution was to signal(SIGINT, SIG_DFL), rather than setpgrp(). You should also add: signal(SIGQUIT, SIG_DFL); Another way to produce the problems is to have root do a "kill -2" on *ANY* init processes. Kevin W. Thomas Univ. of Oklahoma School of Meteorology Norman, OK UUCP: ...!ihnp4!okstate!uokvax!uokmet!kwthomas
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads