Bug #1344

shutdown now" does not work

Added by sepherosa over 5 years ago. Updated about 5 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

Hi all,

"shutdown now" does not work on HEAD. I don't know when it starts,
but it should be quite recent.

Symptom:

xanadu:~# shutdown now
Shutdown NOW!
shutdown: [pid 737]
xanadu:~#

*** FINAL System shutdown message from root@xanadu ***
System going down IMMEDIATELY

...
...
Enter full pathname of shell or RETURN for /bin/sh:

After the above line, "enter" does not work at all, and nothing could be input.
CTRL-ALT-DEL still works.

Best Regards,
sephe

History

#1 Updated by swildner over 5 years ago

Sepherosa Ziehau schrieb:
> Hi all,
>
> "shutdown now" does not work on HEAD. I don't know when it starts,
> but it should be quite recent.
>
> Symptom:
>
> xanadu:~# shutdown now
> Shutdown NOW!
> shutdown: [pid 737]
> xanadu:~#
>
> *** FINAL System shutdown message from root@xanadu ***
> System going down IMMEDIATELY
>
> ...
> ...
> Enter full pathname of shell or RETURN for /bin/sh:
>
>
> After the above line, "enter" does not work at all, and nothing could be input.
> CTRL-ALT-DEL still works.

I tried this too yesterday and i had one more line after the "Enter full
pathname" line:

init: can't exec for single user: No such file or directory

This is coming from shutdown.

Sascha

#2 Updated by Anonymous over 5 years ago

: "shutdown now" does not work on HEAD. I don't know when it starts,
: but it should be quite recent.

I am git-bisect'ing it. I started before the libc merge, which translates to
~200 commits until HEAD. I'll need 7-8 buildworlds to track it down.

Cheers,
Stathis

#3 Updated by Anonymous over 5 years ago

:: "shutdown now" does not work on HEAD. I don't know when it starts,
:: but it should be quite recent.

:I am git-bisect'ing it. I started before the libc merge, which translates to
:~200 commits until HEAD. I'll need 7-8 buildworlds to track it down.

Hi.

The commit after 'shutdown now' has stopped working is
b8477cda8783596a7c765667658de9a94dd368fd
" Revoke reimplementation - primary commit part 1/2"

Any ideas on how to further debug it ? Breaking into ddb doesn't show much, just
that we are in scgetc(), a syscons function. Also, ktrace'ing init and then
invoking the command in discussion, produces this output:
http://leaf.dragonflybsd.org/~beket/ktrace.out.txt

Cheers,
Stathis

#4 Updated by qhwt+dfly over 5 years ago

On Mon, Apr 27, 2009 at 10:43:27AM +0000, Stathis Kamperis (via DragonFly issue tracker) wrote:
>
> Stathis Kamperis <> added the comment:
>
> :: "shutdown now" does not work on HEAD. I don't know when it starts,
> :: but it should be quite recent.
>
> :I am git-bisect'ing it. I started before the libc merge, which translates to
> :~200 commits until HEAD. I'll need 7-8 buildworlds to track it down.
>
> Hi.
>
> The commit after 'shutdown now' has stopped working is
> b8477cda8783596a7c765667658de9a94dd368fd
> " Revoke reimplementation - primary commit part 1/2"
>
> Any ideas on how to further debug it ? Breaking into ddb doesn't show much, just
> that we are in scgetc(), a syscons function. Also, ktrace'ing init and then
> invoking the command in discussion, produces this output:
> http://leaf.dragonflybsd.org/~beket/ktrace.out.txt
>
> Cheers,
> Stathis
>
> _____________________________________________________
> DragonFly issue tracker <>
> <http://bugs.dragonflybsd.org/issue1344>
> _____________________________________________________

Any progress on this issue?

