[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