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]

Reply via email to