Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Jul 2017 09:24:06 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Peter Wemm <peter@wemm.org>
Cc:        svn-src-head@FreeBSD.org, src-committers@FreeBSD.org, svn-src-all@FreeBSD.org
Subject:   Re: svn commit: r320452 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys
Message-ID:  <f2289f19-fe07-bb5a-3082-7ebe2d48856f@FreeBSD.org>
In-Reply-To: <1620155.k5U0yJ7ekR@overcee.wemm.org>
References:  <201706281359.v5SDxKDB033681@repo.freebsd.org> <2865573.6VCVxXl8ZR@overcee.wemm.org> <2227668.mxUYtcVILl@overcee.wemm.org> <1620155.k5U0yJ7ekR@overcee.wemm.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 12/07/2017 22:52, Peter Wemm wrote:
> On Tuesday, July 11, 2017 11:55:47 PM Peter Wemm wrote:
>> On Tuesday, July 11, 2017 11:08:15 PM Peter Wemm wrote:
>>> On Wednesday, June 28, 2017 01:59:20 PM Andriy Gapon wrote:
>>>>   A side bonus of this change is that now a vdev zio has a pointer
>>>>   to its corresponding bio while the zio is active.
>>>
>>> fault virtual address   = 0x28
>>>
>>>
>>> db> where
>>> Tracing pid 0 tid 100471 td 0xfffff80005452000
>>> vdev_geom_io_done() at vdev_geom_io_done+0x36/frame 0xfffffe0239f9eaa0
>>> zio_vdev_io_done() at zio_vdev_io_done+0x176/frame 0xfffffe0239f9ead0
>>> zio_execute() at zio_execute+0xac/frame 0xfffffe0239f9eb20
>>
>> Oops, truncated.
>>
>>
>> taskqueue_run_locked() at taskqueue_run_locked+0x127/frame
>> 0xfffffe0239f9eb80 taskqueue_thread_loop() at
>> taskqueue_thread_loop+0xc8/frame 0xfffffe0239f9ebb0 fork_exit() at
>> fork_exit+0x85/frame 0xfffffe0239f9ebf0
>> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0239f9ebf0
>> --- trap 0, rip = 0, rsp = 0, rbp = 0 ---
> 
> Likewise with a disk failing or being put offline.   eg: the explicit offlining 
> case, making a vdev degrade:


Peter,

could you please see if the patch from the bug report you opened helps with the
problems?
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220691#c3

Sorry for the breakage and thank you for the report.


> root@nope.ysv:/home/peter # zpool offline zroot mfid5p3
> 
> atal trap 12: page fault while in kernel mode
> cpuid = 4; apic id = 04
> 
> Fatal trap 12: page fault while in kernel mode
> fault virtual address	= 0x28
> Fatal trap 12: page fault while in kernel mode
> 
> Fatal trap 12: page fault while in kernel mode
> Fatal trap 12: page fault while in kernel mode
> cpuid = 7; apic id = 07
> cpuid = 1; apic id = 01
> fault virtual address	= 0x28
> fault code		= supervisor read data, page not present
> cpuid = 3; cpuid = 5; apic id = 03
> Fatal trap 12: page fault while in kernel mode
> apic id = 05
> fault virtual address	= 0x28
> fault virtual address	= 0x28
> fault code		= supervisor read data, page not present
> instruction pointer	= 0x20:0xffffffff803aab56
> stack pointer	        = 0x28:0xfffffe085fb3aa90
> instruction pointer	= 0x20:0xffffffff803aab56
> fault code		= supervisor read data, page not present
> cpuid = 6; fault virtual address	= 0x28
> Fatal trap 12: page fault while in kernel mode
> fault code		= supervisor read data, page not present
> instruction pointer	= 0x20:0xffffffff803aab56
> stack pointer	        = 0x28:0xfffffe085fb3fa90
> frame pointer	        = 0x28:0xfffffe085fb3aaa0
> fault code		= supervisor read data, page not present
> cpuid = 2; apic id = 02
> apic id = 06
> instruction pointer	= 0x20:0xffffffff803aab56
> fault virtual address	= 0x28
> fault code		= supervisor read data, page not present
> stack pointer	        = 0x28:0xfffffe085fb30a90
> instruction pointer	= 0x20:0xffffffff803aab56
> stack pointer	        = 0x28:0xfffffe085fb35a90
> frame pointer	        = 0x28:0xfffffe085fb3faa0
> code segment		= base 0x0, limit 0xfffff, type 0x1b
> stack pointer	        = 0x28:0xfffffe085fb44a90
> frame pointer	        = 0x28:0xfffffe085fb44aa0
> code segment		= base 0x0, limit 0xfffff, type 0x1b
> 			= DPL 0, pres 1, long 1, def32 0, gran 1
> fault virtual address	= 0x28
> 			= DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags	= interrupt enabled, instruction pointer	= 0x20:6
> frame pointer	        = 0x28:0xfffffe085fb30aa0
> code segment		= base 0x0, limit 0xfffff, type 0x1b
> code segment		= base 0x0, limit 0xfffff, type 0x1b
> frame pointer	        = 0x28:0xfffffe085fb35aa0
> code segment		= base 0x0, limit 0xfffff, type 0x1b
> resume, IOPL = 0
> stack pointer	        = 0x28:0xfffffe085fb26a90
> 			= DPL 0, pres 1, long 1, def32 0, gran 1
> 			= DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags	= fault code		= supervisor read data, page not
> frame pointer	        = 0x28:0xfffffe085fb26aa0
> instruction pointer	= 0x20:0xffffffff803aab56
> processor eflags	= interrupt enabled, code segment		= base b
> 			= DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags	= interrupt enabled, resume, IOPL = 0
> current process		= 0 (zio_write_intr_2)
> [ thread pid 0 tid 100500 ]
> Stopped at      vdev_geom_io_done+0x36: movq    0x28(%rbx),%rsi
> db> where
> Tracing pid 0 tid 100500 td 0xfffff8000aae6000
> vdev_geom_io_done() at vdev_geom_io_done+0x36/frame 0xfffffe085fb30aa0
> zio_vdev_io_done() at zio_vdev_io_done+0x176/frame 0xfffffe085fb30ad0
> zio_execute() at zio_execute+0xac/frame 0xfffffe085fb30b20
> taskqueue_run_locked() at taskqueue_run_locked+0x127/frame 0xfffffe085fb30b80
> taskqueue_thread_loop() at taskqueue_thread_loop+0xc8/frame 0xfffffe085fb30bb0
> fork_exit() at fork_exit+0x85/frame 0xfffffe085fb30bf0
> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe085fb30bf0
> --- trap 0, rip = 0, rsp = 0, rbp = 0 ---
> db> 
> 


-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f2289f19-fe07-bb5a-3082-7ebe2d48856f>