Alex Rousskov wrote:
On Sat, 2007-02-17 at 19:00 +0200, Tsantilas Christos wrote:
Still exist problems in preview transaction between icap server and
squid. There are cases in which the squid-icap does not send the "0;
ieof" sequence if all the http response body fits in the preview data
but sends the 0\r\n\r\n. After that gets the "100 continue" icap
response but it stops the icap transaction becouse it fails in
ICAPModXact::handle100Continue function in the Must exception:
Must(state.writing == State::writingPaused);
The state.writing here is equal to State::writingPreview
According to your trace, Squid actually sent two last-chunks for the
Preview, but it is probably the same bug.
Actually what I am seeing using wireshark is the:
......
0\r\n\r\n (squid client)
ICAP/1.0 100 Continue (icap server responce)
0\r\n\r\n (squid client)
So yes I believe it is the same bug, but I thing the problem begins
because the state.writing is not updated correctly ...
BTW, do you use manual testing for this or do you have an automated
collection of test cases?
I am using manual testing. Sometimes I am modifying my icap server to
simulate cases.
I think it will be good if I spend some time to write some test cases
using perl....
Regards,
Christos