httpd-bugs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 39216] New: - mod_disk_cache trying to rename locked file, decreasing performance
Date Wed, 05 Apr 2006 13:47:09 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=39216>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=39216

           Summary: mod_disk_cache trying to rename locked file, decreasing
                    performance
           Product: Apache httpd-2
           Version: 2.2-HEAD
          Platform: All
        OS/Version: Windows Server 2003
            Status: NEW
          Severity: major
          Priority: P2
         Component: mod_disk_cache
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: fleger@siderlog.fr


mod_disk_cache cannot update cache for expired content (win32)

There is a problem with using mod_disk_cache in conjonction of mod_proxy.

When a file is expired in the cache, mod_disk_cache doesn't handle the backend
update correctly.

This leads to 2 differents problems:

1) The cache won't never been updated and you're loosing benefits of caching.
2) It leaves a tempfile in CacheRoot dir, making the CacheRoot dir bigger than
expected.

Messages that are displayed in error.log:
==========================================
[Wed Mar 29 10:41:40 2006] [error] (OS 5)Accès refusé.  : disk_cache: rename
tempfile to hdrsfile failed: C:/apache_cache/aptmpcBQArf ->
C:/apache_cache/M/2fl@WQwwEqpEKxjyw7VFA.header

Steps to reproduce:
==========================================

httpd.conf:

#LogLevel warn
Listen 80

LoadModule authz_host_module modules/mod_authz_host.so
LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule include_module modules/mod_include.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule unique_id_module modules/mod_unique_id.so

Timeout 300
KeepAlive On
MaxKeepAliveRequests 10000
KeepAliveTimeout 15

<IfModule mpm_winnt.c>
	ThreadsPerChild 250
	MaxRequestsPerChild  0
</IfModule>

ProxyVia on
SSLProxyEngine on
SSLSessionCache shm:C:/Apache/2.2.0/logs/ssl_gcache_data(1048576)

ServerRoot "C:/Apache/2.2.0"
DocumentRoot "C:/Apache/2.2.0"
ServerName localhost:80

# On ne doit pas avoir d'éléments variables dans le cache.
Header unset Vary
Header unset Expires
CacheIgnoreHeaders Set-Cookie
CacheIgnoreHeaders RequestID
CacheIgnoreHeaders TimeReq
CacheIgnoreHeaders User-Agent
CacheIgnoreHeaders Accept-Encoding
CacheIgnoreHeaders Warning
CacheIgnoreHeaders Via

# Forcer IE à cacher les éléments statiques.
SetEnvIf Request_URI "\.css$"  force-no-vary
SetEnvIf Request_URI "\.gif$"  force-no-vary
SetEnvIf Request_URI "\.hta$"  force-no-vary
SetEnvIf Request_URI "\.htm$"  force-no-vary
SetEnvIf Request_URI "\.html$" force-no-vary
SetEnvIf Request_URI "\.jpg$"  force-no-vary
SetEnvIf Request_URI "\.js$"   force-no-vary
SetEnvIf Request_URI "\.vbs$"  force-no-vary

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

<Directory "C:/Apache/2.2.0/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
</FilesMatch>

ErrorLog logs/error.log

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I
%O" combinedio
    </IfModule>

    CustomLog logs/access.log common

</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "C:/Apache/2.2.0/cgi-bin/"
</IfModule>

<Directory "C:/Apache/2.2.0/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

DefaultType text/plain

<IfModule mime_module>
    TypesConfig conf/mime.types

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

</IfModule>

EnableMMAP off
EnableSendfile off
Win32DisableAcceptEx

<IfModule ssl_module>
	SSLRandomSeed startup builtin
	SSLRandomSeed connect builtin
</IfModule>

Listen 81
<VirtualHost *:81>

	RequestHeader set TimeReq "%t"
	RequestHeader set RequestID "%{UNIQUE_ID}e"

	CacheEnable disk /
	CacheMaxExpire 10
	CacheDefaultExpire 10
	CacheLastModifiedFactor 10000000.0 
	CacheRoot "C:/apache_cache"
	CacheDirLength 1
	CacheDirLevels 1

	RewriteEngine On
	RewriteRule ^/(.*)$ http://some.site.com/$1 [P,L]
	ProxyPassReverse / http://some.site.com/
	
	CustomLog "| 'C:/Apache/2.2.0/bin/rotatelogs.exe' -l 'logs/vhost81_%Y%m%d.log'
86400" common
	
</VirtualHost>

Then issue this command:

bin\ab.exe -n 10000 -c 1024 -k -d http://some.site.com/some/file.txt

As soon as the file will be expired, you will see the problem.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org


Mime
View raw message