LOR with divert sockets

Robert Watson rwatson at FreeBSD.org
Tue Feb 27 22:24:29 UTC 2007


On Sun, 25 Feb 2007, Andrea Venturoli wrote:

> I posted the following message to questions and Kris (which I thank) kindly 
> suggested I should ask here wether someone is working on this. I'll also 
> forward it for inclusion on the list at 
> http://sources.zabbadoz.net/freebsd/lor.html.
>
> BTW, I don't think the hangs I'm experiencing depend on this, but they might 
> be important to you anyway.

What versions of ip_fw2.c and ip_divert.c were in use?  The line numbers 
aren't as useful without matching revision number information.  I'm pretty 
sure I've fixed this, but it suddenly occurs to me that I may not have 
committed the fix.  Also, could you let me know if you use any uid/gid rules 
in your IPFW rule set?

Thanks,

Robert N M Watson
Computer Laboratory
University of Cambridge

>
> bye & Thanks
> 	av.
>
>
> ------------------------
> Hello.
> As I have already written to this list, several of my 6.2 servers are
> hanging very frequently.
> I've managed to turn on the following options on one of them:
>
>> options         KDB
>> options         DDB
>> options         KDB_UNATTENDED
>> options         INVARIANTS
>> options         INVARIANT_SUPPORT
>> options         WITNESS
>> options         DEBUG_LOCKS
>> options         DEBUG_VFS_LOCKS
>> options         DIAGNOSTIC
>
> I hope I can do that soon on the others too.
> In the meanwhile I have seen this in the log:
>
>> Feb 24 17:51:53 soth kernel: lock order reversal:
>> Feb 24 17:51:53 soth kernel: 1st 0xc6a37090 inp (divinp) @ 
>> /usr/src/sys/netinet/ip_divert.c:336
>> Feb 24 17:51:53 soth kernel: 2nd 0xc070a18c tcp (tcp) @ 
>> /usr/src/sys/netinet/ip_fw2.c:1982
>> Feb 24 17:51:53 soth kernel: KDB: stack backtrace:
>> Feb 24 17:51:53 soth kernel: 
>> kdb_backtrace(0,ffffffff,c06c8f10,c06cadb0,c0694084,...) at 
>> kdb_backtrace+0x29
>> Feb 24 17:51:53 soth kernel: witness_checkorder(c070a18c,9,c0665b07,7be) at 
>> witness_checkorder+0x578
>> Feb 24 17:51:53 soth kernel: _mtx_lock_flags(c070a18c,0,c0665b07,7be) at 
>> _mtx_lock_flags+0x78
>> Feb 24 17:51:53 soth kernel: 
>> check_uidgid(c6a890b0,6,c6507800,46c046c1,6e,...) at check_uidgid+0xdf
>> Feb 24 17:51:53 soth kernel: ipfw_chk(e6cc49f0,c6cfdb00,c6507800,0,0,...) 
>> at ipfw_chk+0xd74
>> Feb 24 17:51:53 soth kernel: ipfw_check_out(0,e6cc4ae8,c6507800,2,0) at 
>> ipfw_check_out+0xe0
>> Feb 24 17:51:53 soth kernel: 
>> pfil_run_hooks(c0709d40,e6cc4b5c,c6507800,2,0,...) at pfil_run_hooks+0xc9
>> Feb 24 17:51:53 soth kernel: ip_output(c6cfdb00,0,e6cc4b28,22,0,...) at 
>> ip_output+0x66a
>> Feb 24 17:51:53 soth kernel: 
>> div_output(c67a8000,c6cfdb00,c6b35be0,0,e6cc4c08,...) at div_output+0x185
>> Feb 24 17:51:53 soth kernel: div_send(c67a8000,0,c6cfdb00,c6b35be0,0,...) 
>> at div_send+0x3f
>> Feb 24 17:51:53 soth kernel:
>> Feb 24 17:51:53 soth kernel: 
>> sosend(c67a8000,c6b35be0,e6cc4c3c,c6cfdb00,0,0,c657aa80) at sosend+0x5eb
>> Feb 24 17:51:53 soth kernel: kern_sendit(c657aa80,3,e6cc4cbc,0,0,0) at 
>> kern_sendit+0x104
>> Feb 24 17:51:53 soth kernel: sendit(c657aa80,3,e6cc4cbc,0,bfbdebc4,...) at 
>> sendit+0x163
>> Feb 24 17:51:53 soth kernel: sendto(c657aa80,e6cc4d04) at sendto+0x4d
>> Feb 24 17:51:53 soth kernel: syscall(3b,3b,3b,2,34,...) at syscall+0x25b
>> Feb 24 17:51:53 soth kernel: Xint0x80_syscall() at Xint0x80_syscall+0x1f
>> Feb 24 17:51:53 soth kernel: --- syscall (133, FreeBSD ELF32, sendto), eip 
>> = 0x2812ef43, esp = 0xbfbdeafc, ebp = 0xbfbeeba8 ---
>> Feb 24 17:51:53 soth kernel: ipfw: 65534 Deny TCP 192.168.0.3:52325 
>> 193.70.192.70:110 out via xl0
>
>
> Any comments?
>
> I hope I can provide other, possibly more useful informations, in the
> near future.
>
> bye & Thanks
> 	av.
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
>
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>


More information about the freebsd-net mailing list