misc/178304: squid doesn't work in SMP mode

看板FB_bugs作者時間11年前 (2013/05/03 08:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
>Number: 178304 >Category: misc >Synopsis: squid doesn't work in SMP mode >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri May 03 00:20:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: anonymous >Release: >Organization: >Environment: FreeBSD FreeBSD 9.1-RELEASE FreeBSD 9.1-RELEASE #0: Tue Apr 16 01:05:45 PDT 2013 root@FreeBSD:/usr/obj/usr/src/sys/CUSTOM i386 >Description: Squid tries to save its ipc sockets in localstatedir(/var/squid)/run/squid which it can't write to. >How-To-Repeat: Add "workers=2" to squid.conf >Fix: Change localstatedir to "/var" so squid uses /var/run/squid instead. /var/squid/cache/squid => /var/squid/cache /var/squid/run/squid => /var/run/squid Patch attached with submission follows: diff -ur a/www/squid33/Makefile b/www/squid33/Makefile --- a/www/squid33/Makefile 2013-05-01 09:56:25.000000000 -0700 +++ b/www/squid33/Makefile 2013-05-02 16:39:06.876875733 -0700 @@ -228,10 +228,11 @@ --sbindir=${PREFIX}/sbin \ --datadir=${ETCDIR} \ --libexecdir=${PREFIX}/libexec/squid \ - --localstatedir=/var/squid \ + --localstatedir=/var \ --sysconfdir=${ETCDIR} \ --with-logdir=/var/log/squid \ --with-pidfile=/var/run/squid/squid.pid \ + --with-swapdir=/var/squid/cache \ --enable-auth \ --enable-build-info \ --enable-loadable-modules \ diff -ur a/www/squid33/files/pkg-install.in b/www/squid33/files/pkg-install.in --- a/www/squid33/files/pkg-install.in 2012-10-30 16:05:50.000000000 -0700 +++ b/www/squid33/files/pkg-install.in 2013-05-02 16:46:11.408876004 -0700 @@ -5,11 +5,11 @@ PATH=/bin:/usr/bin:/usr/sbin pkgname=$1 -squid_base="/var/squid" -squid_cachedir="${squid_base}/cache" +squid_homedir="/var/squid" squid_confdir="${PKG_PREFIX:-%%PREFIX%%}/etc/squid" squid_logdir="/var/log/squid" squid_rundir="/var/run/squid" +squid_cachedir="${squid_homedir}/cache" # these are hardcoded, see /usr/ports/UIDs and /usr/ports/GIDs: squid_user=squid squid_group=squid @@ -21,14 +21,14 @@ ;; POST-INSTALL) # Since we usually start the Squid master process as ${squid_user} - # instead of root make sure that ${squid_base} is writable for it. - if [ ! -d ${squid_base} ]; then - echo "Creating ${squid_base}..." + # instead of root make sure that ${squid_homedir} is writable for it. + if [ ! -d ${squid_homedir} ]; then + echo "Creating ${squid_homedir}..." install -d -o root -g ${squid_group} \ - -m 0775 ${squid_base} + -m 0775 ${squid_homedir} else - chgrp ${squid_group} ${squid_base} - chmod g+w ${squid_base} + chgrp ${squid_group} ${squid_homedir} + chmod g+w ${squid_homedir} fi if [ ! -d ${squid_cachedir} ]; then echo "Creating ${squid_cachedir} ..." diff -ur a/www/squid33/files/pkg-message.in b/www/squid33/files/pkg-message.in --- a/www/squid33/files/pkg-message.in 2012-10-30 16:05:50.000000000 -0700 +++ b/www/squid33/files/pkg-message.in 2013-05-02 16:39:44.871873847 -0700 @@ -1,7 +1,7 @@ o You can find the configuration files for this package in the directory %%PREFIX%%/etc/squid. - o The default cache directory is /var/squid/. + o The default cache directory is /var/squid/cache/. The default log directory is /var/log/squid/. Note: diff -ur a/www/squid33/pkg-deinstall b/www/squid33/pkg-deinstall --- a/www/squid33/pkg-deinstall 2012-10-30 16:05:50.000000000 -0700 +++ b/www/squid33/pkg-deinstall 2013-05-02 16:45:00.104873016 -0700 @@ -5,11 +5,10 @@ PATH=/bin:/usr/bin:/usr/sbin squid_homedir="/var/squid" -squid_cache_basedir="${squid_homedir}/cache" -squid_state_basedir="${squid_homedir}/run" squid_confdir=${PKG_PREFIX}/etc/squid squid_logdir="/var/log/squid" squid_rundir="/var/run/squid" +squid_cachedir="${squid_homedir}/cache" case $2 in DEINSTALL) @@ -18,7 +17,7 @@ cmp -s -z ${f} ${f}.default && rm ${f} done # try to cleanup directories in /var: - for d in ${squid_cache_basedir}/squid ${squid_cache_basedir} ${squid_state_basedir}/squid ${squid_state_basedir} ${squid_homedir} ${squid_logdir} ${squid_rundir}; do + for d in ${squid_logdir} ${squid_rundir} ${squid_cachedir} ${squid_homedir}; do rmdir ${d} 2>/dev/null done ;; @@ -32,7 +31,7 @@ echo " created by a default installation of this package, run" echo "" echo " pw userdel -n squid -u 100" - if [ -d ${squid_homedir} -o -d ${squid_confdir} -o -d ${squid_logdir} -o -d ${squid_rundir} ] ; then + if [ -d ${squid_confdir} -o -d ${squid_logdir} -o -d ${squid_rundir} -o -d ${squid_homedir} ] ; then echo "" echo " In order to ease updates the cache and log directories" echo " and all configuration files modified by you were preserved." >Release-Note: >Audit-Trail: >Unformatted: _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscribe@freebsd.org"
文章代碼(AID): #1HWmM2Gz (FB_bugs)