Build failed in Jenkins: 3.HEAD-amd64-opensuse #195

From: <noc_at_squid-cache.org>
Date: Tue, 11 Sep 2012 02:09:55 +0200 (CEST)

See <http://build.squid-cache.org/job/3.HEAD-amd64-opensuse/195/changes>

Changes:

[Alex Rousskov] Do not reuse persistent connections for PUTs to avoid ERR_ZERO_SIZE_OBJECT.

A compliant proxy may retry PUTs, but Squid lacks the [rather complicated]
code required to protect the PUT request body from being nibbled during the
first try or [also tricky] code to send 100-continue expectation requiredto
delay body sending. Thus, Squid cannot safely retry some PUTs today, and
FwdState::checkRetriable() must return false for all PUTs, to avoid
bogus ERR_ZERO_SIZE_OBJECT errors (especially for clients that did not
reuse a pconn and, hence, may not be ready to handle/retry an error response).

In theory, requests with safe or idempotent methods other than PUT might have
bodies so we apply the same logic to them as well.

This reopens Squid bug #3398, undoing trunk r11859 commit which attempted
to close that bug.

[Alex Rousskov] Do not chunk responses carrying a Content-Range header.

When Squid forwards a response with a Content-Range header,
ClientSocketContext::socketState() detects the end of the response range(s)
and returns STREAM_*COMPLETE to ClientSocketContext::writeComplete().
The latter thinks that the writing of the response to the client must be
over and calls keepaliveNextRequest() instead of writing the last-chunk
(if any). If the to-client response was chunked, the client gets stuck
waiting for that missing last-chunk.

The multipart Range request case was already excluded from chunking (or it
would probably suffer from the same problem). With this change, no
Content-Range responses will be chunked.

N.B. Some servers send Content-Range responses to basic GET requests
without a Range header, so the problem affects more than just Range requests.

TODO: A proper fix would be to rewrite ClientSocketContext::writeComplete()
and other code so that it does not mix internal ClientStream completion with
[possibly chunk-encoded] writing completion. This should probably be done
along with fixing ClientSocketContext::socketState() and other state-checking
code to ignore to-client persistence (flags.proxy_keepalive), which is not
related to the internal ClientStream state.

------------------------------------------
[...truncated 7104 lines...]
Testing ../../src/StoreMetaMD5.h ...Ok.
Testing ../../src/gopher.h ...Ok.
Testing ../../src/StoreIOState.h ...Ok.
Testing ../../src/TimeOrTag.h ...Ok.
Testing ../../src/DelayConfig.h ...Ok.
Testing ../../src/hier_code.h ...Ok.
Testing ../../src/fqdncache.h ...Ok.
Testing ../../src/DelayUser.h ...Ok.
Testing ../../src/HttpParser.h ...Ok.
Testing ../../src/MemBlob.h ...Ok.
Testing ../../src/icp_opcode.h ...Ok.
Testing ../../src/HttpHdrContRange.h ...Ok.
Testing ../../src/SquidDns.h ...Ok.
Testing ../../src/cache_cf.h ...Ok.
Testing ../../src/StoreMetaObjSize.h ...Ok.
Testing ../../src/DelayVector.h ...Ok.
Testing ../../src/http.h ...Ok.
Testing ../../src/CompletionDispatcher.h ...Ok.
Testing ../../src/HttpHdrScTarget.h ...Ok.
Testing ../../src/StatCounters.h ...Ok.
Testing ../../src/wccp2.h ...Ok.
Testing ../../src/PingData.h ...Ok.
Testing ../../src/Parsing.h ...Ok.
Testing ../../src/HttpBody.h ...Ok.
Testing ../../src/StoreMetaSTD.h ...Ok.
Testing ../../src/event.h ...Ok.
Testing ../../src/MemStore.h ...Ok.
Testing ../../src/DescriptorSet.h ...Ok.
Testing ../../src/store_key_md5.h ...Ok.
Testing ../../src/comm.h ...Ok.
Testing ../../src/ftp.h ...Ok.
Testing ../../src/LoadableModules.h ...Ok.
Testing ../../src/stmem.h ...Ok.
Testing ../../src/CommRead.h ...Ok.
Testing ../../src/CompositePoolNode.h ...Ok.
Testing ../../src/Server.h ...Ok.
Testing ../../src/wccp.h ...Ok.
Testing ../../src/DelayTagged.h ...Ok.
Testing ../../src/swap_log_op.h ...Ok.
Testing ../../src/HierarchyLogEntry.h ...Ok.
Testing ../../src/StoreClient.h ...Ok.
Testing ../../src/structs.h ...Ok.
Testing ../../src/client_side_reply.h ...Ok.
Testing ../../src/StoreMetaSTDLFS.h ...Ok.
Testing ../../src/defines.h ...Ok.
Testing ../../src/HttpHeaderTools.h ...Ok.
Testing ../../src/RemovalPolicy.h ...Ok.
Testing ../../src/Packer.h ...Ok.
Testing ../../src/DelaySpec.h ...Ok.
Testing ../../src/AsyncEngine.h ...Ok.
Testing ../../src/StoreSwapLogData.h ...Ok.
Testing ../../src/HttpMsg.h ...Ok.
Testing ../../src/ICP.h ...Ok.
Testing ../../src/DnsLookupDetails.h ...Ok.
Testing ../../src/peer_userhash.h ...Ok.
Testing ../../src/Debug.h ...Ok.
Testing ../../src/ExternalACLEntry.h ...Ok.
Testing ../../src/DiskIO/ReadRequest.h ...Ok.
Testing ../../src/DiskIO/DiskIOModule.h ...Ok.
Testing ../../src/DiskIO/DiskIOStrategy.h ...Ok.
Testing ../../src/DiskIO/DiskFile.h ...Ok.
Testing ../../src/DiskIO/WriteRequest.h ...Ok.
Testing ../../src/DiskIO/IORequestor.h ...Ok.
Testing ../../src/DiskIO/Mmapped/MmappedFile.h ...Ok.
Testing ../../src/DiskIO/Mmapped/MmappedDiskIOModule.h ...Ok.
Testing ../../src/DiskIO/Mmapped/MmappedIOStrategy.h ...Ok.
Testing ../../src/DiskIO/AIO/AIODiskFile.h ...Ok.
Testing ../../src/DiskIO/AIO/async_io.h ...Ok.
Testing ../../src/DiskIO/AIO/aio_win32.h ...Ok.
Testing ../../src/DiskIO/AIO/AIODiskIOModule.h ...Ok.
Testing ../../src/DiskIO/AIO/AIODiskIOStrategy.h ...Ok.
Testing ../../src/DiskIO/DiskThreads/DiskThreadsDiskFile.h ...Ok.
Testing ../../src/DiskIO/DiskThreads/CommIO.h ...Ok.
Testing ../../src/DiskIO/DiskThreads/DiskThreads.h ...Ok.
Testing ../../src/DiskIO/DiskThreads/DiskThreadsIOStrategy.h ...Ok.
Testing ../../src/DiskIO/DiskThreads/DiskThreadsDiskIOModule.h ...Ok.
Testing ../../src/DiskIO/IpcIo/IpcIoFile.h ...Ok.
Testing ../../src/DiskIO/IpcIo/IpcIoDiskIOModule.h ...Ok.
Testing ../../src/DiskIO/IpcIo/IpcIoIOStrategy.h ...Ok.
Testing ../../src/DiskIO/DiskDaemon/DiskdFile.h ...Ok.
Testing ../../src/DiskIO/DiskDaemon/diomsg.h ...Ok.
Testing ../../src/DiskIO/DiskDaemon/DiskdIOStrategy.h ...Ok.
Testing ../../src/DiskIO/DiskDaemon/DiskdAction.h ...Ok.
Testing ../../src/DiskIO/DiskDaemon/DiskDaemonDiskIOModule.h ...Ok.
Testing ../../src/DiskIO/Blocking/BlockingIOStrategy.h ...Ok.
Testing ../../src/DiskIO/Blocking/BlockingFile.h ...Ok.
Testing ../../src/DiskIO/Blocking/BlockingDiskIOModule.h ...Ok.
..
OK (2)
PASS: tests/testACLMaxUserIP
.
OK (1)
PASS: tests/testBoilerplate
..
OK (2)
PASS: tests/testCacheManager
.
OK (1)
PASS: tests/testDiskIO
..Actual Text:
Last event to run: last event

Operation \tNext Execution \tWeight\tCallback Valid?
test event \t0.000 sec\t 0\t N/A
test event2 \t0.000 sec\t 0\t N/A

....
OK (6)
PASS: tests/testEvent
...
OK (3)
PASS: tests/testEventLoop
PASS: tests/test_http_range
.....
OK (5)
PASS: tests/testHttpParser
.SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).

