2.1.133-1: repeatable oops on reboot, autofs related

Steffen Zahn (zahn@berlin.snafu.de)
Wed, 23 Dec 1998 15:14:10 +0100


Hello,

I get a repeatable Oops on rebooting an 2.1.133-1/SMP
kernel. The process is either sendmail (8.9.1) or procmail.
The oops data were written down by hand and typed in later.

procmail is configured as the system-wide local delivery program
in sendmail.cf. sendmail is trying to deliver a mail
to a local user, that user has a home directory that is
auto-mounted and exists on a remote (Linux-)server.
The remote server is turned off, the automounter uses
the options rsize=4096,wsize=4096,hard,intr.

The system is based on Dual-PentiumII, 233MHz,
Gigabyte GA-686LX2 motherboard. The kernel is compiled with
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release).

The init, shutdown etc. are from util-linux, not the SYSV-style ones.
AFAIK that means that shutdown kills all processes at the same time,
not in any particular nice or helpful sequence.

Find the kernel configuration used at http://www.snafu.de/~zahn/autoconf.h

Complete boot messages are at http://www.snafu.de/~zahn/bootmsg.txt

Complete disassembly listing of linux/fs/pipe.c is at
http://www.snafu.de/~zahn/pipe.txt

Regards
Steffen

Unable to handle kernel NULL pointer dereference at virtual address 00000008
current->tss.cr3 = 04ae5000, %cr3 = 04ae5000
*pde = 00000000
Oops: 0000
CPU: 1
EIP: 0010:[<c012d246>]
EFLAGS: 00010286
eax: 00000000 ebx: 00000110 ecx: c26ff860 edx: c03cea20
esi: c3fe0000 edi: c3fe0000 ebp: 00000110 esp: c3fe1d3c
ds: 0018 es: 0018 ss: 0018
Process sendmail (pid: 168, process nr: 35, stackpage=c3fe1000)
Stack: c3fe0000 c3fe1db8 c7635c1c c7635bdc c7635bd0 00000000 00000110 c015c468
c26ff860 c3fe1db8 00000110 c26ff874 00000004 c26ff860 c26ff860 c3fe1dc8
40000000 c26ff874 c0000000 00000000 c015c589 c26ff860 c3fe1db8 00000110
Call Trace: [<c015c468>] [<c015c589>] [<c015c6c0>] [<c015b926>] [<c015ba38>] [<c015bacb>] [<c012dc57>]
[<c012de22>] [<c012df14>] [<c012bcc2>] [<c0108a5c>]
Code: 8b 70 08 c7 44 24 20 00 00 00 00 c7 44 24 1c 00 00 00 00 89

Using `/boot/System.map-2.1.133' to map addresses to symbols.

>>EIP: c012d246 <pipe_write+12/220>
Trace: c015c468 <autofs_write+60/ec>
Trace: c015c589 <autofs_notify_daemon+95/bc>
Trace: c015c6c0 <autofs_wait+110/21c>
Trace: c015b926 <try_to_fill_dentry+da/148>
Trace: c015ba38 <autofs_revalidate+a4/ec>
Trace: c015bacb <autofs_root_lookup+4b/98>
Trace: c012dc57 <real_lookup+4b/74>
Trace: c012de22 <lookup_dentry+122/1ec>
Trace: c012df14 <__namei+28/58>
Trace: c012bcc2 <sys_newstat+2a/90>
Trace: c0108a5c <system_call+34/38>

Code: c012d246 <pipe_write+12/220>
Code: c012d246 <pipe_write+12/220> 8b 70 08 movl 0x8(%eax),%esi
Code: c012d249 <pipe_write+15/220> c7 44 24 20 00 movl $0x0,0x20(%esp,1)
Code: c012d24e <pipe_write+1a/220> 00 00 00
Code: c012d251 <pipe_write+1d/220> c7 44 24 1c 00 movl $0x0,0x1c(%esp,1)
Code: c012d256 <pipe_write+22/220> 00 00 00
Code: c012d259 <pipe_write+25/220> 89 00 movl %eax,(%eax)
Code: c012d25b <pipe_write+27/220> 90 nop
Code: c012d25c <pipe_write+28/220> 90 nop
Code: c012d25d <pipe_write+29/220> 90 nop

from linux/fs/pipe.c:

static ssize_t pipe_write(struct file * filp, const char * buf,
size_t count, loff_t *ppos)
{
174: 83 ec 14 subl $0x14,%esp
177: 55 pushl %ebp
178: 57 pushl %edi
179: 56 pushl %esi
17a: 53 pushl %ebx
struct inode * inode = filp->f_dentry->d_inode;
17b: 8b 4c 24 28 movl 0x28(%esp,1),%ecx
17f: 8b 41 08 movl 0x8(%ecx),%eax
182: 8b 6c 24 30 movl 0x30(%esp,1),%ebp
186: 8b 70 08 movl 0x8(%eax),%esi
ssize_t chars = 0, free = 0, written = 0, err=0;
189: c7 44 24 20 00 movl $0x0,0x20(%esp,1)
18e: 00 00 00
191: c7 44 24 1c 00 movl $0x0,0x1c(%esp,1)
196: 00 00 00
char *pipebuf;

if (ppos != &filp->f_pos)
199: 89 c8 movl %ecx,%eax
19b: 83 c0 14 addl $0x14,%eax
19e: 39 44 24 34 cmpl %eax,0x34(%esp,1)
1a2: 74 0c je 1b0 <pipe_write+0x3c>
return -ESPIPE;
1a4: b8 e3 ff ff ff movl $0xffffffe3,%eax
1a9: e9 dc 01 00 00 jmp 38a <pipe_write+0x216>
1ae: 89 f6 movl %esi,%esi

if (!PIPE_READERS(*inode)) { /* no readers */
1b0: 83 be b0 00 00 cmpl $0x0,0xb0(%esi)
1b5: 00 00
1b7: 75 1e jne 1d7 <pipe_write+0x63>
send_sig(SIGPIPE,current,0);
1b9: 6a 00 pushl $0x0

-- 
home email:  user@domain where domain=berlin.snafu.de, user=zahn
Use of my address for unsolicited commercial advertising is forbidden.
      2^3021377 - 1     |     "Where do you want to crash today?"

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/