Subject: kern/24221: Garbage can move between virtual terminals?
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <rkr@olib.org>
List: netbsd-bugs
Date: 01/24/2004 16:52:20
>Number:         24221
>Category:       kern
>Synopsis:       Garbage can move between virtual terminals?
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jan 24 23:22:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Richard Rauch
>Release:        NetBSD 1.6ZH
>Organization:
  "I probably don't know what I'm talking about."  http://www.olib.org/~rkr/
>Environment:
System: NetBSD socrates 1.6ZH NetBSD 1.6ZH (socrates) #3: Sat Jan 24 13:01:02 CST 2004 root@socrates:/usr/netbsd/current/src/sys/arch/amd64/compile/obj.amd64/socrates amd64
Architecture: x86_64
Machine: amd64
>Description:
	[NOTE: I gave this a low priority because, so far, I have never observed
	 a crash.  It is possible that the bug can be induced to crash the
	 system by "stealing" data from a big virtual console to a small
	 virtual console.  If that proves to be true, a higher
	 priority/severity would probably be appropriate.]

	Under some circumstances, seemingly random characters can appear on
	the wrong virtual terminal.

	E.g., if I ssh to my web-server and "cat /var/log/httpd/comb*",
	then switch to another virtual console, some data can appear on
	the new console from the old.

	When the "source" console is the "console" (not a ttyE?), this
	seems to be limited to one byte of garbage.  When the source
	is a ttyE?, a much larger block can appear (on the order of a
	screen-full).

	I have not yet verified what happens if I switch from a 50 line
	to a 25-line and get more data than the console can handle.
	It is not unreasonable to expect a crash, if the console buffers
	are laid out in a suitable manner.

	This *may* be an AMD64 issue, but I assume that it is a more
	general timing/locking issue in the kernel and may affect any
	kernel with wscons virtual terminals.

	I have noticed this for some time, but have been too preoccupied
	to file a PR until now.  (It should go back at least as far as
	the November snapshot (or whenever the last AMD64 ISO image/snapshot
	was made in 2003).)

>How-To-Repeat:
	Stream a lot of data through one virtual terminal, then give the
	computer the suitable 3-fingered salute to change to another
	virtual terminal.  See if you get a chunk of data showing up.

	It may matter whether the virtual console is enabled, etc.
>Fix:
	Dunno.
>Release-Note:
>Audit-Trail:
>Unformatted: