Hello,

FYI, It seems the BUG is fixed by commit 9041:

6813215 cred reference leak in tsol_get_packet_label

At least on my laptop :)


On Wed, Mar 4, 2009 at 9:09 PM, Piotr Jasiukajtis <estseg at gmail.com> wrote:
> On Wed, Mar 4, 2009 at 8:55 PM, Bill Sommerfeld <sommerfeld at sun.com> wrote:
>>
>> On Wed, 2009-03-04 at 20:23 +0100, Piotr Jasiukajtis wrote:
>>> > ffffff0192255bf8::bufctl
>>> ADDR ? ? ? ? ? ? BUFADDR ? ? ? ? ?TIMESTAMP ? ?THREAD ? ? ? ? ? CALLER
>>> ffffff0192255bf8 ffffff0191535ea8 ? 13a7ce2ccd ffffff0007c07c60 
>>> labelalloc+0x2f
>>> > ffffff0192255bf8::bufctl -v
>>> ? ? ? ? ? ? ADDR ? ? ? ? ?BUFADDR ? ? ? ?TIMESTAMP ? ? ? ? ? THREAD
>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? CACHE ? ? ? ? ?LASTLOG ? ? ? ? CONTENTS
>>> ffffff0192255bf8 ffffff0191535ea8 ? ? ? 13a7ce2ccd ffffff0007c07c60
>>> ? ? ? ? ? ? ? ? ?ffffff019131fb20 ffffff0188af8440 ? ? ? ? ? ? ? ?0
>>> ? ? ? ? ? ? ? ? ?kmem_cache_alloc_debug+0x288
>>> ? ? ? ? ? ? ? ? ?kmem_cache_alloc+0x166
>>> ? ? ? ? ? ? ? ? ?labelalloc+0x2f
>>> ? ? ? ? ? ? ? ? ?newcred_from_bslabel+0x23
>>> ? ? ? ? ? ? ? ? ?tsol_get_pkt_label+0x42a
>>> ? ? ? ? ? ? ? ? ?ip_input+0x51b
>>> ? ? ? ? ? ? ? ? ?mac_rx_soft_ring_drain+0xf6
>>> ? ? ? ? ? ? ? ? ?mac_soft_ring_worker+0x140
>>> ? ? ? ? ? ? ? ? ?thread_start+8
>>
>> I think I see what the problem is -- my project's testing uncovered the
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? same leak.
>>
>> tsol_get_pkt_label constructs a new cred using "newcred_from_bslabel",
>> and creates it with a refcount of 1.
>>
>> it then gets passed to mblk_setcred(), which does a crhold on it,
>> setting the refcount to 2.
>>
>> tsol_get_pkt_label never drops the original reference, so that when the
>> dblk is freed, the cred refcount drops back to 1, and the cred is leaked
>> and never freed.
>>
>> it looks like this bug may have been introduced in this recent
>> changeset:
>>
>> changeset: ? 8778:b4169d2ab299
>> user: ? ? ? ?Erik Nordmark <Erik.Nordmark at Sun.COM>
>> date: ? ? ? ?Thu Feb 12 08:42:06 2009 -0800
>>
>> PSARC 2007/670 db_credp update
>> 6619593 Simplify and strengthen db_credp handling
>> 6619596 Add getpeerucred() support to SCTP SOCK_STREAM
>>
>> I'll file a bug.
> Could you add my email address to the bug report?
>
> Thanks.
>
>
> --
> Regards,
> Piotr Jasiukajtis | estibi | SCA OS0072
> http://estseg.blogspot.com
>



-- 
Regards,
Piotr Jasiukajtis | estibi | SCA OS0072
http://estseg.blogspot.com

Reply via email to