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.


> r...@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
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to