[Bug 200445] login into system on serial line /dev/cuaU0 hangs if login shell is /bin/sh

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue May 26 04:35:56 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200445

--- Comment #2 from Matthias Apitz <guru at unixarea.de> ---
(In reply to Ed Maste from comment #1)

If you start a /bin/sh after correct login with /bin/csh as login-shell, the
/bin/sh hangs as well forever; trussing it, it shows that it hangs in an
open(2) syscall for /dev/tty:

mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 671612928
(0x28080000)
issetugid(0x2807e76c,0xbfbfefc8,0x20,0x0,0x0,0x0) = 0 (0x0)
lstat("/etc",{ mode=drwxr-xr-x ,inode=9229440,size=2560,blksize=32768 }) = 0
(0x0)
lstat("/etc/libmap.conf",{ mode=-rw-r--r--
,inode=9229485,size=102,blksize=32768 }) = 0 (0x0)
open("/etc/libmap.conf",O_CLOEXEC,00)         = 3 (0x3)
fstat(3,{ mode=-rw-r--r-- ,inode=9229485,size=102,blksize=32768 }) = 0 (0x0)
mmap(0x0,102,PROT_READ,MAP_PRIVATE,3,0x0)     = 671645696 (0x28088000)
close(3)                     = 0 (0x0)
lstat("/usr",{ mode=drwxr-xr-x ,inode=1364352,size=512,blksize=32768 }) = 0
(0x0)
lstat("/usr/local",{ mode=drwxr-xr-x ,inode=1364414,size=512,blksize=32768 }) =
0 (0x0)
lstat("/usr/local/etc",{ mode=drwxr-xr-x ,inode=1605894,size=2048,blksize=32768
}) = 0 (0x0)
lstat("/usr/local/etc/libmap.d",{ mode=drwxr-xr-x
,inode=2416694,size=512,blksize=32768 }) = 0 (0x0)
open("/usr/local/etc/libmap.d",O_NONBLOCK|O_DIRECTORY|O_CLOEXEC,05001762160) =
3 (0x3)
__sysctl(0xbfbfd490,0x2,0x2807f170,0xbfbfd48c,0x0,0x0) = 0 (0x0)
fstatfs(0x3,0xbfbfd4c8,0x0,0x0,0x0,0x3)         = 0 (0x0)
munmap(0x28087000,4096)                 = 0 (0x0)
mmap(0x0,40960,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 671649792
(0x28089000)
getdirentries(0x3,0x2808a000,0x1000,0x28086014,0x28086014,0x2807e470) = 24
(0x18)
getdirentries(0x3,0x2808a000,0x1000,0x28086014,0x28086014,0x2807e470) = 0 (0x0)
close(3)                     = 0 (0x0)
munmap(0x28088000,102)                 = 0 (0x0)
open("/var/run/ld-elf.so.hints",O_CLOEXEC,00)     = 3 (0x3)
read(3,"Ehnt\^A\0\0\0\M^@\0\0\0\M-(\0\0"...,128) = 128 (0x80)
lseek(3,0x80,SEEK_SET)                 = 128 (0x80)
read(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,168) = 168 (0xa8)
close(3)                     = 0 (0x0)
access("/lib/libedit.so.7",0)             = 0 (0x0)
open("/lib/libedit.so.7",O_CLOEXEC,00)         = 3 (0x3)
fstat(3,{ mode=-r--r--r-- ,inode=1203856,size=134368,blksize=32768 }) = 0 (0x0)
mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 671641600
(0x28087000)
mmap(0x0,147456,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 671690752
(0x28093000)
mmap(0x28093000,131072,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0)
= 671690752 (0x28093000)
mmap(0x280b3000,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x1f000)
= 671821824 (0x280b3000)
mmap(0x280b5000,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0)
= 671830016 (0x280b5000)
munmap(0x28087000,4096)                 = 0 (0x0)
close(3)                     = 0 (0x0)
access("/lib/libc.so.7",0)             = 0 (0x0)
open("/lib/libc.so.7",O_CLOEXEC,00)         = 3 (0x3)
fstat(3,{ mode=-r--r--r-- ,inode=1203843,size=1384432,blksize=32768 }) = 0
(0x0)
mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 671641600
(0x28087000)
mmap(0x0,1409024,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 671838208
(0x280b7000)
mmap(0x280b7000,1298432,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0)
= 671838208 (0x280b7000)
mmap(0x281f4000,28672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x13d000)
= 673136640 (0x281f4000)
mmap(0x281fb000,81920,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0)
= 673165312 (0x281fb000)
munmap(0x28087000,4096)                 = 0 (0x0)
close(3)                     = 0 (0x0)
access("/lib/libncursesw.so.8",0)         = 0 (0x0)
open("/lib/libncursesw.so.8",O_CLOEXEC,00)     = 3 (0x3)
fstat(3,{ mode=-r--r--r-- ,inode=1203880,size=305200,blksize=32768 }) = 0 (0x0)
mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 671641600
(0x28087000)
mmap(0x0,307200,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 673247232
(0x2820f000)
mmap(0x2820f000,294912,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0)
= 673247232 (0x2820f000)
mmap(0x28257000,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x48000)
= 673542144 (0x28257000)
munmap(0x28087000,4096)                 = 0 (0x0)
close(3)                     = 0 (0x0)
munmap(0x2808e000,20480)             = 0 (0x0)
mmap(0x0,69632,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 673554432
(0x2825a000)
sysarch(0xa,0xbfbfe3ac,0x280826e0,0x2807e470,0xbfbfe3d0,0x280669c3) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
= 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)         = 0 (0x0)
readlink("/etc/malloc.conf",0xbfbfdb47,1024)     ERR#2 'No such file or
directory'
issetugid(0x0,0xbfbfdb47,0x400,0x0,0x0,0x0)     = 0 (0x0)
mmap(0x0,4194304,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 673624064
(0x2826b000)
munmap(0x2826b000,4194304)             = 0 (0x0)
mmap(0x0,8384512,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 673624064
(0x2826b000)
munmap(0x2826b000,1658880)             = 0 (0x0)
munmap(0x28800000,2531328)             = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
= 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)         = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
= 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)         = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
= 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)         = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
= 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)         = 0 (0x0)
getpid()                     = 1807 (0x70f)
geteuid()                     = 0 (0x0)
getppid()                     = 1806 (0x70e)
mmap(0x0,4194304,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 679477248
(0x28800000)
getuid()                     = 0 (0x0)
geteuid()                     = 0 (0x0)
getgid()                     = 0 (0x0)
getegid()                     = 0 (0x0)
ioctl(0,TIOCGETA,0xbfbfec90)             = 0 (0x0)
ioctl(1,TIOCGETA,0xbfbfec90)             = 0 (0x0)
sigaction(SIGINT,0x0,{ SIG_DFL SA_RESTART ss_t }) = 0 (0x0)
sigaction(SIGINT,{ 0x8060590 0x0 ss_t },0x0)     = 0 (0x0)
sigaction(SIGQUIT,0x0,{ SIG_DFL SA_RESTART ss_t }) = 0 (0x0)
sigaction(SIGQUIT,{ 0x8060590 0x0 ss_t },0x0)     = 0 (0x0)
sigaction(SIGTERM,0x0,{ SIG_DFL SA_RESTART ss_t }) = 0 (0x0)
sigaction(SIGTERM,{ SIG_IGN 0x0 ss_t },0x0)     = 0 (0x0)
ioctl(0,TIOCGETA,0xbfbfec58)             = 0 (0x0)
fcntl(0,F_GETFL,)                 = 2 (0x2)
fcntl(1,F_GETFL,)                 = 2 (0x2)
fcntl(2,F_GETFL,)                 = 2 (0x2)
sigprocmask(SIG_BLOCK,SIGWINCH,0x0)         = 0 (0x0)
ioctl(1,TIOCGETA,0xbfbfdf18)             = 0 (0x0)
issetugid(0xbfbfdb22,0x2824cc6e,0x3fa,0x1409fc,0x281d89e0,0x2807e470) = 0 (0x0)
open("/root/.termcap.db",O_CLOEXEC,00)         ERR#2 'No such file or
directory'
open("/root/.termcap",O_CLOEXEC,00)         ERR#2 'No such file or directory'
open("/usr/share/misc/termcap.db",O_CLOEXEC,00)     = 3 (0x3)
fstat(3,{ mode=-r--r--r-- ,inode=1526444,size=1343488,blksize=32768 }) = 0
(0x0)
read(3,"\0\^F\^Ua\0\0\0\^B\0\0\^D\M-R\0"...,260) = 260 (0x104)
pread(0x3,0x28846000,0x1000,0x4c000,0x0,0x28810060) = 4096 (0x1000)
pread(0x3,0x2884f000,0x1000,0x6a000,0x0,0x2807e470) = 4096 (0x1000)
pread(0x3,0x28850000,0x1000,0x4000,0x0,0x1)     = 4096 (0x1000)
close(3)                     = 0 (0x0)
ioctl(1,TIOCGETA,0xbfbfdf18)             = 0 (0x0)
ioctl(1,TIOCGETA,0xbfbfded8)             = 0 (0x0)
ioctl(1,TIOCGWINSZ,0xbfbfdf30)             = 0 (0x0)
ioctl(0,TIOCGWINSZ,0xbfbfe428)             = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)         = 0 (0x0)
ioctl(0,TIOCGETA,0x288067a8)             = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGTERM|SIGTSTP|SIGCONT|SIGWINCH,0x0)
= 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)         = 0 (0x0)
issetugid(0xbfbfe870,0x280c02f4,0x2807e470,0xbfbfe910,0x2806aadf,0xbfbfe898) =
0 (0x0)
open("/root/.editrc",O_RDONLY,0666)         ERR#2 'No such file or directory'


[ hit Ctrl-C here ]


open("/dev/tty",O_RDWR|O_CLOEXEC,00)         ERR#4 'Interrupted system call'
SIGNAL 2 (SIGINT)
sigreturn(0xbfbfe8c0,0x2,0x10006,0xbfbfe8c0,0x0,0x8060590) ERR#4 'Interrupted
system call'
ioctl(0,TIOCGETA,0xbfbfec70)             = 0 (0x0)
fcntl(0,0x11,0xa)                 = 10 (0xa)
ioctl(10,TIOCGPGRP,0xbfbfeca4)             = 0 (0x0)
getpgrp()                     = 1806 (0x70e)
sigaction(SIGTSTP,0x0,{ SIG_DFL SA_RESTART ss_t }) = 0 (0x0)
sigaction(SIGTSTP,{ SIG_IGN 0x0 ss_t },0x0)     = 0 (0x0)
sigaction(SIGTTOU,0x0,{ SIG_DFL SA_RESTART ss_t }) = 0 (0x0)
sigaction(SIGTTOU,{ SIG_IGN 0x0 ss_t },0x0)     = 0 (0x0)
sigaction(SIGTTIN,0x0,{ SIG_DFL SA_RESTART ss_t }) = 0 (0x0)
sigaction(SIGTTIN,{ SIG_DFL 0x0 ss_t },0x0)     = 0 (0x0)
setpgid(0x0,0x70f,0xa,0x0,0xbfbfed70,0xbfbfece0) = 0 (0x0)
ioctl(10,TIOCSPGRP,0xbfbfeca4)             = 0 (0x0)
stat(".",{ mode=drwxr-xr-x ,inode=11797632,size=512,blksize=32768 }) = 0 (0x0)
stat("/root",{ mode=drwxr-xr-x ,inode=11797632,size=512,blksize=32768 }) = 0
(0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)         = 0 (0x0)
setpgid(0x0,0x70e,0xbfbfec48,0x0,0xbfbfec70,0xbfbfecd8) = 0 (0x0)
ioctl(10,TIOCSPGRP,0xbfbfec24)             = 0 (0x0)
close(10)                     = 0 (0x0)
process exit, rval = 0

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list