Re: 2.1.110 oops

David Fries (dfries@mail.win.org)
Mon, 27 Jul 1998 20:05:39 -0500


On Mon, Jul 27, 1998 at 11:59:22PM +0100, Stephen C. Tweedie wrote:
> Hi,
>
> On Mon, 27 Jul 1998 15:00:33 -0700 (PDT), Linus Torvalds
> <torvalds@transmeta.com> said:
>
> >> - if (dentry->d_inode)
> >> + if (dentry && dentry->d_inode)
>
> > I don't think this is a proper fix. You should never have been able to
> > open a file without a dentry.
>
> Agreed. I've gone through the obvious paths in open_namei and the
> socket bits, and can't see how we'd get there.
>
> > I missed the beginning of this, how was the oops generated?

I wish I could tell you what I was doing at the time when the oops was
generated. I noticed it the same night as it happened, but I can't narrow
it down much more. That night I was working on getting my dual pentium
(the one where the oops occurred) to process postscript files with gs and
send the output to a slower computer to send to it's printer.

The local printer was off the entire time so it would have shown up in the
logs had I printed there. So the only "printing" that would have taken
place was over the network with lpd.

It was late and I was tired at the time. I had also been fiddling around
with it long enough that I wouldn't beable to show the printcap files at
the time of the oops. I think I noticed the oopses when I saw the printer
remote spool entries pilling up. For a while I figured they were stuck in
a loop because of impropper configuration with the printcap, so I would
just lprm the jobs re-configure and try it again. I tried to strace -p
(the child lpd process) and it wouldn't let me. I think it was around
there I noticed the oopses. I kill -9'ed the lpd process, which worked,
and figured out how to get the printer configuration setup.

I included the original oops, and output of ksymoops and also the .config
for the system. I am running the kernel compiled for dual. I do not have
support for quota.

These is the current configuration dealing with the remote printer I was
print to. At one point in time I had one or both of the :lp=/dev/null:
lines set as :lp=: but I don't know how they looked at the time of the
oops. Those were the only two oopes produced at the time and I haven't any
oopes since.

-------------------------------
citizen|Remote printer on Homer entry:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/remote:\
:if=/etc/magicfilter/tocitizen:

tocitizen|Remote printer on Homer entry raw:\
:lp=/dev/null:\
:rm=homer:\
:rp=raw:\
:sd=/var/spool/lpd/raw:\
:sh:
-----------------------------

Here are the modules I usually have loaded.
snd-gusmax, snd-gus, snd-cs4231, snd-synth, snd-timer, snd-midi,
snd-pcm1-oss, snd-pcm1, snd-pcm, snd-mixer, snd, serial,
lp, parport_pc, parport, bsd_comp, psaux, ne, 3c503, 8390

The

> ----------------------------------------------------------------
> I had a kernel Oops on 2.1.110 while trying to get a remote printer bounce
> to work (Filters don't run on remote printers, so you have to setup a
> bounce, and the remote computer with a 386 and 8megs ram running X with no
> swap doesn't cut it).
>
> Dual Pentium 200MHz MMX
> Tyan 1653D, Tomcat III
> Intel 82439HX, 82371SB chipset
> 128 megs memory,
> NCR53C810 using BSD ported driver
> Both IDE and SCSI harddrives
> NE2000 compatible ISA
> 3Com 3c503
> gcc 2.7.2.3
> ----------------------------------------------------------------
>
> No other info except for the oops itself. The fact that it's a dual
> CPU box is probably the only clue to anything unusual: the fact that
> we're possibly dealing with a chardev shouldn't make any difference
> since we still can't install the fd until after setting the dentry if we
> open such a device.
>
> As far as I can see, all calls to fd_install are protected from
> installing a filp with null f_dentry.
>
> --Stephen

Unable to handle kernel NULL pointer dereference at virtual address 00000008
current->tss.cr3 = 014ef000, %cr3 = 014ef000
*pde = 00000000
Oops: 0000
CPU: 1
EIP: 0010:[<c012a058>]
EFLAGS: 00010202
eax: 00000000 ebx: c2a90140 ecx: c2a90140 edx: c1a13240
esi: fffffff7 edi: 00000001 ebp: c1a13240 esp: c2045f64
ds: 0018 es: 0018 ss: 0018
Process lpd (pid: 24599, process nr: 73, stackpage=c2045000)
Stack: c2044000 fffffff7 c012a165 c2a90140 c1a13240 00000005 c2044000 0000000e
00000001 c0133c0a 00000001 c2044000 08056870 0000000e bffffb9c 08056870
fffffff7 c2a1bb00 00000000 00000000 00000000 00000000 c1a13240 c0109ff0
Call Trace: [<c012a165>] [<c0133c0a>] [<c0109ff0>]
Code: 83 78 08 00 74 0a 52 53 e8 ab c0 00 00 83 c4 08 0f b7 43 1c
Unable to handle kernel NULL pointer dereference at virtual address 00000008
current->tss.cr3 = 00101000, %cr3 = 00101000
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c012a058>]
EFLAGS: 00010202
eax: 00000000 ebx: c2a90140 ecx: 00000000 edx: c47aed80
esi: 0000005f edi: c47aed80 ebp: 00000001 esp: c5311f90
ds: 0018 es: 0018 ss: 0018
Process lpd (pid: 10317, process nr: 8, stackpage=c5311000)
Stack: 00000001 0000005f c011afa0 c2a90140 c47aed80 00000000 400ab740 00000000
bffffbbc c011b11e 00000000 c5310000 c0109ff0 00000000 400a7378 400ab75c
400ab740 00000000 bffffbbc 00000001 0000002b 0000002b 00000001 40071edd
Call Trace: [<c011afa0>] [<c011b11e>] [<c0109ff0>]
Code: 83 78 08 00 74 0a 52 53 e8 ab c0 00 00 83 c4 08 0f b7 43 1c

