Hi,

I am running squid 3.2.1 on CentOS 6.3 with kerberos authentication using negotiate_kerberos_auth. Generally this is working fine, but after some time more and more helper instances stay busy and cannot finish the given request. Therefore squid starts new helper processes to have enough working helpers for kerberos authentication.

This is going on until squid has no more memory for the helpers:

2013/07/30 08:48:04 kid1| Starting new negotiateauthenticator helpers...
2013/07/30 08:48:04 kid1| helperOpenServers: Starting 1/500 'negotiate_kerberos_auth' processes
2013/07/30 08:48:04 kid1| ipcCreate: fork: (12) Cannot allocate memory
2013/07/30 08:48:04 kid1| WARNING: Cannot run '/usr/lib64/squid/negotiate_kerberos_auth' process.

The problem can only be solved by restarting squid.

squidclient mgr:negotiateauthenticator shows the problem (I put away the large kerberos requests waiting to be finished):

Negotiate Authenticator Statistics:
program: /usr/lib64/squid/negotiate_kerberos_auth
number active: 39 of 500 (0 shutting down)
requests sent: 11141
replies received: 11133
queue length: 0
avg service time: 4 msec

      #      FD     PID  # Requests      Flags     Time  Offset Request
      1      19   31373         753     B R     3887.019              0
      1      37   31390         755     B R     3637.061              0
      1      39   31391        2539     B R     2053.518              0
      1      41   31392          78     B R     3859.365              0
      1      43   31393         807     B R     2008.036              0
      1      57   31396         415     B R     2003.899              0
      1      63   31397         363     B R     1975.126              0
      1      95   31401         329     B R     1944.980              0
      1      29   31491        1891               0.009       0 (none)
      1      77   31492         813               0.011       0 (none)
      1      88   31493         578               0.009       0 (none)
      1      99   31494         430               0.009       0 (none)
      1     111   31512         320               0.010       0 (none)
      1     115   31513         200               0.018       0 (none)
      1     117   31514         158               0.014       0 (none)
      1     119   31515         122               0.013       0 (none)
      1     121   31516          99               0.011       0 (none)
      1     123   31517          82               0.014       0 (none)
      1     125   31518          66               0.012       0 (none)
      1     118   31519          58               0.010       0 (none)
      1     113   32414          44               0.013       0 (none)
      1     116   32415          36               0.015       0 (none)
      1     124     367          29               0.014       0 (none)
      1     128     368          28               0.015       0 (none)
      1     137     375          24               0.012       0 (none)
      1     138     376          21               0.015       0 (none)
      1     140     377          16               0.040       0 (none)
      1     142     378          15               0.036       0 (none)
      1     144     379          14               0.033       0 (none)
      1     139    3490          11               0.037       0 (none)
      1     143    3491          10               0.036       0 (none)
      1     146    3495           8               0.037       0 (none)
      1     148    3496           7               0.046       0 (none)
      1     150    3497           6               0.047       0 (none)
      1     145    3498           5               0.047       0 (none)
      1     149    3499           4               0.041       0 (none)
      1     152    3500           3               0.104       0 (none)
      1     154    3501           2               0.105       0 (none)
      1     156    3502           2               0.089       0 (none)

Flags key:

   B = BUSY
   C = CLOSING
   R = RESERVED
   S = SHUTDOWN PENDING
   P = PLACEHOLDER

The first eight helper processes are busy and will never return to normal state until squid is restarted.
Gradually more and more helpers stay in busy state.

strace shows me that this helpers are blocked during a read-command:
....
read(0, "r", 1)                         = 1
read(0, "r", 1)                         = 1
read(0, "7", 1)                         = 1
read(0, "+", 1)                         = 1
read(0, "a", 1)                         = 1
read(0, "G", 1)                         = 1
read(0,  <unfinished ...>

After this the process is never continued.

I cannot find any error messages in cache.log even if I switch on debugging at the helper.

Thank you for help!

Klaus


Reply via email to