Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Apr 2008 17:36:33 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Steven Hartland <killing@multiplay.co.uk>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: 7.0 panic in geom / ufs
Message-ID:  <20080426143633.GN18958@deviant.kiev.zoral.com.ua>
In-Reply-To: <012101c8a7a4$e89a98a0$b6db87d4@multiplay.co.uk>
References:  <012101c8a7a4$e89a98a0$b6db87d4@multiplay.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help

--K6O+KTK9ergsM8fw
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, Apr 26, 2008 at 02:53:20PM +0100, Steven Hartland wrote:
> We have had the following panic now twice on one of our hosting
> boxes running 7.0-RELEASE (amd64)
>=20
> >From a basic look around it seems that when running the following
> that provider (pp) is invalid.
> 364             g_trace(G_T_BIO, "bio_request(%p) from %p(%s) to %p(%s) c=
md=20
> %d",
> 365                 bp, cp, cp->geom->name, pp, pp->name, bp->bio_cmd);
>=20
> Does anyone know their been any fixes in this area in stable that
> we should be applying?
>=20
> The contributing factor here could be we have a single slice
> mounted several times read only in a number of jails?
Do you mean mounted directly. i.e. the same physical disk mounted
several times on different mount points ?

If yes, this cannot work (now). You shall use nullfs mounts to
get the desired behaviour.
>=20
>=20
> Fatal trap 12: page fault while in kernel mode
> cpuid =3D 1; apic id =3D 01
> fault virtual address   =3D 0x50006
> fault code              =3D supervisor read data, page not present
> instruction pointer     =3D 0x8:0xffffffff8023e3c6
> stack pointer           =3D 0x10:0xffffffffae39f7e0
> frame pointer           =3D 0x10:0xffffff00a18a5400
> code segment            =3D base 0x0, limit 0xfffff, type 0x1b
>                        =3D DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags        =3D interrupt enabled, resume, IOPL =3D 0
> current process         =3D 55130 (vim)
> trap number             =3D 12
> panic: page fault
> cpuid =3D 1
> Uptime: 40d17h22m13s
> Physical memory: 4088 MB
> Dumping 520 MB: 505 489 473 457 441 425 409 393 377 361 345 329 313 297 2=
81=20
> 265 249 233 217 201 185 169 153 137 121 105 89 73 57 41 25 9
>=20
> #0  doadump () at pcpu.h:194
> 194             __asm __volatile("movq %%gs:0,%0" : "=3Dr" (td));
> (kgdb) list *0x8:0xffffffff8023e3c6
> A syntax error in expression, near `:0xffffffff8023e3c6'.
> (kgdb) list *0xffffffff8023e3c6
> 0xffffffff8023e3c6 is in g_io_request (/usr/src/sys/geom/geom_io.c:364).
> 359                     KASSERT(bp->bio_length % cp->provider->sectorsize=
=20
> =3D=3D 0,
> 360                         ("wrong length %jd for sectorsize %u",
> 361                         bp->bio_length, cp->provider->sectorsize));
> 362             }
> 363
> 364             g_trace(G_T_BIO, "bio_request(%p) from %p(%s) to %p(%s) c=
md=20
> %d",
> 365                 bp, cp, cp->geom->name, pp, pp->name, bp->bio_cmd);
> 366
> 367             bp->bio_from =3D cp;
> 368             bp->bio_to =3D pp;
> (kgdb) bt
> #0  doadump () at pcpu.h:194
> #1  0x0000000000000004 in ?? ()
> #2  0xffffffff80288869 in boot (howto=3D260) at=20
> /usr/src/sys/kern/kern_shutdown.c:409
> #3  0xffffffff80288c6d in panic (fmt=3D0x104 <Address 0x104 out of bounds=
>)=20
> at /usr/src/sys/kern/kern_shutdown.c:563
> #4  0xffffffff803d6624 in trap_fatal (frame=3D0xffffff00713c79f0,=20
> eva=3D18446742976103034880) at /usr/src/sys/amd64/amd64/trap.c:724
> #5  0xffffffff803d69f5 in trap_pfault (frame=3D0xffffffffae39f730,=20
> usermode=3D0) at /usr/src/sys/amd64/amd64/trap.c:641
> #6  0xffffffff803d7338 in trap (frame=3D0xffffffffae39f730) at=20
> /usr/src/sys/amd64/amd64/trap.c:410
> #7  0xffffffff803bcfae in calltrap () at=20
> /usr/src/sys/amd64/amd64/exception.S:169
> #8  0xffffffff8023e3c6 in g_io_request (bp=3D0xffffff011c81d000,=20
> cp=3D0xffffff00a18a5400) at /usr/src/sys/geom/geom_io.c:364
> #9  0xffffffff8038643f in ufs_strategy (ap=3DVariable "ap" is not availab=
le.
> ) at /usr/src/sys/ufs/ufs/ufs_vnops.c:1997
> #10 0xffffffff802e9ce9 in bufstrategy (bo=3DVariable "bo" is not availabl=
e.
> ) at vnode_if.h:935
> #11 0xffffffff802f05b0 in breadn (vp=3D0xffffff001b1135d0, blkno=3DVariab=
le=20
> "blkno" is not available.
> ) at buf.h:429
> #12 0xffffffff802f064a in bread (vp=3DVariable "vp" is not available.
> ) at /usr/src/sys/kern/vfs_bio.c:734
> #13 0xffffffff8037c72a in ffs_read (ap=3DVariable "ap" is not available.
> ) at /usr/src/sys/ufs/ffs/ffs_vnops.c:531
> #14 0xffffffff80387913 in ufs_readdir (ap=3D0xffffffffae39fa70) at=20
> vnode_if.h:344
> #15 0xffffffff8030d91f in getdirentries (td=3D0xffffff00713c79f0,=20
> uap=3D0xffffffffae39fbe0) at vnode_if.h:747
> #16 0xffffffff803d6c77 in syscall (frame=3D0xffffffffae39fc70) at=20
> /usr/src/sys/amd64/amd64/trap.c:852
> #17 0xffffffff803bd1bb in Xfast_syscall () at=20
> /usr/src/sys/amd64/amd64/exception.S:290
> #18 0x00000008009a4c7c in ?? ()
> Previous frame inner to this frame (corrupt stack?)
>=20
> (kgdb) up 8
> #8  0xffffffff8023e3c6 in g_io_request (bp=3D0xffffff006ae6f870,=20
> cp=3D0xffffff0001b5ee00) at /usr/src/sys/geom/geom_io.c:364
> 364             g_trace(G_T_BIO, "bio_request(%p) from %p(%s) to %p(%s) c=
md=20
> %d",
> (kgdb) print bp
> $1 =3D (struct bio *) 0xffffff006ae6f870
> (kgdb) print *bp
> $2 =3D {bio_cmd =3D 1 '\001', bio_flags =3D 0 '\0', bio_cflags =3D 0 '\0'=
,=20
> bio_pflags =3D 0 '\0', bio_dev =3D 0x0, bio_disk =3D 0x0,
>  bio_offset =3D 8861696000, bio_bcount =3D 0, bio_data =3D 0xffffffffa52b=
b000=20
>  "?\236???", bio_error =3D 0, bio_resid =3D 0,
>  bio_done =3D 0xffffffff80242560 <g_vfs_done>, bio_driver1 =3D 0x0, bio_d=
river2=20
>  =3D 0x0, bio_caller1 =3D 0x0,
>  bio_caller2 =3D 0xffffffff9a0ac820, bio_queue =3D {tqe_next =3D 0x0, tqe=
_prev =3D=20
>  0x0}, bio_attribute =3D 0x0, bio_from =3D 0x0,
>  bio_to =3D 0x0, bio_length =3D 16384, bio_completed =3D 0, bio_children =
=3D 0,=20
>  bio_inbed =3D 0, bio_parent =3D 0x0, bio_t0 =3D {sec =3D 0,
>    frac =3D 0}, bio_task =3D 0, bio_task_arg =3D 0x0, bio_pblkno =3D 0}
> (kgdb) print cp
> $3 =3D (struct g_consumer *) 0xffffff0001b5ee00
> (kgdb) print *cp
> $4 =3D {geom =3D 0xffffff0001519ca0, consumer =3D {le_next =3D 0x0, le_pr=
ev =3D=20
> 0xffffffff99c83cf8}, provider =3D 0x50006, consumers =3D {
>    le_next =3D 0xffffff0001b5e680, le_prev =3D 0xffffff00699900f8}, acr =
=3D 92,=20
>    acw =3D 0, ace =3D 175272032, spoiled =3D 0, stat =3D 0x0,
>  nstart =3D 0, nend =3D 0, private =3D 0xffffff00699900c0, index =3D 2869=
8240}
> (kgdb) print cp->geom
> $5 =3D (struct g_geom *) 0xffffff0001519ca0
> (kgdb) print *cp->geom
> $6 =3D {name =3D 0xffffffff80453365 "vfslock", class =3D 0xffffffff804533=
65, geom=20
> =3D {le_next =3D 0x4390000, le_prev =3D 0x0}, consumer =3D {
>    lh_first =3D 0xffffffff805f7760}, provider =3D {lh_first =3D 0x0}, geo=
ms =3D=20
>    {tqe_next =3D 0x50000000000000, tqe_prev =3D 0x0}, rank =3D -1,
>  start =3D 0, spoiled =3D 0xffffffff80453354 <sun_noname+4740>, dumpconf =
=3D=20
>  0xffffffff80453354 <sun_noname+4740>, access =3D 0x1030000,
>  orphan =3D 0, ioctl =3D 0x4, softc =3D 0x0, flags =3D 1}
> (kgdb) print *pp
> Cannot access memory at address 0x50006
> (kgdb) print pp
> $7 =3D (struct g_provider *) 0x50006=20
>=20
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> This e.mail is private and confidential between Multiplay (UK) Ltd. and t=
he=20
> person or entity to whom it is addressed. In the event of misdirection, t=
he=20
> recipient is prohibited from using, copying, printing or otherwise=20
> disseminating it or any information contained in it.=20
> In the event of misdirection, illegible or incomplete transmission please=
=20
> telephone +44 845 868 1337
> or return the E.mail to postmaster@multiplay.co.uk.
>=20
> _______________________________________________
> freebsd-stable@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"

--K6O+KTK9ergsM8fw
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (FreeBSD)

iEYEARECAAYFAkgTPfAACgkQC3+MBN1Mb4iI2gCgpaklqQUm3hRog7bCP31zixPi
zF4An1JFIVxl2KS5fAfiDBLpiDSe5VHy
=GKRZ
-----END PGP SIGNATURE-----

--K6O+KTK9ergsM8fw--



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