Using `/mnt/hda1/2.1.110-map' to map addresses to symbols.

>>EIP: c012a058 <close_fp+28/84>
Trace: c012a165 <sys_close+b1/d8>
Trace: c0133c0a <sys_dup2+de/294>
Trace: c0109ff0 <system_call+34/38>
Code: c012a058 <close_fp+28/84>
Code: c012a058 <close_fp+28/84> 83 78 08 00 cmpl $0x0,0x8(%eax)
Code: c012a05c <close_fp+2c/84> 74 0a je c012a068 <close_fp+38/84>
Code: c012a05e <close_fp+2e/84> 52 pushl %edx
Code: c012a05f <close_fp+2f/84> 53 pushl %ebx
Code: c012a060 <close_fp+30/84> e8 ab c0 00 00 call c0136110 <locks_remove_posix>
Code: c012a06b <close_fp+3b/84> 83 c4 08 addl $0x8,%esp
Code: c012a06e <close_fp+3e/84> 0f b7 43 1c movzwl 0x1c(%ebx),%eax
>>EIP: c012a058 <close_fp+28/84>
Trace: c011afa0 <do_exit+12c/230>
Trace: c011b11e <sys_exit+7a/7c>
Trace: c0109ff0 <system_call+34/38>
Code: c012a058 <close_fp+28/84>
Code: c012a058 <close_fp+28/84> 83 78 08 00 cmpl $0x0,0x8(%eax)
Code: c012a05c <close_fp+2c/84> 74 0a je c012a068 <close_fp+38/84>
Code: c012a05e <close_fp+2e/84> 52 pushl %edx
Code: c012a05f <close_fp+2f/84> 53 pushl %ebx
Code: c012a060 <close_fp+30/84> e8 ab c0 00 00 call c0136110 <locks_remove_posix>
Code: c012a06b <close_fp+3b/84> 83 c4 08 addl $0x8,%esp
Code: c012a06e <close_fp+3e/84> 0f b7 43 1c movzwl 0x1c(%ebx),%eax

CONFIG_EXPERIMENTAL=y
CONFIG_M586=y
CONFIG_MODULES=y
CONFIG_NET=y
CONFIG_PCI=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_QUIRKS=y
CONFIG_PCI_OPTIMIZE=y
CONFIG_PCI_OLD_PROC=y
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_SYSCTL=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_LOOP=m
CONFIG_PARIDE_PARPORT=m
CONFIG_PACKET=y
CONFIG_NETLINK=y
CONFIG_RTNETLINK=y
CONFIG_NETLINK_DEV=y
CONFIG_FIREWALL=y
CONFIG_NET_ALIAS=y
CONFIG_FILTER=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_RTNETLINK=y
CONFIG_NETLINK=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_TOS=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_ROUTE_LARGE_TABLES=y
CONFIG_IP_ROUTE_NAT=y
CONFIG_IP_FIREWALL=y
CONFIG_IP_FIREWALL_NETLINK=y
CONFIG_NETLINK_DEV=y
CONFIG_IP_ALWAYS_DEFRAG=y
CONFIG_IP_MASQUERADE=y
CONFIG_IP_MASQUERADE_ICMP=y
CONFIG_IP_MASQUERADE_IPAUTOFW=y
CONFIG_IP_MASQUERADE_IPPORTFW=y
CONFIG_NET_IPIP=m
CONFIG_IP_ALIAS=y
CONFIG_SYN_COOKIES=y
CONFIG_IP_NOSR=y
CONFIG_SKB_LARGE=y
CONFIG_IPV6=m
CONFIG_IPV6_EUI64=y
CONFIG_IPV6_NO_PB=y
CONFIG_NET_SCHED=y
CONFIG_NETLINK=y
CONFIG_RTNETLINK=y
CONFIG_NET_SCH_CBQ=y
CONFIG_NET_SCH_CSZ=y
CONFIG_NET_SCH_PRIO=y
CONFIG_NET_SCH_RED=y
CONFIG_NET_SCH_SFQ=y
CONFIG_NET_SCH_TEQL=y
CONFIG_NET_SCH_TBF=y
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=y
CONFIG_NET_CLS_U32=y
CONFIG_NET_CLS_RSVP=y
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_POLICE=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_NCR53C8XX=y
CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
CONFIG_SCSI_NCR53C8XX_SYNC=25
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_NET_VENDOR_3COM=y
CONFIG_EL2=m
CONFIG_NET_ISA=y
CONFIG_NE2000=m
CONFIG_PPP=y
CONFIG_CD_NO_IDESCSI=y
CONFIG_CM206=m
CONFIG_EXT2_FS=y
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_PROC_FS=y
CONFIG_NFS_FS=m
CONFIG_SUNRPC=m
CONFIG_LOCKD=m
CONFIG_AUTOFS_FS=m
CONFIG_DEVPTS_FS=y
CONFIG_NLS=y
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_ISO8859_1=m
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_SERIAL=m
CONFIG_PRINTER=m
CONFIG_MOUSE=y
CONFIG_PSMOUSE=m
CONFIG_RTC=y
CONFIG_JOYSTICK=m
CONFIG_VGA_CONSOLE=y
CONFIG_VIDEO_SELECT=y
CONFIG_MAGIC_SYSRQ=y
Linux AeroSpace 2.1.110 #83 SMP Wed Jul 22 22:09:33 CDT 1998 i586 unknown

-- 
		+---------------------------------+
		|      David Fries                |
		|      dfries@mail.win.org        |
		+---------------------------------+

- 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.altern.org/andrebalsa/doc/lkml-faq.html