Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Jul 2016 22:27:15 -0700
From:      Peter Wemm <peter@wemm.org>
To:        svn-src-all@freebsd.org
Cc:        svn-src-head@freebsd.org, "Andrey V. Elsukov" <ae@freebsd.org>, src-committers@freebsd.org
Subject:   Re: svn commit: r303019 - head/sys/geom
Message-ID:  <6198652.UmU69kS6Zt@overcee.wemm.org>
In-Reply-To: <3277576.dFZ2EGo2Fh@overcee.wemm.org>
References:  <201607190536.u6J5aLl7015268@repo.freebsd.org> <3277576.dFZ2EGo2Fh@overcee.wemm.org>

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

[-- Attachment #1 --]
On Saturday, July 23, 2016 09:39:00 PM Peter Wemm wrote:
> On Tuesday, July 19, 2016 05:36:21 AM Andrey V. Elsukov wrote:
> > Author: ae
> > Date: Tue Jul 19 05:36:21 2016
> > New Revision: 303019
> > URL: https://svnweb.freebsd.org/changeset/base/303019
> > 
> > Log:
> >   Use g_resize_provider() to change the size of GEOM_DISK provider,
> >   when it is being opened. This should fix the possible loss of a resize
> >   event when disk capacity changed.
> 
> Are you sure about this?  We have machines in the freebsd.org cluster that
> now panic on boot:
> 
> Trying to mount root from zfs:zroot []...
> GEOM_PART: da0 was automatically resized.
>   Use `gpart commit da0` to save changes or `gpart undo da0` to revert them.
> GEOM_PART: integrity check failed (da0, GPT)
> 
> Fatal trap 12: page fault while in kernel mode
> cpuid = 1; apic id = 01
> fault virtual address	= 0x48
> fault code		= supervisor read data, page not present
> instruction pointer	= 0x20:0xffffffff80740005
> stack pointer	        = 0x28:0xfffffe01f119db10
> frame pointer	        = 0x28:0xfffffe01f119db30
> code segment		= base 0x0, limit 0xfffff, type 0x1b
> 			= DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags	= interrupt enabled, resume, IOPL = 0
> current process		= 13 (g_event)
> [ thread pid 13 tid 100019 ]
> Stopped at      g_part_resize+0x35:     testb   $0x8,0x48(%rbx)
> 
> 
> 
> db> where
> Tracing pid 13 tid 100019 td 0xfffff8000426fa00
> g_part_resize() at g_part_resize+0x35/frame 0xfffffe01f119db30
> g_resize_provider_event() at g_resize_provider_event+0xb5/frame
> 0xfffffe01f119d0 g_run_events() at g_run_events+0x20e/frame
> 0xfffffe01f119dbb0
> ..
> 
> It is exploding here:
> g_part_resize(struct g_consumer *cp)
> {
>         struct g_part_table *table;
> 
>         G_PART_TRACE((G_T_TOPOLOGY, "%s(%s)", __func__,
> cp->provider->name)); g_topology_assert();
> 
>         table = cp->geom->softc;
>         if (table->gpt_opened == 0) {
> ^^^^^^^^^ (table is null)
> 
> Are you creating events too soon now?

Sometimes da0 fails, other times da1 fails.. and sometimes it is completely 
fine.  There is some sort of race going on with this change during the very 
first moments of bootup.

-- 
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com; KI6FJV
UTF-8: for when a ' or ... just won\342\200\231t do\342\200\246
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAABCAAGBQJXlFG0AAoJEDXWlwnsgJ4EmLkH/A/haQXONwKWt/OP1PVowC2P
ZjSzFQpHogYDJXo0HqENWYD6zNUCgz89lAYBV0jZ/m2vgEmQ3tNL2KD86j8a7Pj/
IsVgBebYT79hrVkBGs5E02iGTNEiDIe0aFupIKdouijiXbDf84eL00gIEJpOGWzy
Fh6/Gtjn5LRNK6K9fA6sKJN2O3MH5kxTKqRFmw6/B07Z6vKKr3aG5vQSuISP5GV7
KOi9A1TtdrEpU2Q7OmMMone5zVWchHsmXPX4l1FkUBvxuBz786k6ZVFkHMw9CSjH
RSAAB/15kc480IXf114DOL4Hd2oTXpwGaetzb3C8nxDYQIrJsMywwQ2BOyFLE54=
=VtCP
-----END PGP SIGNATURE-----

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