Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Mar 2002 22:09:59 +0000
From:      David Malone <dwmalone@maths.tcd.ie>
To:        Harry Newton <harry_newton@telinco.co.uk>
Cc:        freebsd-stable@freebsd.org, dillon@freebsd.org
Subject:   Re: reproducable panic with python
Message-ID:  <20020306220959.GA47881@walton.maths.tcd.ie>
In-Reply-To: <867koq7gp7.fsf@basilisk.locus>
References:  <867koq7gp7.fsf@basilisk.locus>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 05, 2002 at 11:11:48PM +0000, Harry Newton wrote:
>  #!/usr/local/bin/python2.2
> 
>  import mmap
>  m = mmap.mmap(-1,256,mmap.MAP_ANON)
>  m = 1

I've made a little progress on this. It doesn't work with python2.0.
It does work on both -stable and -current. The trace back on -current
looks is included below. It's doing a msync when it doesdies.

The msync args look like:

(kgdb) print *(struct msync_args *)0xd10e1d20
$1 = {addr_l_ = <optimized out or zero length>, addr = 0x281e1000,
  addr_r_ = 0xd10e1d24 "", len_l_ = 0xd10e1d24 "", len = 256,
  len_r_ = 0xd10e1d28 "", flags_l_ = 0xd10e1d28 "", flags = 0,
  flags_r_ = 0xd10e1d2c ""}

but code which just does mmap, write, msync doesn't cause the panic.

	char *m;
	m = mmap((void *)0,256,PROT_READ|PROT_WRITE,MAP_ANON,-1,0);
	*m = 1;
	msync(m, 256, 0);

I guess this is probably one for Matt.

	David.

#10 0xc028e7d7 in trap (frame={tf_fs = 24, tf_es = 16, tf_ds = 16, tf_edi = 0,
      tf_esi = 0, tf_ebp = -787604296, tf_isp = -787604372, tf_ebx = 0,
      tf_edx = -795552496, tf_ecx = -795552496, tf_eax = -795552496,
      tf_trapno = 12, tf_err = 0, tf_eip = -1071245990, tf_cs = 8,
      tf_eflags = 66118, tf_esp = 4096, tf_ss = 673058816})
    at ../../../i386/i386/trap.c:431
#11 0xc026155a in vm_map_clean (map=0xd08fcfc0, start=673058816,
    end=673062912, syncio=1, invalidate=0) at ../../../vm/vm_map.c:1890
#12 0xc0263654 in msync (td=0xd10d2a00, uap=0xd10e1d20)
    at ../../../vm/vm_mmap.c:553
#13 0xc028f237 in syscall (frame={tf_fs = 47, tf_es = 47, tf_ds = 47,
      tf_edi = 256, tf_esi = 0, tf_ebp = -1077938440, tf_isp = -787604108,
      tf_ebx = 672132592, tf_edx = 135172096, tf_ecx = 135300544, tf_eax = 65,
      tf_trapno = 12, tf_err = 2, tf_eip = 672555827, tf_cs = 31,
      tf_eflags = 643, tf_esp = -1077938484, tf_ss = 47})
    at ../../../i386/i386/trap.c:1045
#14 0xc028348d in syscall_with_err_pushed ()


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?20020306220959.GA47881>