See <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/313/changes>
Changes:
[Amos Jeffries <squid3_at_treenet.co.nz>] Full re-working of the way AcceptFD are handled in Squid
Previously:
a pre-defined fdc_table was initialized and left waiting just in case
any of the available FD were needed as a listening port. At which point
a handler was assigned and select was setup. Much action was wasted
initializing the array on startup and shutdown, and various unnecessary
maintenance references in comms every FD closure.
Now:
one merely opens a socket, defines the AsyncCall handler for the
listening FD and creates a ListenStateData object from the two. When a
listener socket is done with, delete the ListenStateData and the FD gets
closed. Callers are responsible for maintaining a pointer to the
ListenStateData.
ListenStateData silently does all the comm processing for setting up and
watching for new connections. Including whether accept() on a port is
delayed until more FD are available. Then when any accept() is completed
it sends the resulting FD and ConnectionDetails objects to the assigned
callback.
COMM_ERR_CLOSING and re-scheduling themselves is now not generally relevant
to layers higher than comm on listening sockets. The callbacks never get
called at all unless a real new connection has been accepted. The old code
is still used internally by the comm layer, but details of error handling
and re-scheduling of accept() never leak out into higher level code now.
ListenStateData can be created in use-once or accept-many form.
* use-once are intended for short temporary listening sockets such as
FTP passive data links. A single inbound connection is allowed after
which the handler self-destructs.
* accept-many are for long term FD such as the http_port listeners which
continuously accept new connections and pass them all to the same handler
until something causes the ListenStateData to die (deletion, or self
destruct under fatal socket IO errors).
The previous existing AcceptLimiter is slightly remodeled to work with
ListenStateData* instead of an intermediary callback reference type.
And also altered from LIFO to FIFO behavior for better client response
times under load.
All the code relevant to comm layer processing of accept() is bundled
into libcomm-listener.la.
TODO:
* wrap the SSL handshake into ListenStateData. That way SSL on some
sockets can be treated as a real transport layer and for example
httpsAccept and httpAccept merged into one function.
* there is one bug uncovered, that when the accept() handler is deleted
and the port closed while it has been deferred. The deferred queue
needs to be cleared of all (multiple) deferral events, or they will
be scheduled uselessly and may segfault with FD errors.
This only gets hit if Squid is shutdown during active load limiting.
[Amos Jeffries <squid3_at_treenet.co.nz>] Merge from trunk
[Amos Jeffries <squid3_at_treenet.co.nz>] Merge from trunk
[Amos Jeffries <squid3_at_treenet.co.nz>] Typo in merge
[Amos Jeffries <squid3_at_treenet.co.nz>] Merge from trunk
[Amos Jeffries <squid3_at_treenet.co.nz>] Remove last remaining legacy functions and fdc_table dregs
[Amos Jeffries <squid3_at_treenet.co.nz>] Move listener socket handling to libcomm-listener.la
* Renamed AcceptFD to ListenStateData
* listener sockets 'owned' by the code which opened them
- FtpStateData owns the FTP data sockets
- config HTTP settings own the http_port/https_port listeners.
* Removed fdc_table - replaced with Comm::CurrentListenerSockets.
- reasonable memory savings (default 32-bit build only 8 KB, large production 64-bit build save 768 KB)
- initialized in one simple fast step.
- changes only made by ListenStateData constructor/destructor
* HotConf ready listener sockets (depends only on further config changes to happen)
[Amos Jeffries <squid3_at_treenet.co.nz>] Language Updates: More manuals polished
[Amos Jeffries <squid3_at_treenet.co.nz>] More manuals polish
------------------------------------------
[...truncated 946 lines...]
checking for an ANSI C-conforming const... (cached) yes
checking for size_t... (cached) yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/Makefile
config.status: creating src/Makefile
config.status: creating test/Makefile
config.status: creating config.h
config.status: executing depfiles commands
=== configuring in libltdl (<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/libltdl)>
configure: running /bin/sh ../.././test-suite/../libltdl/configure '--prefix=/usr/local/squid' '--with-squid=<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/'> '--enable-ltdl-convenience' --cache-file=/tmp/config.cache.24486 --srcdir=../.././test-suite/../libltdl
configure: loading cache /tmp/config.cache.24486
checking for a BSD-compatible install... (cached) /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... (cached) gawk
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... (cached) gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... (cached) o
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... (cached) gcc3
checking for an ANSI C-conforming const... (cached) yes
checking for inline... inline
checking build system type... (cached) x86_64-unknown-linux-gnu
checking host system type... (cached) x86_64-unknown-linux-gnu
checking for a sed that does not truncate output... (cached) /bin/sed
checking for egrep... grep -E
checking for ld used by gcc... (cached) /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... (cached) yes
checking for /usr/bin/ld option to reload object files... (cached) -r
checking for BSD-compatible nm... (cached) /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... (cached) pass_all
checking how to run the C preprocessor... (cached) gcc -E
checking for ANSI C header files... (cached) yes
checking for sys/types.h... (cached) yes
checking for sys/stat.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for memory.h... (cached) yes
checking for strings.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for unistd.h... (cached) yes
checking for dlfcn.h... (cached) yes
checking for g++... (cached) g++
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether g++ accepts -g... (cached) yes
checking dependency style of g++... (cached) gcc3
checking how to run the C++ preprocessor... (cached) g++ -E
checking for g77... (cached) gfortran
checking whether we are using the GNU Fortran 77 compiler... (cached) yes
checking whether gfortran accepts -g... (cached) yes
checking the maximum length of command line arguments... (cached) 32768
checking command to parse /usr/bin/nm -B output from gcc object... (cached) ok
checking for objdir... (cached) .libs
checking for ar... (cached) ar
checking for ranlib... (cached) ranlib
checking for strip... (cached) strip
checking if gcc supports -fno-rtti -fno-exceptions... (cached) no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by g++... (cached) /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
appending configuration tag "F77" to libtool
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gfortran option to produce PIC... -fPIC
checking if gfortran PIC flag -fPIC works... yes
checking if gfortran static flag -static works... yes
checking if gfortran supports -c -o file.o... (cached) yes
checking whether the gfortran linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for dirent.h that defines DIR... (cached) yes
checking for library containing opendir... (cached) none required
checking which extension is used for loadable modules... .so
checking which variable specifies run-time library path... LD_LIBRARY_PATH
checking for the default library search path... /lib64 /usr/lib64 /usr/lib64/mysql
checking for objdir... .libs
checking whether libtool supports -dlopen/-dlpreopen... yes
checking for shl_load... (cached) no
checking for shl_load in -ldld... (cached) no
checking for dlopen in -ldl... (cached) yes
checking for dlerror... (cached) yes
checking for _ prefix in compiled symbols... no
checking whether deplibs are loaded by dlopen... yes
checking argz.h usability... yes
checking argz.h presence... yes
checking for argz.h... yes
checking for error_t... yes
checking for argz_append... yes
checking for argz_create_sep... yes
checking for argz_insert... yes
checking for argz_next... yes
checking for argz_stringify... yes
checking for assert.h... (cached) yes
checking for ctype.h... (cached) yes
checking for errno.h... (cached) yes
checking for malloc.h... (cached) yes
checking for memory.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for stdio.h... (cached) yes
checking for unistd.h... (cached) yes
checking dl.h usability... no
checking dl.h presence... no
checking for dl.h... no
checking sys/dl.h usability... no
checking sys/dl.h presence... no
checking for sys/dl.h... no
checking dld.h usability... no
checking dld.h presence... no
checking for dld.h... no
checking mach-o/dyld.h usability... no
checking mach-o/dyld.h presence... no
checking for mach-o/dyld.h... no
checking for string.h... (cached) yes
checking for strchr... yes
checking for strrchr... yes
checking for memcpy... (cached) yes
checking for memmove... (cached) yes
checking for strcmp... yes
checking for closedir... yes
checking for opendir... yes
checking for readdir... yes
updating cache /tmp/config.cache.24486
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
{ test ! -d squid-3.HEAD-BZR || { find squid-3.HEAD-BZR -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr squid-3.HEAD-BZR; }; }
mkdir squid-3.HEAD-BZR
mkdir -p -- squid-3.HEAD-BZR/cfgaux squid-3.HEAD-BZR/include
list='compat lib libltdl snmplib scripts src icons errors contrib doc helpers test-suite tools'; for subdir in $list; do \
if test "$subdir" = .; then :; else \
test -d "squid-3.HEAD-BZR/$subdir" \
|| mkdir -p -- "squid-3.HEAD-BZR/$subdir" \
|| exit 1; \
distdir=`CDPATH="${ZSH_VERSION+.}:" && cd squid-3.HEAD-BZR && pwd`; \
top_distdir=`CDPATH="${ZSH_VERSION+.}:" && cd squid-3.HEAD-BZR && pwd`; \
(cd $subdir && \
make \
top_distdir="$top_distdir" \
distdir="$distdir/$subdir" \
distdir) \
|| exit 1; \
fi; \
done
make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/compat'>
mkdir -p -- <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/compat/../src>
make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/compat'>
make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib'>
mkdir -p -- <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/../src>
list='libTrie'; for subdir in $list; do \
if test "$subdir" = .; then :; else \
test -d "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/$subdir"> \
|| mkdir -p -- "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/$subdir"> \
|| exit 1; \
distdir=`CDPATH="${ZSH_VERSION+.}:" && cd <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib> && pwd`; \
top_distdir=`CDPATH="${ZSH_VERSION+.}:" && cd <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR> && pwd`; \
(cd $subdir && \
make \
top_distdir="$top_distdir" \
distdir="$distdir/$subdir" \
distdir) \
|| exit 1; \
fi; \
done
make[2]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie'>
{ test ! -d <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie> || { find <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie> -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie;> }; }
mkdir <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie>
mkdir -p -- <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie/cfgaux>
list='include src test'; for subdir in $list; do \
if test "$subdir" = .; then :; else \
test -d "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie/$subdir"> \
|| mkdir -p -- "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie/$subdir"> \
|| exit 1; \
distdir=`CDPATH="${ZSH_VERSION+.}:" && cd <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie> && pwd`; \
top_distdir=`CDPATH="${ZSH_VERSION+.}:" && cd <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR> && pwd`; \
(cd $subdir && \
make \
top_distdir="$top_distdir" \
distdir="$distdir/$subdir" \
distdir) \
|| exit 1; \
fi; \
done
make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/include'>
make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/include'>
make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/src'>
mkdir -p -- <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie/src/../include>
make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/src'>
make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/test'>
make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/test'>
find <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie> -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec /bin/sh <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/lib/libTrie/cfgaux/install-sh> -c -m a+r {} {} \; \
|| chmod -R a+r <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie>
make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie'>
make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib'>
make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/libltdl'>
{ test ! -d <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl> || { find <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl> -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl;> }; }
mkdir <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl>
find <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl> -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec /bin/sh <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/libltdl/install-sh> -c -m a+r {} {} \; \
|| chmod -R a+r <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl>
make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/libltdl'>
make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/snmplib'>
make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/snmplib'>
make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/scripts'>
make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/scripts'>
make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/src'>
Makefile:4695: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/src'>
make: *** [distdir] Error 1
buildtest.sh result is 2
BUILD: .././test-suite/buildtests/layer-00-default.opts
make: *** [distdir] Error 1
Build FAILED.
Received on Tue Jan 12 2010 - 07:05:29 MST
This archive was generated by hypermail 2.2.0 : Wed Jan 13 2010 - 12:00:05 MST