Juergen Keil wrote:
>> Date: Wed, 28 Nov 2007 13:27:38 -0500
>> From: Kyle McDonald <[EMAIL PROTECTED]>
>> To: James Carlson <[EMAIL PROTECTED]>
>> CC: Jürgen Keil <[EMAIL PROTECTED]>, [email protected]
>> Subject: Re: [osol-discuss] 'more' broken in b77 miniroot?
>>
>> James Carlson wrote:
>>> Jürgen Keil writes:
>>>
>>>> In snv_75a, the miniroot /sbin/sulogin shell script contains this line:
>>>>
>>>> exec 0<> /dev/console 1>&0 2>&0
>>>>
>>>> The miniroot /sbin/sulogin from snv_75a has SCCS ID
>>>> "@(#)sulogin.sh 1.5". Has that changed for snv_77?
>>>>
>>> It's still the same in the gate.
>>>
>>>
>> This might be the difference.
>>
>> I didn't choose 'Single User Shell' from the menu.
>>
>> The machine is configured to do Custom Jumpstart automatically, and to
>> see the environment the Begin script would run in, I temporarily changed
>> the begin script to just call 'exit 1'. This made JumpStart give up and
>> leave me a shell prompt.
>>
>> Is this prompt JumpStart left me at supposed to be the same as 'sulogin'?
>
> Maybe not.
>
>
> Can you try "ls -lR / | truss more" ? What kind of error
> does it get (when it tries to read from stderr fd#2) ?
>
Looks like EBADF:
# ls -lR / | truss more
execve("/usr/bin/more", 0x08047D20, 0x08047D28) argc = 1
resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
resolvepath("/usr/bin/more", "/usr/bin/more", 1023) = 13
xstat(2, "/usr/bin/more", 0x080479C8) = 0
open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
sysconfig(_CONFIG_PAGESIZE) = 4096
xstat(2, "/lib/libcurses.so.1", 0x08047188) = 0
resolvepath("/lib/libcurses.so.1", "/lib/libcurses.so.1", 1023) = 19
open("/lib/libcurses.so.1", O_RDONLY) = 3
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3,
0) = 0xCEBB0000
mmap(0x00010000, 266240, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xCEB60000
mmap(0xCEB60000, 163034, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xCEB60000
mmap(0xCEB98000, 25815, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 163840) = 0xCEB98000
mmap(0xCEB9F000, 7832, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xCEB9F000
munmap(0xCEB88000, 65536) = 0
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON, -1, 0) = 0xCEB50000
memcntl(0xCEB60000, 54096, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
xstat(2, "/lib/libc.so.1", 0x08047188) = 0
resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
open("/lib/libc.so.1", O_RDONLY) = 3
mmap(0xCEBB0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0xCEBB0000
mmap(0x00010000, 1372160, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xCE9F0000
mmap(0xCE9F0000, 1263015, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xCE9F0000
mmap(0xCEB35000, 31022, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 1265664) = 0xCEB35000
mmap(0xCEB3D000, 5208, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xCEB3D000
munmap(0xCEB25000, 65536) = 0
memcntl(0xCE9F0000, 205492, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xCE9E0000
munmap(0xCEBB0000, 32768) = 0
getcontext(0x08047780)
getrlimit(RLIMIT_STACK, 0x08047778) = 0
getpid() = 482 [480]
lwp_private(0, 1, 0xCE9E2A00) = 0x000001C3
setustack(0xCE9E2A60)
sysi86(SI86FPSTART, 0xCEB3DA78, 0x0000133F, 0x00001F80) = 0x00000001
brk(0x08067468) = 0
brk(0x08069468) = 0
ioctl(1, TCGETA, 0x08047BCC) = 0
fstat64(1, 0x08047B30) = 0
ioctl(1, TCGETA, 0x080669C6) = 0
open("/usr/share/lib/terminfo//u/unknown", O_RDONLY) = 3
read(3, "1A01\b\0 %\0 !\08A0110\0".., 4096) = 928
close(3) = 0
ioctl(1, TCGETA, 0x080469AC) = 0
ioctl(1, TCGETS, 0xCEBA07DC) = 0
ioctl(1, TIOCGWINSZ, 0x08047C0C) = 0
ioctl(1, TCSETSW, 0xCEBA0800) = 0
ioctl(1, TCSETSW, 0xCEBA07DC) = 0
ioctl(0, TCGETA, 0x080669C6) Err#22 EINVAL
ioctl(2, TCGETA, 0x080669C6) = 0
schedctl() = 0xCEBBE000
sigaction(SIGQUIT, 0x08047BA0, 0x08047C20) = 0
sigaction(SIGINT, 0x08047BA0, 0x08047C20) = 0
sigaction(SIGWINCH, 0x08047BA0, 0x08047C20) = 0
sigaction(SIGTSTP, 0x08047BA0, 0x08047C20) = 0
sigaction(SIGTSTP, 0x08047BA0, 0x08047C20) = 0
ioctl(2, TCGETA, 0x080669C6) = 0
ioctl(2, TCGETA, 0x080669B4) = 0
ioctl(2, TCSETAF, 0x080669B4) = 0
ioctl(0, TCGETA, 0x08047B3C) Err#22 EINVAL
fstat64(0, 0x08047B70) = 0
brk(0x08069468) = 0
brk(0x0806B468) = 0
fstat64(0, 0x08047AA0) = 0
read(0, " / :\n t o t a l 3 9 5".., 5120) = 5120
/:
write(1, " / :\n", 3) = 3
total 395
write(1, " t o t a l 3 9 5\n", 10) = 10
drwxr-xr-x 2 root sys 512 Oct 26 10:36 a
write(1, " d r w x r - x r - x ".., 56) = 56
lrwxrwxrwx 1 root root 9 Oct 26 10:47 bin -> ./usr/bin
write(1, " l r w x r w x r w x ".., 71) = 71
drwxr-xr-x 5 root sys 512 Oct 26 10:47 boot
write(1, " d r w x r - x r - x ".., 59) = 59
drwxr-xr-x 2 root sys 512 Oct 26 10:36 cdrom
write(1, " d r w x r - x r - x ".., 60) = 60
drwxr-xr-x 266 root sys 8198 Nov 28 07:59 dev
write(1, " d r w x r - x r - x 2".., 58) = 58
drwxr-xr-x 2 root sys 512 Nov 28 07:59 devices
write(1, " d r w x r - x r - x ".., 62) = 62
drwxr-xr-x 51 root sys 3584 Oct 26 10:47 etc
write(1, " d r w x r - x r - x ".., 58) = 58
drwxr-xr-x 16 root sys 512 Oct 26 10:47 kernel
write(1, " d r w x r - x r - x ".., 61) = 61
drwxr-xr-x 8 root bin 3584 Oct 26 10:47 lib
write(1, " d r w x r - x r - x ".., 58) = 58
drwxr-xr-x 2 root sys 512 Oct 26 10:34 mnt
write(1, " d r w x r - x r - x ".., 58) = 58
drwxr-xr-x 3 root sys 512 Oct 26 10:47 opt
write(1, " d r w x r - x r - x ".., 58) = 58
drwxr-xr-x 4 root sys 512 Oct 26 10:47 platform
write(1, " d r w x r - x r - x ".., 63) = 63
dr-xr-xr-x 13 root root 163264 Nov 28 08:00 proc
write(1, " d r - x r - x r - x ".., 59) = 59
-rw-r--r-- 1 root other 0 Oct 26 10:34 reconfigure
write(1, " - r w - r - - r - - ".., 66) = 66
drwxr-xr-x 3 root sys 2048 Oct 26 10:47 sbin
write(1, " d r w x r - x r - x ".., 59) = 59
drwxr-xr-x 4 root root 512 Oct 26 10:47 system
write(1, " d r w x r - x r - x ".., 61) = 61
drwxrwxrwt 5 root sys 554 Nov 28 07:59 tmp
write(1, " d r w x r w x r w t ".., 58) = 58
drwxr-xr-x 17 root sys 512 Oct 26 10:47 usr
write(1, " d r w x r - x r - x ".., 58) = 58
lrwxrwxrwx 1 root other 14 Oct 26 10:47 var -> ./tmp/root/var
write(1, " l r w x r w x r w x ".., 76) = 76
write(1, "\n", 1) = 1
write(2, "07", 1) = 1
read(2, 0x08047AF0, 1) Err#9 EBADF
ioctl(2, TCSETAF, 0x080669C6) = 0
write(2, "\n", 1) = 1
_exit(0)
>
> You may also want to check the shell's filedescriptor flags
> with "pfiles $$". And in case stderr isn't opened O_RDWR check
> the process tree with "ptree $$" and use "pfiles {pid}" on the
> parents to find out where the readability of stderr is lost.
>
Looks like svc.startd:
# pfiles $$
457: /sbin/sh
Current rlimit: 256 file descriptors
0: S_IFCHR mode:0620 dev:284,0 ino:4 uid:0 gid:7 rdev:0,0
O_RDONLY|O_LARGEFILE
/devices/pseudo/[EMAIL PROTECTED]:console
1: S_IFCHR mode:0620 dev:284,0 ino:4 uid:0 gid:7 rdev:0,0
O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE
/devices/pseudo/[EMAIL PROTECTED]:console
2: S_IFCHR mode:0620 dev:284,0 ino:4 uid:0 gid:7 rdev:0,0
O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE
/devices/pseudo/[EMAIL PROTECTED]:console
# ptree $$
7 /lib/svc/bin/svc.startd
457 /sbin/sh
484 ptree 457
# pfiles 7
7: /lib/svc/bin/svc.startd
Current rlimit: 262144 file descriptors
0: S_IFCHR mode:0666 dev:284,0 ino:6815752 uid:0 gid:3 rdev:13,2
O_RDONLY|O_LARGEFILE
/devices/pseudo/[EMAIL PROTECTED]:null
1: S_IFCHR mode:0620 dev:284,0 ino:4 uid:0 gid:7 rdev:0,0
O_RDWR|O_CREAT|O_LARGEFILE
/devices/pseudo/[EMAIL PROTECTED]:console
2: S_IFCHR mode:0620 dev:284,0 ino:4 uid:0 gid:7 rdev:0,0
O_RDWR|O_CREAT|O_LARGEFILE
/devices/pseudo/[EMAIL PROTECTED]:console
3: S_IFREG mode:0444 dev:286,1 ino:65538 uid:0 gid:0 size:0
O_RDONLY|O_LARGEFILE
/system/contract/process/pbundle
5: S_IFPORT mode:0000 dev:296,0 uid:0 gid:0 size:0
6: S_IFREG mode:0644 dev:289,1 ino:438902358 uid:0 gid:0 size:0
O_RDWR|O_CREAT|O_LARGEFILE FD_CLOEXEC
/etc/svc/volatile/svc.startd.log
7: S_IFDOOR mode:0777 dev:294,0 ino:0 uid:0 gid:0 size:0
O_RDWR FD_CLOEXEC door to svc.configd[9]
8: S_IFDOOR mode:0777 dev:294,0 ino:0 uid:0 gid:0 size:0
O_RDWR FD_CLOEXEC door to svc.configd[9]
9: S_IFDOOR mode:0777 dev:294,0 ino:0 uid:0 gid:0 size:0
O_RDWR FD_CLOEXEC door to svc.configd[9]
10: S_IFDOOR mode:0777 dev:294,0 ino:0 uid:0 gid:0 size:0
O_RDWR FD_CLOEXEC door to svc.configd[9]
12: S_IFCHR mode:0000 dev:284,0 ino:13108 uid:0 gid:0 rdev:152,1
O_RDWR FD_CLOEXEC
/devices/pseudo/[EMAIL PROTECTED]:sysevent
29: S_IFREG mode:0444 dev:287,0 ino:457 uid:0 gid:0 size:336
O_RDONLY
/proc/457/psinfo
43: S_IFCHR mode:0000 dev:284,0 ino:13106 uid:0 gid:0 rdev:152,2
O_RDWR FD_CLOEXEC
/devices/pseudo/[EMAIL PROTECTED]:sysevent
44: S_IFDOOR mode:0777 dev:294,0 ino:0 uid:0 gid:0 size:0
O_RDWR FD_CLOEXEC door to svc.startd[7]
45: S_IFREG mode:0444 dev:286,1 ino:65538 uid:0 gid:0 size:0
O_RDONLY|O_LARGEFILE
/system/contract/process/pbundle
49: S_IFDOOR mode:0777 dev:294,0 ino:0 uid:0 gid:0 size:0
O_RDWR FD_CLOEXEC door to svc.configd[9]
#
-Kyle
_______________________________________________
opensolaris-discuss mailing list
[email protected]