[SunHELP] vi crashes

Alan Rubin rubin at frell.org
Fri Jan 11 19:46:38 CST 2002


This is a Sol 7 box in Chicago.  i am in Australia.

the TERM is set to vt100.

alan

On Fri, 11 Jan 2002, Nicholas Dronen wrote:

> On Fri, Jan 11, 2002 at 07:59:15AM -0600, Alan Rubin wrote:
> > can anyone decipher this for me?  maybe there is a permission error?
> 
> Sure, but truss won't show you where exactly in the process
> it's getting the signal.  If you have Solaris 8, you can use
> the -u flag, which shows the symbols and arguments of shared
> library *function* calls, not just kernel-trap system calls.
> 
> Something like:
> 
> $ truss -o [ output file ] -u'*libc*' [ program ]
> 
> There's a more proper way to use -u, but I don't
> have a Sun machine at home and I'm too lazy to
> check http://docs.sun.com/. :-)
> 
> > open("/export/home/rubin/.exrc", O_RDONLY)      Err#2 ENOENT
> > sigaction(SIGINT, 0xEFFFF210, 0xEFFFF290)       = 0
> > sigaction(SIGTSTP, 0xEFFFF270, 0xEFFFF2F0)      = 0
> > dup(4)                                          = 0
> > close(4)                                        = 0
> > close(-1)                                       Err#9 EBADF 
> 
> The above close() looks odd, although it's too far
> away from the SIGILL to be the cause.
> 
> > stat("/var/tmp", 0xEFFFF2F0)                    = 0
> > getpid()                                        = 11718 [11717]
> > creat("/var/tmp/Ex0000011718", 0600)            = 4
> > close(4)                                        = 0
> > open("/var/tmp/Ex0000011718", O_RDWR)           = 4
> > write(1, "1B [ 6 4 ; 1 H", 7)                   = 7
> > sigaction(SIGWINCH, 0xEFFFF0A8, 0xEFFFF128)     = 0
> > brk(0x000BCB68)                                 = 0
> > sigaction(SIGINT, 0xEFFFF048, 0xEFFFF0C8)       = 0
> > ioctl(2, TCGETS, 0x0009F6D8)                    = 0
> > ioctl(2, TCSETSW, 0x0009F6D8)                   = 0
> > ioctl(2, TCGETS, 0x000B3910)                    = 0
> > ioctl(0, I_STR, 0x0004FEF0)                     Err#22 EINVAL
> > write(1, "1B [ ? 1 h1B =", 7)                   = 7
> > "/tmp/x"write(1, " " / t m p / x "", 8)         = 8
> > unlink("/var/tmp/Ex0000011718")                 = 0
> > close(4)                                        = 0
> > stat("/var/tmp", 0xEFFFD370)    = 0
> > getpid()                                      = 11718 [11717]
> > creat("/var/tmp/Ex0000011718", 0600)             = 4
> > close(4)        = 0
> > open("/var/tmp/Ex0000011718", O_RDWR)         = 4
> 
> Permissions are OK -- creating and opening a file in /var/tmp
> returns a file descriptor.
> 
> > open("/tmp/x", O_RDONLY)                     Err#2 ENOENT
> > [New file] write(1, "   [ N e w   f i l e ]  ", 12)    = 12
> > write(1, "1B [ H1B [ J\n ~\n\b ~\n".., 221)     = 221
> > read(0, 0xEFFFD517, 1)             (sleeping...)
> 
> Here vi blocks waiting for input (file descriptor
> 0, the first argument to the read system call, is
> stdin).
> 
> > read(0, " i", 1)              = 1
> 
> Here it reads your "insert" command.
> 
> > ioctl(0, I_STR, 0x0004FEF0)                   Err#22 EINVAL
> > ~         d", 1)      = 1
> > ~ ioctl(0, I_STR, 0x0004FEF0)                   Err#22 EINVAL
> 
> Do some ioctl or other on the input descriptor.
> 
> > Incurred fault #1, FLTILL  %pc = 0x00038B88
> 
> Boom.  We don't know what happened between the last
> ioctl and the SIGILL.  The third argument to ioctl
> (the address of some structure) is the same for
> the last to ioctl calls, which suggests the address
> is legitimate.  Also, the SIGILL doesn't occur until
> after the second ioctl returns; if it were otherwise,
> we wouldn't see 'Err#22 EINVAL' as the return code.
> 
> On the whole, this is only interesting in so far as
> it shows you that /var/tmp has adequate permissions.
> Do you have Solaris 8 and the time to use -u and resend
> the last 40 lines or so before the SIGILL?
> 
> If you don't have Solaris 8 (and you don't want to use
> adb to get a stack trace), I'd follow Robert's advice 
> and check your environment.  Perhaps TERM is set to
> some odd value.
> 
> Regards,
> 
> Nicholas Dronen
> _______________________________________________
> SunHELP maillist  -  SunHELP at sunhelp.org
> http://www.sunhelp.org/mailman/listinfo/sunhelp
> 

_________________
*Alan Rubin*
Sun/Unix/Networking/Web Writing
Email:rubin at frell.org 



More information about the SunHELP mailing list