Re: [squid-users] FATAL: xcalloc: Unable to allocate 1 blocks of 4108 bytes!

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Fri, 01 Feb 2013 17:09:18 +1300

On 1/02/2013 3:14 a.m., Teacher... wrote:
> Dear Amos,
>
> Recently we start getting and error, + auto squid restart ((( Any
> suggestion? )))

You have multiple problems shown in your log. Some are easily resolved,
some are not.

Also, your Squid version is more than 5 years old. Please upgrade to one
of the supported releases.
I advise upgrading to 3.2.7 which should be available in a day or two -
it will contain a memory leak fix which has the same symptoms as what
you see below.

> 2013/01/27 23:54:41| parseHttpRequest: Unsupported method
> '¦qSR·+é%‚ÄÙÌD \=æQÖFR'

Client pushing non-HTTP data into your proxy port. Or pushing an object
larger than its advertised Content-Length into one connection.
If you can track down what is going on it may lead you to a broken
client software which needs fixing.

It is rather difficult to identify these in 2.7. But in squid-3.2 at
debug level 11,2 displays traces of the received requests with client
and server IP information to assist with tracking these.

> 2013/01/27 23:54:41| clientTryParseRequest: FD 384
> (193.227.173.243:47723) Invalid Request
> 2013/01/27 23:56:50| httpReadReply: Excess data from "GET
> http://a.ittad.com/advt/advt.php?n=45&p=1&v=1.0.5&s=42&i=0&h=50&w=300&cz=lb&pin=-16a1e3d2b1426331&lat=-1.0&long=-1.0&bver=1.0.0_5"

Server is reporting X bytes of object data is being sent, then delivers
more than X bytes.
This is known as a response smuggling attack. Squid handles it by
truncating the response and dropping the connection. When possible
please identify the server doing this and report the problem to whoever
is relevant.

>
> FATAL: xcalloc: Unable to allocate 1 blocks of 4108 bytes!
>

There is no more RAM available to be allocated to Squid.

Probably 2.7 also has the memory leak on invalid requests we just fixed
in 3.2. Meaning all the invalid requests above are consuming all the
available RAM - which would lead to the FATAL error.

Squid responds to memory exhaustion by terminating and re-starting...
which truncates a lot of clients transactions, but cleans up all the
leaked memory.

> Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
> CPU Usage: 296.263 seconds = 165.826 user + 130.436 sys
> Maximum Resident Size: -188768 KB
> Page faults with physical i/o: 0
> Memory usage for squid via mallinfo():
> total space in arena: -1119396 KB
> Ordinary blocks: -1119597 KB 12554 blks
> Small blocks: 0 KB 0 blks
> Holding blocks: 38128 KB 20 blks
> Free Small blocks: 0 KB
> Free Ordinary blocks: 200 KB
> Total in use: -1081469 KB 100%
> Total free: 200 KB 0%
> 2013/01/28 00:07:15| Starting Squid Cache version 2.7.STABLE9 for
> i686-pc-linux-gnu...
> 2013/01/28 00:07:15| Process ID 3346
> 2013/01/28 00:07:15| With 64000 file descriptors available
> 2013/01/28 00:07:15| Using epoll for the IO loop

Amos
Received on Fri Feb 01 2013 - 04:09:28 MST

This archive was generated by hypermail 2.2.0 : Fri Feb 01 2013 - 12:00:05 MST