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

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

[-- Attachment #1 --]
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?

At the very least, please reconsider having this MFC'ed without getting to the 
bottom of it.
-- 
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

iQEcBAABCAAGBQJXlEZkAAoJEDXWlwnsgJ4EnC0IAK/3ZRLGACt3gTAWLETbIcJe
LGiZw4R9UlNZmbhh49q7wXOIfrlgRFyCh13HSm34CyEFglbE6RMAMiDcMaLNO6LD
XIqWJ2gmQxiOU8tdcXign4QxWnO1G7gycZDOnwIRzULsqi2cUmXP9zUomlXoBA08
rtMmHJo+vb9CbUNfu92P+aw/XydAN3CLIwLSHKl52wF4wvEgwv8AP34VWf3fjBWp
weLMsslc43EjvCSchDZpf+eFWvBtH35r5aUm3Aty2agnUkhpnnKBkJ2eP7gMl2G3
30qAZZS8m+NGz0FR/RHVpYXgj7UhmuNWUjMXkLq1FX4Oy7/3m0MRKTrKEAhZb8g=
=48mN
-----END PGP SIGNATURE-----

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