Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: amd64 -current crashs at boot



Christoph Egger wrote:
> Hi,
> 
> a amd64 -current kernel from today crashes at boot
> when sshd starts:
> 
> uvm_fault(0xffffffff80d1e180, 0x0, 1) -> e
> fatal page fault in supervisor mode
> trap type 6 code 0 rip ffffffff802abbe4 cs 8 rflags 10282 cr2  60 cpl 0
> rsp ffff80004d832b20
> kernel: page fault trap, code=0
> Stopped in pid 0x46 (system) at netbsd:ffs_update+0x24: testb
> $0x1,0x60(%ray)
> db{0}> bt
> ffs_update() at netbsd:ffs_update+0x24
> ffs_full_fsync() at netbsd:ffs_full_fsync+0x54b
> spec_fsync() at netbsd:spec_fsync+0x59
> VOP_FSYNC() at netbsd:VOP_FSYNC+0x71
> sched_sync() at netbsd:sched_sync+0x14f
> db{0}> ps /l
> [...]
>  PID  LID S FLAGS     STRUCT LWP *         NAME WAIT
>> 0    49 3   204  ffff80004e1e7400     physiod physiod
>        48 3   204  ffff80004d7127c0 vmem_rehash vmem_rehash
>        47 3   204  ffff80004d712ba0    aiodoned aiodoned
>      > 46 7   204  ffff80004d700000     ioflush
> [...]

I found the commit which causes this:

It is ffs_vnops.c, rev. 1.105. Going back to rev. 1.104 makes
the machine boot again.

With rev. 1.105, when ffs_full_fsync() calls ffs_update in line 580,
vp->v_mount is a NULL pointer. ffs_update() dereferences it w/o
checking if the pointer is valid.

Christoph



Home | Main Index | Thread Index | Old Index