On Tue, Apr 12, 2022 at 09:46:24AM +0300, Andrew Krasavin wrote:
> On Tue, Apr 12, 2022 at 06:44:09AM +0200, Sebastien Marie wrote:
> > On Mon, Apr 11, 2022 at 10:35:37PM +0300, Andrew Krasavin wrote:
> > > 
> > > Unfortunately, I didn't have a chance to get to my home computer last
> > > week and provide you with the information you need. My apologies.
> > > 
> > 
> > It isn't a problem. but I will be still interested by result on your 
> > computer,
> > as it could help to figure the problem.
> 
> Of course. I wouldn't think of refusing to give you information. I
> would be glad if I could do something to help you find the cause of
> the problem. Feel free to ask me for any information you need about
> it.

As you have a good way to reproduce it on amd64, i might ask you to test some 
additionnal patches. For now, we need to properly understand the problem.
 
> I successfully built the latest current snapshot with your diff and
> booted with the new kernel. The panic was reproduced in the same way
> as on previous times.
> 
> This time, with your permission, I will post photos. If necessary,
> I can reprint what would be desirable to translate into text (please
> let me know if such a thing is needed).

I will transcribe some of them for others devs.

> trace:
> http://46.23.91.227:8098/trace0.jpg
> http://46.23.91.227:8098/trace1.jpg
> 
> Scrollback in the ddb console did not work for me for some reason.
> However, the 'dmesg' command seemed to show everything we needed:
> http://46.23.91.227:8098/console0.jpg
> http://46.23.91.227:8098/console1.jpg
> http://46.23.91.227:8098/console2.jpg
> http://46.23.91.227:8098/console3.jpg
> http://46.23.91.227:8098/console4.jpg
> http://46.23.91.227:8098/console5.jpg
> http://46.23.91.227:8098/console6.jpg

uvn_io: start: 0xffff8000ffab9688, type VREG, use 0, write 0, hold 0, flags 
(VBIOONFREELIST)
        tag VT_UFS, ino 14802284, on dev 4, 30 flags 0x100, effnlink 1, nlink 1
        mode 0100644, owner 858, group 1000, size 345603015
=> vnode_history_print 0xffff8000ffab9688, next=1
 [0]
#0 vput
#1 dofstatat
#2 syscall
#3 Xsyscall
 [1>]
#0 vput
#1 dofstatat
#2 syscall
#3 Xsyscall
 [2]
#0 vget
#1 ufs_ihashget
#2 ffs_vget
#3 ufs_lookup
#4 VOP_LOOKUP
#5 vfs_lookup
#6 namei
#7 vn_open
#8 doopenat
#9 syscall
#10 Xsyscall
 [3]
#0 uvn_attach
#1 uvm_mmapfile
#2 sys_mmap
#3 syscall
#4 Xsyscall
 [4]
#0 vput
#1 vn_closefile
#2 fdrop
#3 closef
#4 fdfree
#5 exit1
#6 single_thread_check_locked
#7 userret
#8 intr_user_exit
 [5]
#0 vrele
#1 uvm_unmap_detach
#2 uvm_map_teardown
#3 uvmspace_free
#4 reaper
#5 proc_trampoline
 [6]
#0 vget
#1 ufs_ihashget
#2 ffs_vget
#3 ufs_lookup
#4 VOP_LOOKUP
#5 vfs_lookup
#6 namei
#7 dofstatat
#8 syscall
#9 Xsyscall
 [7]
#0 vput
#1 dofstatat
#2 syscall
#3 Xsyscall
 [8]
#0 vget
#1 ufs_ihashget
#2 ffs_vget
#3 ufs_lookup
#4 VOP_LOOKUP
#5 vfs_lookup
#6 namei
#7 dofstatat
#8 syscall
#9 Xsyscall
panic: vn_lock: v_usecount == 0
Stopped at   db_enter+0x10: popq %rbp
    TID    PID UID PRFLAGS     PFLAGS CPU COMMAND
 448838  87877 858       0  0x4000000  3  qbittorrent-nox
*281933  50305   0 0x14000      0x200  1K pagedaemon
db_enter() at ...
panic(...)
vn_lock(ffff800ffab9688,81)
uvn_io(fffffd837a66bee8,...,1,90,1)
uvm_pager_put(fffffd837a66bee8, ....)
uvmpd_scan_inactive(...)
uvmpd_scan()
uvm_pageout(ffff8000ffff5270)

 
> But just in case, here is also the output of the 'show vnode'
> command itself:
> http://46.23.91.227:8098/show_vnode0.jpg
> http://46.23.91.227:8098/show_vnode1.jpg
> http://46.23.91.227:8098/show_vnode2.jpg
> http://46.23.91.227:8098/show_vnode3.jpg
> 
> show mount:
> http://46.23.91.227:8098/show_mount.jpg
> 
> show uvm:
> http://46.23.91.227:8098/show_uvm.jpg
> 
> After I rebooted into OS from ddb and got distracted by some
> personal stuff, qbittorrent continued rechecking from where it
> stopped during the panic (about half of 27Gb). I was searching for
> something in firefox at the time.
> Very soon I saw the kernel panic again, now with a slightly different
> content. I'm not sure if these things are related, but just in case,
> I'll leave the data from the console for this panic as well:
> 
> http://46.23.91.227:8098/second_panic0.jpg
> http://46.23.91.227:8098/second_panic_bcstats.jpg
> http://46.23.91.227:8098/second_panic_precpu0.jpg
> http://46.23.91.227:8098/second_panic_precpu1.jpg
> http://46.23.91.227:8098/second_panic_uvm.jpg
> 
> (I suspect I should open a separate bug report for this problem?)

at this point, I dunno if it is related.

just transcribing the main elements:

panic: kernel diagnostic assertion "rv" failed: file "/sys/uvm/uvm_glue.c", 
line 428

current process: aiodoned
(others: 3 firefox processes)

trace:
__assert(...)
uvm_atopg(...)
uvm_aio_aiodone(...)
uvm_aiodone_daemon(...)

the assert itself is:
   417  /*
   418   * uvm_atopg: convert KVAs back to their page structures.
   419   */
   420  struct vm_page *
   421  uvm_atopg(vaddr_t kva)
   422  {
   423          struct vm_page *pg;
   424          paddr_t pa;
   425          boolean_t rv;
   426   
   427          rv = pmap_extract(pmap_kernel(), kva, &pa);
   428          KASSERT(rv);
   429          pg = PHYS_TO_VM_PAGE(pa);
   430          KASSERT(pg != NULL);
   431          return (pg);
   432  }

Thanks.
-- 
Sebastien Marie

Reply via email to