Deadlock in VLAN 12-current w/patch

Hans Petter Selasky hps at selasky.org
Mon Oct 8 15:37:05 UTC 2018


Hi Matthew,

There is a deadlock when destroying VLANs after the epoch changes were 
made. Can you have a look and consider the attached patch for 12-current?

Thank you!

--HPS

Thread 1:

> epoch_block_handler_preempt() at epoch_block_handler_preempt+0x90/frame 0xfffffe00261b3970                                                                                  
> ck_epoch_synchronize_wait() at ck_epoch_synchronize_wait+0x9d/frame 0xfffffe00261b39c0                                                                                      
> epoch_wait_preempt() at epoch_wait_preempt+0x170/frame 0xfffffe00261b3a20                                                                                                   
> vlan_setmulti() at vlan_setmulti+0xb4/frame 0xfffffe00261b3a70                                                                                                              
> vlan_ioctl() at vlan_ioctl+0x83/frame 0xfffffe00261b3ad0                                                                                                                    
> in6m_release_task() at in6m_release_task+0x32e/frame 0xfffffe00261b3b30                                                                                                     
> gtaskqueue_run_locked() at gtaskqueue_run_locked+0xf9/frame 0xfffffe00261b3b80                                                                                              
> gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0x88/frame 0xfffffe00261b3bb0                                                                                            
> fork_exit() at fork_exit+0x84/frame 0xfffffe00261b3bf0                                                                                                                      
> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00261b3bf0                                                                                                           
> --- trap 0, rip = 0, rsp = 0, rbp = 0 ---     

Thread 2:

> sleepq_switch() at sleepq_switch+0x10d/frame 0xfffffe002bffd3f0                                                                                                             
> sleepq_wait() at sleepq_wait+0x43/frame 0xfffffe002bffd420                                                                                                                  
> _sx_xlock_hard() at _sx_xlock_hard+0x4a6/frame 0xfffffe002bffd4c0                                                                                                           
> _sx_xlock() at _sx_xlock+0xc1/frame 0xfffffe002bffd500                                                                                                                      
> in6_leavegroup() at in6_leavegroup+0x27/frame 0xfffffe002bffd520                                                                                                            
> in6_purgeaddr() at in6_purgeaddr+0xc2/frame 0xfffffe002bffd6a0                                                                                                              
> if_purgeaddrs() at if_purgeaddrs+0x11e/frame 0xfffffe002bffd750                                                                                                             
> if_detach_internal() at if_detach_internal+0x709/frame 0xfffffe002bffd7d0                                                                                                   
> if_detach() at if_detach+0x3d/frame 0xfffffe002bffd7f0                                                                                                                      
> vlan_clone_destroy() at vlan_clone_destroy+0x21/frame 0xfffffe002bffd820                                                                                                    
> if_clone_destroyif() at if_clone_destroyif+0x175/frame 0xfffffe002bffd870                                                                                                   
> if_clone_destroy() at if_clone_destroy+0x205/frame 0xfffffe002bffd8c0                                                                                                       
> ifioctl() at ifioctl+0x582/frame 0xfffffe002bffd990                                                                                                                         
> kern_ioctl() at kern_ioctl+0x2ba/frame 0xfffffe002bffd9f0                                                                                                                   
> sys_ioctl() at sys_ioctl+0x15e/frame 0xfffffe002bffdac0                                                                                                                     
> amd64_syscall() at amd64_syscall+0x28c/frame 0xfffffe002bffdbf0                                                                                                             
> fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe002bffdbf0                                                                                                 
> --- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x80047b92a, rsp = 0x7fffffffe318, rbp = 0x7fffffffe330 ---                                                               
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vlan.diff
Type: text/x-patch
Size: 1311 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20181008/c840ddaa/attachment.bin>


More information about the freebsd-net mailing list