Crash in g_dev_strategy / CURRENT as of yesterday.

Poul-Henning Kamp phk at phk.freebsd.dk
Tue Aug 12 13:41:07 PDT 2003


In message <15259437.1060727394@[192.168.0.2]>, Eivind Olsen writes:
>--On 12. august 2003 20:39 +0100 Peter Edwards 
><peter.edwards at openet-telecom.com> wrote:
>>> # 10 0xc04f3c65 in trap (frame=
>>>       {tf_fs = -1059913704, tf_es = -890109936, tf_ds = -1070268400,
>>> tf_edi
>>> = -1040540480, tf_esi = -978597456, tf_ebp = -890095148, tf_isp =
>>> -890095220, tf_ebx = 0, tf_edx = 0, tf_ecx = 0, tf_eax = 16343040,
>>> tf_trapno = 12, tf_err = 2, tf_eip = -1070560519, tf_cs = 8, tf_eflags
>>> =
>>> 66054, tf_esp = -978597456, tf_ss = -1067143852}) at
>>> /usr/src/sys/i386/i386/trap.c:420
>> Look at tf_eip: -1070560519 = 0xc0308af9
>> What does "list *0xc0308af9" show in gdb?
>
>(kgdb) list *0xc0308af9
>0xc0308af9 is in g_dev_strategy (/usr/src/sys/geom/geom_dev.c:401).
>396             KASSERT(cp->acr || cp->acw,
>397                 ("Consumer with zero access count in g_dev_strategy"));
>398
>399             bp2 = g_clone_bio(bp);
>400             KASSERT(bp2 != NULL, ("XXX: ENOMEM in a bad place"));
>401             bp2->bio_offset = (off_t)bp->bio_blkno << DEV_BSHIFT;
>402             KASSERT(bp2->bio_offset >= 0,
>403                 ("Negative bio_offset (%jd) on bio %p",
>404                 (intmax_t)bp2->bio_offset, bp));
>405             bp2->bio_length = (off_t)bp->bio_bcount;
>(kgdb)

Ohh, damn, I still have that stuff uncommitted.  Will fix!

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.


More information about the freebsd-current mailing list