svn commit: r303019 - head/sys/geom

Peter Wemm peter at wemm.org
Sun Jul 24 05:27:22 UTC 2016


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 at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com; KI6FJV
UTF-8: for when a ' or ... just won\342\200\231t do\342\200\246
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20160723/81762bce/attachment.sig>


More information about the svn-src-all mailing list