Deal with a problem that surfaced on FreeBSD 9.0 and associated ports.
The problem is with the chunking that apache does to avoid having to read the entire response, so it can set the Content-Length header properly. I have no idea who apache does chunking, but on the 9.0 client it was getting confused and trash characters were leaking into the data. The trash is probably the result of the client getting out of sync. Anyway, I do not know who is at fault (client code or our ancient apache server), but after many hours of screwing around I found out how to prevent the client from getting chunked data from the server. Basically, you have to force the request to be sent as HTTP/1.0 instead of 1.1, which tells apache to not chunk the data. In general this is not a good thing to do, but in this case the RPCs are pretty small and not on a critical performance path. We can revisit when we upgrade our boss to apache 2.X ...
Showing with 29 additions and 5 deletions