Skip site navigation (1)Skip section navigation (2)
Date:      05 Mar 2002 23:11:48 +0000
From:      Harry Newton <harry_newton@telinco.co.uk>
To:        freebsd-stable@freebsd.org
Subject:   reproducable panic with python
Message-ID:  <867koq7gp7.fsf@basilisk.locus>

next in thread | raw e-mail | index | archive | help
With this:

 #!/usr/local/bin/python2.2

 import mmap
 m = mmap.mmap(-1,256,mmap.MAP_ANON)

 m = 1

I can panic the kernel:

 trap 12: page fault while in kernel mode --- supervisor read, page not
 present

 Stopped at: vm_map_clean+0x1ee: cmpl $0,0x40(%edi)

I dug around a bit with the debugger, and found the fault to lie in:

 /usr/src/sys/vm/vm_map.c : 1749

here's the right bit ( reformatted to fit on this page )

/*
 * Note that there is absolutely no sense in writing out
 * anonymous objects, so we track down the vnode object
 * to write out.
 * We invalidate (remove) all pages from the address space
 * anyway, for semantic correctness.
 */
   while (object->backing_object) {
     object = object->backing_object;
     offset += object->backing_object_offset;
     if (object->size < OFF_TO_IDX( offset + size))
                        size = IDX_TO_OFF(object->size) - offset;
                }

But: I can't be much more use, apart from noting that:

 size = 4096
 offset = -3621126458136592384
 object = 0x0
 object->backing_object --- can't access memory at 0x40

I take it that messing round with anonymous maps shouldn't panic the
kernel like this.

Q. + Should I submit a PR ?
   + can I supply anymore information ?


( It was mis-keying that caused the first panic, and I've reduced it
to the above lines of Python: I didn't set out with the above ! )

- Harry

-- 
Harry Newton
harry_newton at telinco.co.uk
www.gaudeamus.telinco.co.uk/html/gpg.html

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?867koq7gp7.fsf>