[Samba] Possible Samba Memory Leak
Stephen Borrill
samba at precedence.co.uk
Mon Oct 31 17:12:52 GMT 2005
On Wed, 26 Oct 2005, Jeremy Allison wrote:
>> We have a similar problem at one site using a Fox Pro database. The sizes
>> of the smbd processes continually increases until the server runs out of
>> swap (3.0.14). We've mitigated this a little by getting them to all log
>> off overnight and also restarting samba at 8am, but by mid-afternoon the
>> problem usually re-occurs. The processes get up to 200MB or so if left
>> unchecked. We've been running with "stat cache = no" for a while which has
>> made no difference. The DBF files being used by the database (it uses some
>> nasty file locking to spoof up a multi-user db) are up to around 90MB in
>> size.
>>
>> I cannot be certain, but I believe this problem has only recently started
>> happening (perhaps with an upgrade from 3.0.10 to 3.0.14?).
>>
>> Is there anything I can tweak?
>
> As it's growing can you try doing
>
> smbcontrol <pid> pool-usage
>
> to get smbd to dump out it's talloc pools. Keep doing it,
> if one of them grows this may be a clue.
First thing this morning:
Mon Oct 31 09:30:01 GMT 2005
global talloc allocations in pid: 29272
name chunks bytes
---------------------------------------- -------- --------
msg_pool_usage 1 159
connection_struct 1 1844
connection_struct 1 1844
passdb internal SAM_ACCOUNT allocation 19 484
passdb internal SAM_ACCOUNT allocation 19 500
connection_struct 1 1844
connection_struct 1 1844
connection_struct 1 1844
passdb internal SAM_ACCOUNT allocation 19 489
pdb_context internal allocation context 5 446
passdb internal SAM_ACCOUNT allocation 8 397
---------------------------------------- -------- --------
TOTAL 76 11695
Here is the last one just before the machine ran out of swap (this process
had around 116MB allocated, IIRC). None of these numbers are that big (and
if the numbers are in bytes surely they are negligable). The thing that is
changing over time is the number of "passdb internal SAM_ACCOUNT
allocation" entries. This machine is running security=user with passdb
backend=tdbsam.
global talloc allocations in pid: 29272
name chunks bytes
---------------------------------------- -------- --------
msg_pool_usage 1 159
connection_struct 1 1844
passdb internal SAM_ACCOUNT allocation 19 484
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
Printer Entry [0xbfbff344] 5 468
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
Printer Entry [0xbfbff344] 5 468
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
passdb internal SAM_ACCOUNT allocation 1 344
Printer Entry [0xbfbff344] 5 468
pipe spoolss 0x90ad000 0 0
Printer Entry [0xbfbff344] 5 468
print notify queue 0 0
passdb internal SAM_ACCOUNT allocation 1 344
connection_struct 1 1844
connection_struct 1 1844
connection_struct 1 1844
passdb internal SAM_ACCOUNT allocation 19 489
pdb_context internal allocation context 5 446
passdb internal SAM_ACCOUNT allocation 8 397
---------------------------------------- -------- --------
TOTAL 152 34331
More information about the samba
mailing list