Subject: kern/36188: pkgsrc/misc/screen exits with "select: Invalid argument" when used with XEN2_DOM0
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <fukumoto@imasy.or.jp>
List: netbsd-bugs
Date: 04/21/2007 17:30:00
>Number:         36188
>Category:       kern
>Synopsis:       pkgsrc/misc/screen exits with "select: Invalid argument" when used on XEN2_DOM0 kernel
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Apr 21 17:30:00 +0000 2007
>Originator:     fukumoto@imasy.or.jp
>Release:        NetBSD 4.0_BETA2
>Organization:
>Environment:
System: NetBSD kestrel 4.0_BETA2 NetBSD 4.0_BETA2 (GENERIC.MP) #4: Sat Mar 31 04:34:08 JST 2007 fukumoto@kestrel:/usr/src.netbsd4/sys/arch/i386/compile/GENERIC.MP i386
Architecture: i386
Machine: i386
>Description:
pkgsrc/misc/screen exits with "select: Invalid argument" when I entered
to copy/scrollback mode, then typed space (SPC) twice to copy to paste buffer.

I'm reporting this as kern category since I'm experiencing it only with
XEN2_DOM0 kernel.  GENERIC kernel does not have this symptom.
kernel is netbsd-4 updated on Apr 19, 2007.  There are no domU running.

Whem I compiled screen with "-g -DDEBUG", and placed a breakpoint after
select(2), it stops with SIGHUP.  When I let it continue, it doesn't stop
at breakpoint, and exits with "select: Invalid argument" message.

Following is a part of gdb session, and output of screen's debug message.

