Serious issue with serial console in 5.4
Robert Watson
rwatson at FreeBSD.org
Thu Jul 21 10:15:56 GMT 2005
On Thu, 21 Jul 2005, Eirik Øverby wrote:
>>> The above panic will show up occasionally when logging out from a
>>> serial console (i.e. ctrl-D, logout, exit, whatever). This is
>>> EXTREMELY BAD, as it will crash an otherwise perfectly healthy box at
>>> random - and renders the serial console useless.
>>>
>>> Robert Watson confirmed this to be an issue on the 10th of April.
>>
>> You might have to wait until 6.0-R since fixing it seems to require
>> infrastructure changes that cannot easily be backported to 5.x.
>
> With all due respect - if this is (and I'm assuming it is, because it
> happens on all the servers I'm serial-controlling) an omnipresent
> problem on 5.x, I daresay it should warrant some more attention. Having
> unsafe serial terminal support that can bring down your system like that
> defies much of the point of having serial terminal support in the first
> place.
>
> However, since I seem to be the only one who has noticed this, perhaps
> I'm the last person on earth to routinely use serial terminal switches
> instead of KVM switches to do my admin work?
The concern about the 5.x backport is that it will break parts of the
device driver ABI, and is a significant change that involves a lot of
risk.
Regarding the general prevalence of the problem -- I've seen a small
number of people reporting it's a big problem. Since I know of a great
many people running with serial consoles (other than a workstation, I
never run FreeBSD boxes any other way), this leads me to believe it's
something that shows up in fairly specific conditions -- perhaps relating
to precise timing of a race condition. This means that if we introduce a
generally destabilizing change, it may impact more people than the problem
as it exists (a nasty trade-off).
I've only seen the issue when logging out of a serial console session, and
had previously hypothesized that it had to do with the simultaneous timing
of a console message from syslog and the opening/closing of the console's
tty due to logging out and getty restarting, resulting in a reference
count improperly hitting zero.
I thought Doug White had come up with a work-around patch that prevented
the reference count from being allowed to hit 0 for the console by
artificially elevating it, which would prevent the panic, so either (a)
the work around wasn't committed, or (b) it didn't work.
I can attempt to take another look at this problem in a week or so, but
have a number of things I need to finish up for FreeBSD 6.0 before then
that will be occupying my time.
Robert N M Watson
More information about the freebsd-stable
mailing list