[squid-users] Re: negotiate_kerberos_auth helpers stay busy

From: Klaus Walter <klaus.walter_at_spb.de>
Date: Wed, 07 Aug 2013 18:31:37 +0200

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_at_spb.de> wrote in message
> news:1c3bf830b7785fbff9f25e2486d5a902_at_myway.de...
> > 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
> >>
> >
> >
Received on Wed Aug 07 2013 - 16:31:44 MDT

This archive was generated by hypermail 2.2.0 : Thu Aug 08 2013 - 12:00:14 MDT