Maybe it is somewhere in the auth handler in squid.
Markus
"Klaus Walter" <klaus.walter@xxxxxx> wrote in message
news:086bae224bf3fd9ccf686c85e2e54246@xxxxxxxx...
Hi Markus,
yes, you are right.
But why is squid using more and more memory until it dies because there
is no more memory available at the server.
When I run the same squid 3.2.1 with the same configuration but with basic
authentication only the memory usage is constant and it is running stable.
As soon as I add the negotiate_kerberos_helper I have to restart squid
after some hours because it is out of memory.
Running pmap shows the growing amount of memory (last line of my copy):
28076: (squid-1) -f /etc/squid/squid-C.conf
Address Kbytes Mode Offset Device Mapping
0000000000400000 4088 r-x-- 0000000000000000 0fd:00004 squid
00000000009fe000 148 rw--- 00000000003fe000 0fd:00004 squid
0000000000a23000 1288 rw--- 0000000000000000 000:00000 [ anon ]
0000000000c22000 444 rw--- 0000000000422000 0fd:00004 squid
000000000163f000 2403608 rw--- 0000000000000000 000:00000 [ anon ]
When I then run "cat /proc/28076/smaps" I see that the heap size of
squid is growing:
0163f000-94185000 rw-p 00000000 00:00 0
[heap]
Size: 2403608 kB
Rss: 2402648 kB
Pss: 2402648 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 2402648 kB
Referenced: 2229704 kB
Anonymous: 2402648 kB
AnonHugePages: 403456 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
What can cause this problem which only occures using kerberos
authentication?
Klaus
Hi Klaus,
If I did not make an error it is the following line:
service_principal = xstrdup(optarg);
and it is not part of a loop and should not create a leak. It gets
freed
when the helper exits.
Markus
"Klaus Walter" <klaus.walter@xxxxxx> wrote in message
news:1c3bf830b7785fbff9f25e2486d5a902@xxxxxxxx...
> Hi Markus,
>
> here the output of valgrind with source code lines form the
> negotiate_kerberos_auth
> helper that comes with squid 3.2.1:
>
> ==6124== 14 bytes in 1 blocks are definitely lost in loss record 1
of 1
> ==6124== at 0x4A069EE: malloc (vg_replace_malloc.c:270)
> ==6124== by 0x403384: xmalloc (xalloc.cc:116)
> ==6124== by 0x40359B: xstrdup (xstring.cc:27)
> ==6124== by 0x401ADE: main (negotiate_kerberos_auth.cc:251)
>
> I also tested the latest helper that comes with squid 3.3.8 with
valgrind:
>
> ==2745== 14 bytes in 1 blocks are definitely lost in loss record 1
of 1
> ==2745== at 0x4A069EE: malloc (vg_replace_malloc.c:270)
> ==2745== by 0x403724: xmalloc (xalloc.cc:116)
> ==2745== by 0x40393B: xstrdup (xstring.cc:27)
> ==2745== by 0x401A8E: main (negotiate_kerberos_auth.cc:250)
>
> I hope this helps.
>
> By the way:
> Because of bug 3848 in squid 3.3.x I can't use this squid version
at the
> moment,
> but should I use the latest helper together with my squid 3.2.1?
>
> Klaus
>
>
>>
>> Hi Klaus,
>>
>> Thank you for the valgrind output. Could you compile and link the
>> helper
>> with -g to get the source code line.
>>
>> Thank you
>> Markus
>>
>
>