============================================================================
181           debug("\n");
182     #endif
183     
184           nsel = select(FD_SETSIZE, &r, &w, (fd_set *)0, timeoutev ? &timeout : (struct timeval *) 0);
185           if (nsel < 0)
186             {
187               if (errno != EINTR)
188                 {
189     #if defined(sgi) && defined(SVR4)
(gdb) b 187
Breakpoint 1 at 0x809adf8: file sched.c, line 187.
(gdb) c
Continuing.

Program received signal SIGHUP, Hangup.
0xbbafcd5b in _sys___sigsuspend14 () from /usr/lib/libc.so.12
(gdb) where
#0  0xbbafcd5b in _sys___sigsuspend14 () from /usr/lib/libc.so.12
#1  0xbbb21ac6 in pause () from /usr/lib/libc.so.12
#2  0x080790bf in Attacher () at attacher.c:567
#3  0x0804ca52 in main (ac=0, av=0xbfbfed44) at screen.c:1162
(gdb) c
Continuing.

Program received signal SIGHUP, Hangup.
0xbbafcd5b in _sys___sigsuspend14 () from /usr/lib/libc.so.12
(gdb) c
Continuing.

Program exited normally.
(gdb) 
==========================================================================
secopen(/dev/ttyp4, 0x2, 0000)
-- screen.back debug started
FindUserPtr fukumoto not found, id -1
UserAdd fukumoto id 0
growing all bitfields 0 += 8
AclSetPerm(uu, user 'fukumoto', mode '+a', object '#?')
FindUserPtr fukumoto found, id 0
New event fd 4 type 1 queued 0
New event fd 4 type 2 queued 0
ResizeObuf: resized to 4096
New displays ospeed = 13
D_encoding = 0
findrcfile: you specified '/usr/pkg/etc/screenrc'
secfopen(/usr/pkg/etc/screenrc, r)
StartRc: '/usr/pkg/etc/screenrc' no good. ignored
findrcfile: you specified nothing...
  ...nothing in $SCREENRC, defaulting $HOME/.screenrc
secfopen(/home/fukumoto/.screenrc, r)
Parse 2048 defscrollback 500
- new arg defscrollback 500
- arg done, 'defscrollback' rest 500
- new arg 500
- arg done, '500' rest 
-- defscrollback
-- 500
Parse 2048 shelltitle '$ |bash'
- new arg shelltitle '$ |bash'
- arg done, 'shelltitle' rest '$ |bash'
- new arg '$ |bash'
- arg done, '$ |bash' rest 
-- shelltitle
-- $ |bash
Parse 2048 escape ^Qq
- new arg escape ^Qq
- arg done, 'escape' rest ^Qq
- new arg ^Qq
- arg done, 'q' rest 
-- escape
-- q
InitUtmp testing '/var/run/utmpx'...
InitUtmp failed.
InitTermcap: looking for tgetent('vt102')
got it:
vt102|dec vt102:mi:al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:am:bs:ms:xn:xo:co#80:it#8:li#24:vt#3:@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:ae=\E(B:as=\E(0:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:eA=\E(B:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m::ZZ=0x80bc400
Extra incap: xn:f0=Op:f1=Oq:f2=Or:f3=Os:f4=Ot:f5=Ou:f6=Ov:f7=Ow:f8=Ox:f9=Oy:f.=On:f,=Ol:fe=OM:f+=Ok:f-=Om:f*=Oj:f/=Oo:fq=OX:TF:xn:f0=Op:f1=Oq:f2=Or:f3=Os:f4=Ot:f5=Ou:f6=Ov:f7=Ow:f8=Ox:f9=Oy:f.=On:f,=Ol:fe=OM:f+=Ok:f-=Om:f*=Oj:f/=Oo:fq=OX:TF:
'xn' found in extra_incap -> 
'TF' found in extra_incap -> 
'f0' found in extra_incap -> Op
'f1' found in extra_incap -> Oq
'f2' found in extra_incap -> Or
'f3' found in extra_incap -> Os
'f4' found in extra_incap -> Ot
'f5' found in extra_incap -> Ou
'f6' found in extra_incap -> Ov
'f7' found in extra_incap -> Ow
'f8' found in extra_incap -> Ox
'f9' found in extra_incap -> Oy
'f+' found in extra_incap -> Ok
'f-' found in extra_incap -> Om
'f*' found in extra_incap -> Oj
'f/' found in extra_incap -> Oo
'fq' found in extra_incap -> OX
'f.' found in extra_incap -> On
'f,' found in extra_incap -> Ol
'fe' found in extra_incap -> OM
ISO2022 = 1
terminal size is 80, 24 (says TERMCAP)
CheckScreenSize: screen is (80,32)
Deq event fd 0 type 0 queued 0
ChangeScreenSize from (0,0) to (80,32) (change_fore: 0)
New maxwidth: 256
Default size: (80,32)
mapping Oy 0
Deq event fd 0 type 0 queued 0
mapping Ot 0x5
Deq event fd 0 type 0 queued 0
mapping Ou 0x6
Deq event fd 0 type 0 queued 0
mapping Ov 0x7
Deq event fd 0 type 0 queued 0
mapping Ol 0x8
Deq event fd 0 type 0 queued 0
mapping Ow 0x9
Deq event fd 0 type 0 queued 0
mapping Ox 0xa
Deq event fd 0 type 0 queued 0
mapping OA 0x37
Deq event fd 0 type 0 queued 0
mapping OB 0x38
Deq event fd 0 type 0 queued 0
mapping OC 0x39
Deq event fd 0 type 0 queued 0
mapping OD 0x3a
Deq event fd 0 type 0 queued 0
mapping Op 0x3b
Deq event fd 0 type 0 queued 0
mapping Oq 0x3c
Deq event fd 0 type 0 queued 0
mapping Or 0x3d
Deq event fd 0 type 0 queued 0
mapping Os 0x3e
Deq event fd 0 type 0 queued 0
mapping Ot 0x3f
mapping Ou 0x40
mapping Ov 0x41
mapping Ow 0x42
mapping Ox 0x43
mapping Oy 0x44
mapping Ok 0x45
Deq event fd 0 type 0 queued 0
mapping Om 0x46
Deq event fd 0 type 0 queued 0
mapping Oj 0x47
Deq event fd 0 type 0 queued 0
mapping Oo 0x48
Deq event fd 0 type 0 queued 0
mapping OX 0x49
Deq event fd 0 type 0 queued 0
mapping On 0x4a
Deq event fd 0 type 0 queued 0
mapping Ol 0x4b
mapping OM 0x4c
Deq event fd 0 type 0 queued 0
MakeTermcap(0)
MakeTermcap screenterm='screen'
MakeTermcap termname='vt102'
MakeTermcap decided 'screen'
MakeTermcap after outcap '\
	:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\
	:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\
	:do=^J:nd=\E[C:pt:rc=\E8:rs=\Ec:sc=\E7:st=\EH:up=\EM:\
	:le=^H:bl=^G:cr=^M:it#8:ho=\E[H:nw=\EE:ta=^I:is=\E(B:'
MakeTermcap: end
ResizeDisplay: to (80,32).
ResizeDisplay: No change
ChangeScrollRegion: (0 - 31)
Flush(): 25
Clear 0,0 0-79 79,31 uselayfn=0 bce=0
we don't want to adapt all our windows to the display
CheckScreenSize: screen is (80,32)
CheckScreenSize: No change -> return.
RemoveLoginSlot: removing your logintty
RemoveLoginSlot: utmpok == 0
 slot 0 zapped
couln't zap slot -> do mesg n
findrcfile: you specified '/usr/pkg/etc/screenrc'
secfopen(/usr/pkg/etc/screenrc, r)
FinishRc: '/usr/pkg/etc/screenrc' no good. ignored
findrcfile: you specified nothing...
  ...nothing in $SCREENRC, defaulting $HOME/.screenrc
secfopen(/home/fukumoto/.screenrc, r)
finishrc is going...
Parse 2048 defscrollback 500

- new arg defscrollback 500

- arg done, 'defscrollback' rest 500

- new arg 500

- arg done, '500' rest 
-- defscrollback
-- 500
AclCheckPermCmd(fukumoto 0 defscrollback) = 0
ParseNum got 500
Parse 2048 shelltitle '$ |bash'

- new arg shelltitle '$ |bash'

- arg done, 'shelltitle' rest '$ |bash'

- new arg '$ |bash'

- arg done, '$ |bash' rest 
-- shelltitle
-- $ |bash
AclCheckPermCmd(fukumoto 0 shelltitle) = 0
Parse 2048 escape ^Qq

- new arg escape ^Qq

- arg done, 'escape' rest ^Qq

- new arg ^Qq

- arg done, 'q' rest 
-- escape
-- q
AclCheckPermCmd(fukumoto 0 escape) = 0
UID 1000  EUID 1000
We open one default window, as screenrc did not specify one.
NewWindow: StartAt -1
NewWindow: aka     NULL
NewWindow: dir     NULL
NewWindow: term    NULL
NWin: aka     $ |bash
NWin: wlock   0
NWin: Lflag   0
Makewin creating 0
fcntl(6, F_SETFL, FNBLOCK)
NewWindowAcl fukumoto's umask_w_bits for window 0
AclCheckPermWin(fukumoto, 1, 0) = 0
ChangeWindowSize from (0,0)+0 to(80,32)+500
fy -1 ty 531
LoadFontTranslationsForEncoding: encoding 0
forking...
MakeWindow will log in.
New event fd 6 type 1 queued 0
New event fd 6 type 2 queued 0
KillLayerChain 0x80c2814
Activate(0)
MayResizeLayer:
may resize
Clear 0,0 0-79 79,31 uselayfn=0 bce=0
Signalling full refresh!
WinRedisplayLine -1 -1 -1
Refresh Area: 0,0 - 79,31 (isblank=1)
RefreshLine 0 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 0 0 79
LCDisplayLine: DisplayLine 0, 0-79  mloff = 0
RefreshLine 1 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 1 0 79
LCDisplayLine: DisplayLine 1, 0-79  mloff = 0
RefreshLine 2 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 2 0 79
LCDisplayLine: DisplayLine 2, 0-79  mloff = 0
RefreshLine 3 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 3 0 79
LCDisplayLine: DisplayLine 3, 0-79  mloff = 0
RefreshLine 4 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 4 0 79
LCDisplayLine: DisplayLine 4, 0-79  mloff = 0
RefreshLine 5 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 5 0 79
LCDisplayLine: DisplayLine 5, 0-79  mloff = 0
RefreshLine 6 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 6 0 79
LCDisplayLine: DisplayLine 6, 0-79  mloff = 0
RefreshLine 7 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 7 0 79
LCDisplayLine: DisplayLine 7, 0-79  mloff = 0
RefreshLine 8 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 8 0 79
LCDisplayLine: DisplayLine 8, 0-79  mloff = 0
RefreshLine 9 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 9 0 79
LCDisplayLine: DisplayLine 9, 0-79  mloff = 0
RefreshLine 10 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 10 0 79
LCDisplayLine: DisplayLine 10, 0-79  mloff = 0
RefreshLine 11 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 11 0 79
LCDisplayLine: DisplayLine 11, 0-79  mloff = 0
RefreshLine 12 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 12 0 79
LCDisplayLine: DisplayLine 12, 0-79  mloff = 0
RefreshLine 13 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 13 0 79
LCDisplayLine: DisplayLine 13, 0-79  mloff = 0
RefreshLine 14 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 14 0 79
LCDisplayLine: DisplayLine 14, 0-79  mloff = 0
RefreshLine 15 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 15 0 79
LCDisplayLine: DisplayLine 15, 0-79  mloff = 0
RefreshLine 16 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 16 0 79
LCDisplayLine: DisplayLine 16, 0-79  mloff = 0
RefreshLine 17 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 17 0 79
LCDisplayLine: DisplayLine 17, 0-79  mloff = 0
RefreshLine 18 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 18 0 79
LCDisplayLine: DisplayLine 18, 0-79  mloff = 0
RefreshLine 19 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 19 0 79
LCDisplayLine: DisplayLine 19, 0-79  mloff = 0
RefreshLine 20 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 20 0 79
LCDisplayLine: DisplayLine 20, 0-79  mloff = 0
RefreshLine 21 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 21 0 79
LCDisplayLine: DisplayLine 21, 0-79  mloff = 0
RefreshLine 22 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 22 0 79
LCDisplayLine: DisplayLine 22, 0-79  mloff = 0
RefreshLine 23 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 23 0 79
LCDisplayLine: DisplayLine 23, 0-79  mloff = 0
RefreshLine 24 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 24 0 79
LCDisplayLine: DisplayLine 24, 0-79  mloff = 0
RefreshLine 25 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 25 0 79
LCDisplayLine: DisplayLine 25, 0-79  mloff = 0
RefreshLine 26 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 26 0 79
LCDisplayLine: DisplayLine 26, 0-79  mloff = 0
RefreshLine 27 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 27 0 79
LCDisplayLine: DisplayLine 27, 0-79  mloff = 0
RefreshLine 28 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 28 0 79
LCDisplayLine: DisplayLine 28, 0-79  mloff = 0
RefreshLine 29 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 29 0 79
LCDisplayLine: DisplayLine 29, 0-79  mloff = 0
RefreshLine 30 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 30 0 79
LCDisplayLine: DisplayLine 30, 0-79  mloff = 0
RefreshLine 31 0 79 1
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
WinRedisplayLine 31 0 79
LCDisplayLine: DisplayLine 31, 0-79  mloff = 0
Deq event fd 0 type 0 queued 0
Deq event fd 0 type 0 queued 0
WinRestore: win 80c4000
---LGotoPos 0 0
Entering new layer on top of 0x80c400c: 0x80ba2c0
did freetty 4
Clear 0,0 0-79 79,31 uselayfn=0 bce=0
GotoPos (0,0) -> (0,1)
GotoPos (38,1) -> (0,3)
GotoPos (58,3) -> (0,4)
GotoPos (33,4) -> (0,6)
GotoPos (77,6) -> (0,7)
GotoPos (77,7) -> (0,8)
GotoPos (68,8) -> (0,10)
GotoPos (75,10) -> (0,11)
GotoPos (77,11) -> (0,12)
GotoPos (78,12) -> (0,14)
GotoPos (76,14) -> (0,15)
GotoPos (71,15) -> (0,16)
GotoPos (75,16) -> (0,18)
GotoPos (70,18) -> (0,19)
GotoPos (22,19) -> (24,30)
CallRewrite 19 22 23
Calling Rewrite 19 22 23
---LGotoPos 0 31
GotoPos (55,30) -> (0,31)
New event fd 5 type 1 queued 0
New event fd 0 type 3 queued 0
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
ASYNC: wrote 256 - remaining 730
 + hit ev fd 6 type 1!
going to read from window fd 6
 -> 1 bytes
PAKET 13
WNewAutoFlow: 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
ASYNC: wrote 256 - remaining 474
 + hit ev fd 6 type 1!
going to read from window fd 6
 -> 5 bytes
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
ASYNC: wrote 256 - remaining 218
 + hit ev fd 6 type 1!
going to read from window fd 6
 -> 12 bytes
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 4 type 1!
ProcessInput: 1 bytes
cmp   [3]
complete miss
ProcessInput2: 1 bytes
 - ilen now 1 bytes
LayCallUp
oldcvlist: 0
LRefreshAll isblank=0
Clear 0,0 0-79 79,31 uselayfn=0 bce=0
WinRedisplayLine -1 -1 -1
WinRedisplayLine 0 0 79
LCDisplayLine: DisplayLine 0, 0-79  mloff = 0
GotoPos (8,0) -> (9,0)
CallRewrite 0 8 8
Calling Rewrite 0 8 8
WinRewrite 0, 8-8
CallRewrite 0 8 8
WinRewrite 0, 8-8
WinRedisplayLine 1 0 79
LCDisplayLine: DisplayLine 1, 0-79  mloff = 0
WinRedisplayLine 2 0 79
LCDisplayLine: DisplayLine 2, 0-79  mloff = 0
WinRedisplayLine 3 0 79
LCDisplayLine: DisplayLine 3, 0-79  mloff = 0
WinRedisplayLine 4 0 79
LCDisplayLine: DisplayLine 4, 0-79  mloff = 0
WinRedisplayLine 5 0 79
LCDisplayLine: DisplayLine 5, 0-79  mloff = 0
WinRedisplayLine 6 0 79
LCDisplayLine: DisplayLine 6, 0-79  mloff = 0
WinRedisplayLine 7 0 79
LCDisplayLine: DisplayLine 7, 0-79  mloff = 0
WinRedisplayLine 8 0 79
LCDisplayLine: DisplayLine 8, 0-79  mloff = 0
WinRedisplayLine 9 0 79
LCDisplayLine: DisplayLine 9, 0-79  mloff = 0
WinRedisplayLine 10 0 79
LCDisplayLine: DisplayLine 10, 0-79  mloff = 0
WinRedisplayLine 11 0 79
LCDisplayLine: DisplayLine 11, 0-79  mloff = 0
WinRedisplayLine 12 0 79
LCDisplayLine: DisplayLine 12, 0-79  mloff = 0
WinRedisplayLine 13 0 79
LCDisplayLine: DisplayLine 13, 0-79  mloff = 0
WinRedisplayLine 14 0 79
LCDisplayLine: DisplayLine 14, 0-79  mloff = 0
WinRedisplayLine 15 0 79
LCDisplayLine: DisplayLine 15, 0-79  mloff = 0
WinRedisplayLine 16 0 79
LCDisplayLine: DisplayLine 16, 0-79  mloff = 0
WinRedisplayLine 17 0 79
LCDisplayLine: DisplayLine 17, 0-79  mloff = 0
WinRedisplayLine 18 0 79
LCDisplayLine: DisplayLine 18, 0-79  mloff = 0
WinRedisplayLine 19 0 79
LCDisplayLine: DisplayLine 19, 0-79  mloff = 0
WinRedisplayLine 20 0 79
LCDisplayLine: DisplayLine 20, 0-79  mloff = 0
WinRedisplayLine 21 0 79
LCDisplayLine: DisplayLine 21, 0-79  mloff = 0
WinRedisplayLine 22 0 79
LCDisplayLine: DisplayLine 22, 0-79  mloff = 0
WinRedisplayLine 23 0 79
LCDisplayLine: DisplayLine 23, 0-79  mloff = 0
WinRedisplayLine 24 0 79
LCDisplayLine: DisplayLine 24, 0-79  mloff = 0
WinRedisplayLine 25 0 79
LCDisplayLine: DisplayLine 25, 0-79  mloff = 0
WinRedisplayLine 26 0 79
LCDisplayLine: DisplayLine 26, 0-79  mloff = 0
WinRedisplayLine 27 0 79
LCDisplayLine: DisplayLine 27, 0-79  mloff = 0
WinRedisplayLine 28 0 79
LCDisplayLine: DisplayLine 28, 0-79  mloff = 0
WinRedisplayLine 29 0 79
LCDisplayLine: DisplayLine 29, 0-79  mloff = 0
WinRedisplayLine 30 0 79
LCDisplayLine: DisplayLine 30, 0-79  mloff = 0
WinRedisplayLine 31 0 79
LCDisplayLine: DisplayLine 31, 0-79  mloff = 0
Exiting layer 0x80ba2c0
WinRestore: win 80c4000
---LGotoPos 11 0
GotoPos (10,0) -> (11,0)
CallRewrite 0 10 10
Calling Rewrite 0 10 10
WinRewrite 0, 10-10
CallRewrite 0 10 10
WinRewrite 0, 10-10
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 4 type 1!
ProcessInput: 1 bytes
cmp a [3]
complete miss
ProcessInput2: 1 bytes
 - ilen now 1 bytes
WinProcess: 1 bytes
AclCheckPermWin(fukumoto, 1, 0) = 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
readfds: 4 5 6
writefds: 6
 + hit ev fd 6 type 2!
writing 1 bytes to win 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 6 type 1!
muchpending /dev/ttyp4 0: 0 256 0
going to read from window fd 6
 -> 2 bytes
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 4 type 1!
ProcessInput: 1 bytes
cmp a [3]
complete miss
ProcessInput2: 1 bytes
 - ilen now 1 bytes
WinProcess: 1 bytes
AclCheckPermWin(fukumoto, 1, 0) = 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
readfds: 4 5 6
writefds: 6
 + hit ev fd 6 type 2!
writing 1 bytes to win 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 6 type 1!
muchpending /dev/ttyp4 0: 0 256 0
going to read from window fd 6
 -> 2 bytes
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 4 type 1!
ProcessInput: 1 bytes
cmp a [3]
complete miss
ProcessInput2: 1 bytes
 - ilen now 1 bytes
WinProcess: 1 bytes
AclCheckPermWin(fukumoto, 1, 0) = 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
readfds: 4 5 6
writefds: 6
 + hit ev fd 6 type 2!
writing 1 bytes to win 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 6 type 1!
muchpending /dev/ttyp4 0: 0 256 0
going to read from window fd 6
 -> 2 bytes
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 4 type 1!
ProcessInput: 1 bytes
cmp 
 [3]
complete miss
ProcessInput2: 1 bytes
 - ilen now 1 bytes
WinProcess: 1 bytes
AclCheckPermWin(fukumoto, 1, 0) = 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
readfds: 4 5 6
writefds: 6
 + hit ev fd 6 type 2!
writing 1 bytes to win 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 6 type 1!
muchpending /dev/ttyp4 0: 0 256 0
going to read from window fd 6
 -> 3 bytes
---LGotoPos 0 0
GotoPos (14,0) -> (0,0)
---LGotoPos 0 1
GotoPos (0,0) -> (0,1)
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 6 type 1!
muchpending /dev/ttyp4 0: 0 256 0
going to read from window fd 6
 -> 35 bytes
---LGotoPos 0 1
GotoPos (28,1) -> (0,1)
---LGotoPos 0 2
GotoPos (0,1) -> (0,2)
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
 + hit ev fd 6 type 1!
muchpending /dev/ttyp4 0: 0 256 0
going to read from window fd 6
 -> 12 bytes
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 4 type 1!
ProcessInput: 1 bytes
cmp  [3]
complete miss
ProcessInput2: 1 bytes
 - ilen now 1 bytes
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 4 type 1!
ProcessInput: 1 bytes
cmp  [3]
finish old 0
length am 1, want 3
am in sequence -> check for timeout
event 80be678 new timeout 300 ms
New event fd 0 type 0 queued 0
ProcessInput2: 0 bytes
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events timeout 0 secs 299981 usecs:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
timed events:
 - pri 0 sec 1177172115 usec 2306674
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
TIMEOUT!
Deq event fd 0 type 0 queued 1
Flushing map sequence
ProcessInput: 1 bytes
ProcessInput2: 1 bytes
 - ilen now 1 bytes
AclCheckPermCmd(fukumoto 0 copy) = 0
MarkRoutine called: fore nr 0, display /dev/ttyp4
Entering new layer on top of 0x80c400c: 0x80ba2c0
layer is blocking
...and is first, so window gets blocked
---LGotoPos 11 2
LMsg('Copy mode - Column 12 Line 3(+500) (80,32)') (0x80ba2c0);
using STATLINE 31
GotoPos (11,2) -> (0,31)
Flush(): 59
GotoPos (-1,31) -> (0,31)
RefreshLine 31 0 43 0
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
LCDisplayLine: DisplayLine 31, 0-43  mloff = 0
GotoPos (44,31) -> (11,2)
---LGotoPos 0 0
GotoPos (11,2) -> (0,0)
event 80be0e4 new timeout 5000 ms
New event fd 0 type 0 queued 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events timeout 4 secs 999986 usecs:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
timed events:
 - pri 0 sec 1177172118 usec 914426
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
TIMEOUT!
Deq event fd 0 type 0 queued 1
disp_status_fn for display 80be000
RemoveStatus
Deq event fd 0 type 0 queued 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds: 4
 + hit ev fd 4 type 2!
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
 + hit ev fd 4 type 1!
ProcessInput: 1 bytes
cmp   [3]
complete miss
ProcessInput2: 1 bytes
 - ilen now 1 bytes
---LGotoPos 11 2
GotoPos (0,0) -> (11,2)
---LGotoPos 11 2
LMsg('First mark set - Column 12 Line 3') (0x80ba2c0);
using STATLINE 31
GotoPos (11,2) -> (0,31)
Flush(): 57
GotoPos (-1,31) -> (0,31)
RefreshLine 31 0 34 0
- canvas hit: 0 0  79 31
  - vp: 0 0  79 31
LCDisplayLine: DisplayLine 31, 0-34  mloff = 0
GotoPos (35,31) -> (11,2)
---LGotoPos 11 2
event 80be0e4 new timeout 5000 ms
New event fd 0 type 0 queued 0
 + hit ev fd 0 type 3!
serv_select_fn called
waiting for events timeout 5 secs -15 usecs:
 - fd 4 type 1 pri 0
 - fd 4 type 2 pri 0
 - fd 6 type 1 pri 0
 - fd 6 type 2 pri 0
 - fd 5 type 1 pri 0
 - fd 0 type 3 pri -10
timed events:
 - pri 0 sec 1177172131 usec 5410815
 - cond ev fd 4 type 2 failed
 - cond ev fd 6 type 2 failed
readfds: 4 5 6
writefds:
Panic('select: Invalid argument'); display=0 displays=80be000
RemoveStatus
Deq event fd 0 type 0 queued 1
ResizeDisplay: to (80,32).
ResizeDisplay: No change
GotoPos (-1,-1) -> (0,31)
Flush(): 59
Flush(): 0
RestoreLoginSlot()
did freetty 4
eexit
we unlink(/tmp/uscreens/S-fukumoto/1451.ttyp4.kestrel)

>How-To-Repeat:
start /usr/pkg/bin/screen on XEN2_DOM0 kernel, enter copy/scrollback mode,
and type space (SPC) twice.
>Fix: