See <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/5/changes>
Changes: [Alex Rousskov] Do not assert on native FTP ERR_TOO_BIG. Do not check for ERR_TOO_BIG twice. The assertion occurred because both the FTP request parser and the generic ConnStateData::checkHeaderLimits() code would try to write their own error message to the user. Reworked all error reporting code in the FTP parser to avoid writing early responses (that were bypassing the overall transaction flow with various negative side effects such as lack of logging). Removed ConnStateData::checkHeaderLimits(): We already have protocol-specific checks for huge HTTP and FTP requests. There is no point in duplicating them. Centralizing them sounds like a good idea, but a general checkHeaderLimits() cannot produce protocol-specific errors messages that we need, so it hurts more than it helps. Moreover, checkHeaderLimits() was handling errors differently than protocol parsing code, making the code more complex overall. All that remains from the checkHeaderLimits() code now is a single Must(), checking that the protocol parsers did what they were supposed to do: Return NULL to request more data after checking any applicable limits. If parsers do not (a Squid bug!), the ConnStateData job gets killed (and connection gets closed) as the last resort. Added clientReplyContext::setReplyToReply() and StoreEntry::storeErrorResponse() to handle storing of a response to an FTP command parsing error. The old code was using ErrorState to store parsing errors, but ErrorState is still HTTP-specific and cannot relay the right FTP codes/reasons to the user. The setReplyToReply() sounds silly but it matches the existing setReplyTo*() naming scheme well. Make sure parsed native FTP command tokens are not even close to the String buffer limit. These checks are not a firm guarantee, but are better than nothing until we replace String. Handle ClientSocketContext registration centrally because all parsers need it. Call quitAfterError() on fatal native FTP errors. Probably not necessary due to fssError handling code that closes the FTP control connection, but adds helpful debugging and brings us closer to the HTTP error handling code. Described ConnStateData::clientParseRequests(). ------------------------------------------ [...truncated 11163 lines...] make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/ident'> Making uninstall in log make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/log'> make[3]: Nothing to be done for `uninstall'. make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/log'> Making uninstall in ipc make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/ipc'> make[3]: Nothing to be done for `uninstall'. make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/ipc'> Making uninstall in mgr make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/mgr'> make[3]: Nothing to be done for `uninstall'. make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/mgr'> Making uninstall in snmp make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/snmp'> make[3]: Nothing to be done for `uninstall'. make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/snmp'> Making uninstall in adaptation make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/adaptation'> Making uninstall in icap make[4]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/adaptation/icap'> make[4]: Nothing to be done for `uninstall'. make[4]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/adaptation/icap'> make[4]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/adaptation'> make[4]: Nothing to be done for `uninstall-am'. make[4]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/adaptation'> make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src/adaptation'> make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src'> ( cd '<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/libexec'> && rm -f diskd unlinkd ) ( cd '<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/share'> && rm -f mib.txt ) ( cd '<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/share/man/man8'> && rm -f squid.8 ) ( cd '<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/sbin'> && rm -f squid ) /usr/bin/rm -f -f <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/etc/mime.conf> /usr/bin/rm -f -f <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/etc/squid.conf> ( cd '<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/etc'> && rm -f squid.conf.default squid.conf.documented mime.conf.default ) make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src'> make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src'> Making uninstall in tools make[2]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'> Making uninstall in purge make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/purge'> ( cd '<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/bin'> && rm -f purge ) make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/purge'> Making uninstall in squidclient make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/squidclient'> make[4]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/squidclient'> ( cd '<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/share/man/man1'> && rm -f squidclient.1 ) ( cd '<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/bin'> && rm -f squidclient ) make[4]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/squidclient'> make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/squidclient'> make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'> ( cd '<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/libexec'> && rm -f helper-mux.pl ) /usr/bin/rm -f -f <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/etc/cachemgr.conf> /usr/bin/rm -f -f <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/etc/cachemgr.conf.default> ( cd '<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/share/man/man8'> && rm -f cachemgr.cgi.8 ) ( cd '<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/libexec'> && rm -f cachemgr.cgi ) make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'> make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'> Making uninstall in test-suite make[2]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/test-suite'> make[2]: Nothing to be done for `uninstall'. make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/test-suite'> make[2]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build'> make[2]: Nothing to be done for `uninstall-am'. make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build'> make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build'> make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_build'> ERROR: files left after uninstall: ./etc/msntauth.conf make[1]: *** [distuninstallcheck] Error 1 make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/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: -g -O2 configure: BUILD EXTRA C FLAGS: -Werror -Qunused-arguments -D_REENTRANT configure: BUILD C++ FLAGS: -g -O2 configure: BUILD EXTRA C++ FLAGS: -Werror -Qunused-arguments -D_REENTRANT configure: BUILD Tools C++ FLAGS: -g -O2 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: -g -O2 configure: BUILD EXTRA C FLAGS: -Werror -Qunused-arguments -D_REENTRANT configure: BUILD C++ FLAGS: -g -O2 configure: BUILD EXTRA C++ FLAGS: -Werror -Qunused-arguments -D_REENTRANT configure: BUILD Tools C++ FLAGS: -g -O2 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 # XFAIL: 0 # FAIL: 0 2014/08/19 20:00:22| FATAL ERROR: MIME Config Table <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/etc/mime.conf>: (2) No such file or directory 2014/08/19 20:00:22| FATAL ERROR: unlinkd_program <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/libexec/unlinkd>: (2) No such file or directory 2014/08/19 20:00:22| FATAL ERROR: logfile_daemon <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/libexec/log_file_daemon>: (2) No such file or directory 2014/08/19 20:00:22| FATAL ERROR: Icon Directory <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/share/icons>: (2) No such file or directory <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/var/logs/cache.log>: No such file or directory 2014/08/19 20:00:22| FATAL ERROR: MIME Config Table <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/etc/mime.conf>: (2) No such file or directory 2014/08/19 20:00:22| FATAL ERROR: unlinkd_program <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/libexec/unlinkd>: (2) No such file or directory 2014/08/19 20:00:22| FATAL ERROR: logfile_daemon <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/libexec/log_file_daemon>: (2) No such file or directory 2014/08/19 20:00:22| FATAL ERROR: Icon Directory <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/share/icons>: (2) No such file or directory <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/var/logs/cache.log>: No such file or directory 2014/08/19 20:00:22| FATAL ERROR: MIME Config Table <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/etc/mime.conf>: (2) No such file or directory 2014/08/19 20:00:22| FATAL ERROR: unlinkd_program <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/libexec/unlinkd>: (2) No such file or directory 2014/08/19 20:00:22| FATAL ERROR: logfile_daemon <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/libexec/log_file_daemon>: (2) No such file or directory 2014/08/19 20:00:22| FATAL ERROR: Icon Directory <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/share/icons>: (2) No such file or directory <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/var/logs/cache.log>: No such file or directory # XFAIL: 0 # FAIL: 0 diff: <http://build.squid-cache.org/job/3.HEAD-amd64-centos-7-clang/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst/etc/msntauth.conf.default>: No such file or directory ERROR: files left after uninstall: make[1]: *** [distuninstallcheck] Error 1 make: *** [distcheck] Error 1 Build FAILED. Build step 'Execute shell' marked build as failure