If I issue shutdown command from an ssh session, the console is usable.
If I switch to ttyv1(alt+F2), login as root, then issue `shutdown now',
the screen locks up but I can switch to ttyv0(alt+F1) and it accepts
the keystroke. An odd thing is that you can switch back to ttyv1 from
ttyv0 after going to single-user mode.

#5 Updated by sepherosa over 5 years ago

Hi all,

Any insights into this issue? I do hope it could be solved.

On Sat, May 9, 2009 at 4:53 PM, YONETANI Tomokazu <> wrote:
> On Mon, Apr 27, 2009 at 10:43:27AM +0000, Stathis Kamperis (via DragonFly issue tracker) wrote:
>>
>> Stathis Kamperis <> added the comment:
>>
>> :: "shutdown now" does not work on HEAD.  I don't know when it starts,
>> :: but it should be quite recent.
>>
>> :I am git-bisect'ing it. I started before the libc merge, which translates to
>> :~200 commits until HEAD. I'll need 7-8 buildworlds to track it down.
>>
>> Hi.
>>
>> The commit after 'shutdown now' has stopped working is
>> b8477cda8783596a7c765667658de9a94dd368fd
>> " Revoke reimplementation - primary commit part 1/2"
>>
>> Any ideas on how to further debug it ? Breaking into ddb doesn't show much, just
>> that we are in scgetc(), a syscons function. Also, ktrace'ing init and then
>> invoking the command in discussion, produces this output:
>> http://leaf.dragonflybsd.org/~beket/ktrace.out.txt
>>
>> Cheers,
>> Stathis
>>
>> _____________________________________________________
>> DragonFly issue tracker <>
>> <http://bugs.dragonflybsd.org/issue1344>
>> _____________________________________________________
>
> Any progress on this issue?
>
> If I issue shutdown command from an ssh session, the console is usable.
> If I switch to ttyv1(alt+F2), login as root, then issue `shutdown now',
> the screen locks up but I can switch to ttyv0(alt+F1) and it accepts
> the keystroke.  An odd thing is that you can switch back to ttyv1 from
> ttyv0 after going to single-user mode.
>

#6 Updated by qhwt+dfly over 5 years ago

On Wed, Jun 03, 2009 at 09:32:35PM +0800, Sepherosa Ziehau wrote:
> Hi all,
>
> Any insights into this issue? I do hope it could be solved.

I think I found *something* (not the fix, tho). From revoke(9) man page:

DESCRIPTION
The revoke() function invalidates all current open file descriptors in
the system for the file named by path. Subsequent operations on any such
descriptors fail, with the exceptions that a read() from a character
device file which has been revoked returns a count of zero (end of file),
and a close() call will succeed.

This is true on my 2.2-RELEASE box, but not on -DEVELOPMENT. Below is a
code snippet to demonstrate this difference.

%%%%%%%%
$ cat > a.c
#include <errno.h>
#include <stdio.h>
#include <syslog.h>
#include <unistd.h>

int
main()
{
char buf[10];

syslog(LOG_ALERT, "TEST");
if (revoke(ttyname(STDIN_FILENO)) != 0)
perror("revoke");

size_t got = read(STDIN_FILENO, buf, 1);
syslog(LOG_ALERT, "got:%d, errno:%d\n", got, errno);
return 0;
}

$ gcc -W -Wall a.c && ./a.out
%%%%%%%%

On 2.2-RELEASE, it logs `a.out: got:0, errno:0' to /var/log/messages
while it logs `a.out: got:-1, errno:9' on -DEVELOPMENT. This may or
may not affect init(8) or programs invoked from it.

> On Sat, May 9, 2009 at 4:53 PM, YONETANI Tomokazu <> wrote:
> > On Mon, Apr 27, 2009 at 10:43:27AM +0000, Stathis Kamperis (via DragonFly issue tracker) wrote:
> >>
> >> Stathis Kamperis <> added the comment:
> >>
> >> :: "shutdown now" does not work on HEAD. 〓I don't know when it starts,
> >> :: but it should be quite recent.
> >>
> >> :I am git-bisect'ing it. I started before the libc merge, which translates to
> >> :~200 commits until HEAD. I'll need 7-8 buildworlds to track it down.
> >>
> >> Hi.
> >>
> >> The commit after 'shutdown now' has stopped working is
> >> b8477cda8783596a7c765667658de9a94dd368fd
> >> " Revoke reimplementation - primary commit part 1/2"
> >>
> >> Any ideas on how to further debug it ? Breaking into ddb doesn't show much, just
> >> that we are in scgetc(), a syscons function. Also, ktrace'ing init and then
> >> invoking the command in discussion, produces this output:
> >> http://leaf.dragonflybsd.org/~beket/ktrace.out.txt
> >>
> >> Cheers,
> >> Stathis
> >>
> >> _____________________________________________________
> >> DragonFly issue tracker <>
> >> <http://bugs.dragonflybsd.org/issue1344>
> >> _____________________________________________________
> >
> > Any progress on this issue?
> >
> > If I issue shutdown command from an ssh session, the console is usable.
> > If I switch to ttyv1(alt+F2), login as root, then issue `shutdown now',
> > the screen locks up but I can switch to ttyv0(alt+F1) and it accepts
> > the keystroke. 〓An odd thing is that you can switch back to ttyv1 from
> > ttyv0 after going to single-user mode.
> >
>
>
>
> --
> Live Free or Die

#7 Updated by sepherosa about 5 years ago

Fixed by dillon@:
a32446b7b42983c7cb48c360d105496b4a3596c3

Also available in: Atom PDF