misc/178304: squid doesn't work in SMP mode
anonymous
anonymous at gmail.com
Fri May 3 00:20:00 UTC 2013
>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 at 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:
More information about the freebsd-bugs
mailing list