On Fri, 26 Aug 2005, Matthew Smith wrote:
The issue I am having, is that comm_write occasionally throws the following debug message into the cache.log: fd_table[31].rwstate != NULL
You get this if you schedule yet another write before the first has completed.
The redirector and acl helpers get around this by using multiple helpers and a request queue (this is a bit of a guess), but I wish to have only one loghelper if I can help it. Is there a way I can set up my loghelper to prevent this from occurring?
This is changed for normal helpers in Squid-3 (and the cerberian branch of 2.5) adding a write queue to the helpers, allowing multiple requests to be scheduled to the same helper automatically queueing them if a write is currently active. Normally only used when the concurrency level of the helper is > 1, but the low level support is there always if you use helperDispatch() to send the data to the helper.
If you have implemented your own helper style channel ontop of the raw ipc channel then you may need to implement something similar to what is done there. (see helperDispatch and helperDispatchWriteDone).
Regards Henrik
