--- squid-3.2.3/src/DiskIO/IpcIo/IpcIoFile.cc 2012-10-20 15:39:49.000000000 +0300 +++ squid-3.2.3/src/DiskIO/IpcIo/IpcIoFile.cc 2012-11-29 00:47:11.451848433 +0200 @@ -30,7 +30,7 @@ // TODO: make configurable or compute from squid.conf settings if possible static const int QueueCapacity = 1024; -const double IpcIoFile::Timeout = 7; // seconds; XXX: ALL,9 may require more +const double IpcIoFile::Timeout = 300; // seconds; XXX: ALL,9 may require more IpcIoFile::IpcIoFileList IpcIoFile::WaitingForOpen; IpcIoFile::IpcIoFilesMap IpcIoFile::IpcIoFiles; std::auto_ptr IpcIoFile::queue; @@ -218,7 +218,7 @@ { bool ioError = false; if (!response) { - debugs(79, 3, HERE << "error: timeout"); + debugs(79, 1, HERE << "error: timeout"); ioError = true; // I/O timeout does not warrant setting error_? } else { if (response->xerrno) { --- squid-3.2.3/src/HttpHeader.cc 2012-10-20 15:39:49.000000000 +0300 +++ squid-3.2.3/src/HttpHeader.cc 2012-11-21 19:51:23.826807754 +0200 @@ -548,7 +548,7 @@ char *nulpos; if ((nulpos = (char*)memchr(header_start, '\0', header_end - header_start))) { - debugs(55, 1, "WARNING: HTTP header contains NULL characters {" << + debugs(55, 2, "WARNING: HTTP header contains NULL characters {" << getStringPrefix(header_start, nulpos) << "}\nNULL\n{" << getStringPrefix(nulpos+1, header_end)); goto reset; } --- squid-3.2.3/src/ipc/StoreMap.cc 2012-10-20 15:39:49.000000000 +0300 +++ squid-3.2.3/src/ipc/StoreMap.cc 2012-11-20 20:55:41.089500435 +0200 @@ -272,8 +272,8 @@ Ipc::StoreMapSlot::StoreMapSlot(): state(Empty) { - xmemset(&key, 0, sizeof(key)); - xmemset(&basics, 0, sizeof(basics)); + memset(&key, 0, sizeof(key)); + memset(&basics, 0, sizeof(basics)); } void --- squid-3.2.3/src/ipc/Strand.cc 2012-10-20 15:39:49.000000000 +0300 +++ squid-3.2.3/src/ipc/Strand.cc 2012-11-29 00:12:12.385439783 +0200 @@ -53,7 +53,7 @@ TypedMsgHdr message; ann.pack(message); SendMessage(coordinatorAddr, message); - setTimeout(6, "Ipc::Strand::timeoutHandler"); // TODO: make 6 configurable? + setTimeout(600, "Ipc::Strand::timeoutHandler"); // TODO: make 6 configurable? } void Ipc::Strand::receive(const TypedMsgHdr &message) --- squid-3.2.3/src/peer_select.cc 2012-10-20 15:39:49.000000000 +0300 +++ squid-3.2.3/src/peer_select.cc 2012-11-21 12:01:06.030883260 +0200 @@ -241,7 +241,7 @@ (req->flags.intercepted || req->flags.spoof_client_ip); const bool useOriginalDst = Config.onoff.client_dst_passthru || !req->flags.hostVerified; const bool choseDirect = fs && fs->code == HIER_DIRECT; - if (isIntercepted && useOriginalDst && choseDirect) { + if (isIntercepted && useOriginalDst && choseDirect && req->clientConnectionManager.valid()) { // construct a "result" adding the ORIGINAL_DST to the set instead of DIRECT Comm::ConnectionPointer p = new Comm::Connection(); p->remote = req->clientConnectionManager->clientConnection->local;