squid "storeSwapOutFileClosed"

donnie

Member
Ich verwende squid-2.7.STABLE7p0-snmp aus openBSD 4.7.

Leider erhalte ich immer diese Fehlermeldungen:

Code:
2010/07/05 18:04:27| storeSwapOutFileClosed: dirno 0, swapfile 0000008D, errflag=-1
        (1) Operation not permitted
2010/07/05 18:04:27| storeSwapOutFileClosed: dirno 0, swapfile 0000008E, errflag=-1
        (9) Bad file descriptor


Probiert habe ich schon:

option MSGMNB=16384 # max characters per message queue
option MSGMNI=40 # max number of message queue identifiers
option MSGSEG=2048 # max number of message segments in the system
option MSGSSZ=64 # size of a message segment (Must be 2^N)
option MSGTQL=1024 # max amount of messages in the system

und

kern.maxfiles=32768
kern.maxclusters=65535 #Default 6144
kern.maxvnodes=8192 #Default 1310


Hat leider nichts gebracht.


Hat jemand eine Idee?


EDIT:

squid conf:


Code:
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
redirector_bypass on
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
cache_mem 256 MB
cache_dir diskd /var/squid/cache 51200 64 256
access_log /var/squid/logs/access.log squid
logfile_rotate 10
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
header_access From deny all
header_access Referer deny all
header_access Server deny all
header_access WWW-Authenticate deny all
header_access Link deny all
always_direct allow all
forwarded_for off
coredump_dir /var/squid/cache
 
Zuletzt bearbeitet:
Bevor man Kernellimits erhöht, würde ich erst mal in die Limits in der /etc/login.conf sehen. Für die Loginklasse daemon (zu der der Squid gehören sollte) steht da:

Code:
:openfiles-cur=128:\

Das würde ich mal erhöhen.

Gruß
Reks30
 
Habe ich vergessen zu schreiben, das habe ich auch schon auf openfiles-cur=16384 gestellt. :/


Noch jemand eine Idee?
 
Filesystem ist noch lange nicht voll:


Filesystem Size Used Avail Capacity Mounted on
/dev/sd0a 1005M 60.0M 895M 6% /
/dev/sd0d 3.9G 4.0K 3.7G 0% /tmp
/dev/sd0f 2.0G 822M 1.1G 43% /usr
/dev/sd0h 5.9G 102M 5.5G 2% /usr/local
/dev/sd0j 2.0G 2.0K 1.9G 0% /usr/obj
/dev/sd0i 2.0G 754M 1.1G 39% /usr/src
/dev/sd0e 10.8G 102M 10.2G 1% /var
/dev/sd0k 371G 996M 352G 0% /var/squid

fstab:

/dev/sd0a / ffs rw 1 1
/dev/sd0d /tmp ffs rw,nodev,nosuid 1 2
/dev/sd0f /usr ffs rw,nodev 1 2
/dev/sd0h /usr/local ffs rw,nodev 1 2
/dev/sd0k //var/squid ffs rw,nodev 1 2
/dev/sd0j /usr/obj ffs rw,nodev,nosuid 1 2
/dev/sd0i /usr/src ffs rw,nodev,nosuid 1 2
/dev/sd0e /var ffs rw,nodev,nosuid 1 2


Was meinst du mit Systrace? Laeuft es Standart maesig unter OpenBSD? (Habe leider noch nicht so viel Erfahrung in OpenBSD)
 
Habe in der /etc/rc.local eingetragen. Sprich eigentlich ohne irgendwelche Parameter.


Code:
#       $OpenBSD: rc.local,v 1.39 2006/07/28 20:19:46 sturm Exp $

# Site-specific startup actions, daemons, and other things which
# can be done AFTER your system goes into securemode.  For actions
# which should be done BEFORE your system has gone into securemode
# please see /etc/rc.securelevel.

echo -n 'starting local daemons:'

# Add your local startup actions here.

echo '.'

    if [ -x /usr/local/sbin/squid ]; then
        echo -n ' squid';       /usr/local/sbin/squid
    fi
 
Das ist an sich so OK, ich verwende bei mir zwar noch den Parameter -D, aber der ist nur für das auslassen der DNS-Tests beim Start zuständig und kann auch weggelassen werden.

Hast du den Cache mit squid -z vor der ersten Nutzung initalisiert?

Gruß
Reks30
 
Jap, squid -z habe ich schon gemacht. Habe sicherheitshalber den cache auch schon einmal geschloescht gehabt und neu erstellen lassen.
 
Wie sieht es mit den Inodes aus? Kann es sein das die Partition mit dem Squid Cache keine Inodes mehr frei hat (df -i)?

Unter welchen User/Gruppe läuft Squid? Stimmen die Berechtigungen in den Verzeichnissen in denen Squid schreiben können muß?
 
Inodes sind auch noch genug da.

-bash-4.0# df -hi
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/sd0a 1005M 60.0M 895M 6% 2374 153528 2% /
/dev/sd0d 3.9G 2.0K 3.7G 0% 1 545661 0% /tmp
/dev/sd0f 2.0G 822M 1.1G 43% 104923 180899 37% /usr
/dev/sd0h 5.9G 102M 5.5G 2% 7794 797708 1% /usr/local
/dev/sd0j 2.0G 2.0K 1.9G 0% 1 285821 0% /usr/obj
/dev/sd0i 2.0G 754M 1.1G 39% 83400 202422 29% /usr/src
/dev/sd0e 10.8G 102M 10.2G 1% 6290 1448812 0% /var
/dev/sd0k 371G 996M 352G 0% 46289 49557165 0% /var/squid



Squid laeuft unter den User _squid und in der Gruppe _squid .

Alles in /var/squid gehoert dem User _squid _squid und der Gruppe _squid _squid.
 
Ich habe das Problem geloest.


Erstens funktioniert diskd anscheinend nicht auf obenbsd und dann habe ich in der squid config max_filedescriptors auf 8192 gestellt.


Seit dem funktioniert squid ohne Probleme. :)
 
Zurück
Oben