Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 May 2013 00:19:10 GMT
From:      anonymous <anonymous@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/178304: squid doesn't work in SMP mode
Message-ID:  <201305030019.r430JA5R054609@red.freebsd.org>
Resent-Message-ID: <201305030020.r430K0mc050327@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305030019.r430JA5R054609>