OK (1)
PASS: tests/testHttpReply
.............
OK (13)
PASS: tests/testHttpRequest
........SKIP: cache_cf.cc operator void* (not implemented).
...
OK (11)
PASS: tests/testStore
....
OK (4)
PASS: tests/testString
stub time| persistent connection module initialized
..........
OK (10)
PASS: tests/testURL
.
OK (1)
PASS: tests/testConfigParser
...
OK (3)
PASS: tests/testStatHist
.SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: tools.cc UsingSmp (not implemented).
SKIP: tools.cc InDaemonMode (not implemented).
.SKIP: tools.cc UsingSmp (not implemented).
SKIP: tools.cc InDaemonMode (not implemented).
SKIP: cache_cf.cc operator void* (not implemented).
SKIP: tools.cc UsingSmp (not implemented).
SKIP: tools.cc InDaemonMode (not implemented).
SKIP: tools.cc UsingSmp (not implemented).
SKIP: stub_store_rebuild.cc storeRebuildComplete (not implemented).
SKIP: tools.cc InDaemonMode (not implemented).
FSKIP: StatHist.cc count (not implemented).
SKIP: StatHist.cc count (not implemented).
SKIP: StatHist.cc count (not implemented).
SKIP: StatHist.cc count (not implemented).
SKIP: StatHist.cc count (not implemented).
SKIP: StatHist.cc count (not implemented).

testRock.cc:234:Assertion
Test name: testRock::testRockSwapOut
assertion failed
- Expression: pe->swap_status == SWAPOUT_WRITING

Failures !!!
Run: 2 Failure total: 1 Failures: 1 Errors: 0
FAIL: tests/testRock
.SKIP: cache_cf.cc operator void* (not implemented).
SKIP: stub_store_rebuild.cc storeRebuildComplete (not implemented).
.
OK (2)
PASS: tests/testUfs
PASS: testHeaders
=================================================
1 of 18 tests failed
Please report to http://www.squid-cache.org/bugs/
=================================================
make[5]: *** [check-TESTS] Error 1
make[5]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-opensuse/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src'>
make[4]: *** [check-am] Error 2
make[4]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-opensuse/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src'>
make[3]: *** [check-recursive] Error 1
make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-opensuse/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src'>
make[2]: *** [check] Error 2
make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-opensuse/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src'>
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-opensuse/ws/btlayer-00-default/squid-3.HEAD-BZR/_build'>
make: *** [distcheck] Error 1
buildtest.sh result is 2
BUILD: .././test-suite/buildtests/layer-00-default.opts
configure: BUILD LIBRARIES:
configure: BUILD EXTRA LIBRARIES: -lm -lnsl -lresolv -lcap -lrt -ldl -ldl
configure: BUILD OBJECTS:
configure: BUILD EXTRA OBJECTS:
configure: BUILD C FLAGS: -Wall -g -O2
configure: BUILD EXTRA C FLAGS: -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wcomments -Werror -pipe -D_REENTRANT
configure: BUILD C++ FLAGS: -g -O2 -std=c++0x
configure: BUILD EXTRA C++ FLAGS: -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -pipe -D_REENTRANT
configure: BUILD LIBRARIES:
configure: BUILD EXTRA LIBRARIES: -lm -lnsl -lresolv -lcap -lrt -ldl -ldl
configure: BUILD OBJECTS:
configure: BUILD EXTRA OBJECTS:
configure: BUILD C FLAGS: -Wall -g -O2
configure: BUILD EXTRA C FLAGS: -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wcomments -Werror -pipe -D_REENTRANT
configure: BUILD C++ FLAGS: -g -O2 -std=c++0x
configure: BUILD EXTRA C++ FLAGS: -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -pipe -D_REENTRANT
checking for egrep... .././test-suite/../configure: line 6880: echo: write error: Broken pipe
checking for fgrep... .././test-suite/../configure: line 7778: echo: write error: Broken pipe
checking for egrep... ../configure: line 6880: echo: write error: Broken pipe
checking for fgrep... ../configure: line 7778: echo: write error: Broken pipe
assertion failed
FAIL: tests/testRock
make[5]: *** [check-TESTS] Error 1
make[4]: *** [check-am] Error 2
make[3]: *** [check-recursive] Error 1
make[2]: *** [check] Error 2
make[1]: *** [check-recursive] Error 1
make: *** [distcheck] Error 1
Build FAILED.
Build step 'Execute shell' marked build as failure
Received on Tue Sep 11 2012 - 00:09:59 MDT

This archive was generated by hypermail 2.2.0 : Tue Sep 11 2012 - 12:00:05 MDT