On Sun, 12 Apr 2009, Darren Reed wrote:

> I was afraid you were going to ask that.  I deleted those core dumps.
> Let's see, it's now 2am on Easter Sunday -- it shouldn't be too
> disruptive
> to cause another crash: add UDP port rules ... swap in firewall rules
> .. resolve apache log file to generate DNS traffic, bingo! core dump.

That sounds too easily repeatable... are you saying that some specific
rules and/or course of action could make it happen?

If you mean if there is a direct cause and effect, probably not.
It took a few minutes of DNS resolving before it crashed, and even then,
it may have crashed without my help.  I notice that one of the arguments
to fr_derefrule is an IP address, and for this particular dump, it did
not correspond to the resolving client but some other client.

So other than the observation that I made that adding UDP port filtering
rule will cause a crash eventually, that about as specific as I can be.

These are the rules I swapped in replacing a blanket UDP pass rule.
Group 120 are inbound UDP packets.

        # Pass in traffic to my DNS resolving cache / content server
        pass in quick from $local_net to to $my_ip1 port = 53 keep state group 
120
        pass in quick from any to $my_ip2 port = 53 keep state group 120

        # Squelch noisy services
        block return-icmp-as-dest(port-unr) in quick from $local_net to any port 136 
>< 139 group 120
        block return-icmp-as-dest(port-unr) in quick from $local_net to any 
port = 427 group 120
        block return-icmp-as-dest(port-unr) in quick from any to 
255.255.255.255/32 port = 67 group 120

        # ... falls through to block and log rule

>     # adb -k unix.0 vmcore.0
>     physmem 3df9f
>     adb: warning: dump is from SunOS 5.9 Generic_122300-31; dcmds and
> macros may not match kernel implementation
>     0x118b8a8/i
>     bcopy+0x4b8:    ld        [%i0], %i4
>
> Does that help?  (I'm keeping the core files this time in case you ask
> something else).

And stack trace output from $C?

        $C
        000002a1006a9fc1 bcopy+0x4b8(300035cc4ec, 2a1006aaa5e, 30, 89522465, 
ffffffffffffffe8, 30)
        000002a1006aa181 ce_wput+0x264(30001e25818, 3000502dd40, 0, 
30001015510, 22, 30)
        000002a1006aa291 putnext+0x21c(0, 3000502dd40, 2, 30001e1ded8, 14, 
2a1006aaae0)
        000002a1006aa341 pfilmodwput+0x40(300010d12f0, 30001e1ded8, 20, 0, 
7d9e2f2, fffe)
        000002a1006aa401 putnext+0x21c(0, 3000502dd40, 0, 8000000, 800, 
ba9617670800)
        000002a1006aa4b1 ip_wput_frag+0xb30(e, 0, 10000, 300010d1060, 
30004c74740, 300038e2a58)
        000002a1006aa611 ip_wput_ire+0x16ac(10000, 300000742b0, 3, ffff, 
89522441, 300099a9440)
        000002a1006aa801 ip_wput_pktoptions+0x56c(30003752910, 0, 89522465, 
3000368c4d8, 0, 0)
        000002a1006aa8d1 ip_wput+0x78(300032233c0, 300099a9440, 20, 8, 0, 0)
        000002a1006aa991 putnext+0x21c(0, 30001199f40, 20, 0, 3, 10)
        000002a1006aaa41 udp_wput+0x6bc(30001fae428, ffff, 3b, 3000368c4ec, 0, 
10)
        000002a1006aab21 putnext+0x21c(0, 30004c74740, 20, 300099a9440, 0, 10)
        000002a1006aabd1 strput+0x270(30003221c20, 0, 0, 2a1006ab698, 0, 0)
        000002a1006aadc1 kstrputmsg+0x36c(30002ccd740, 30003223650, 0, 0, 0, 0)
        000002a1006aaea1 sosend_dgram+0x25c(0, 300039beef8, 10, 2a1006aba00, 8, 
1c)
        000002a1006aaf91 sosendmsg+0x3f4(0, 300039beef8, 7, 20, 0, 0)
        000002a1006ab051 sendit+0x15c(2a1006aba00, 8, 30002ccd740, 8, 0, 0)
        000002a1006ab121 sendto+0x78(3, 69ed8, 33, 0, ffbffcb0, 10)
        000002a1006ab241 sendto32+0x3c(3, 69ed8, 33, 0, ffbffcb0, 10)
        000002a1006ab2f1 syscall_trap32+0xa8(3, 69ed8, 33, 0, ffbffcb0, 10)

Joseph Tam <[email protected]>

Reply via email to