From owner-freebsd-ports-bugs@freebsd.org Tue Aug 25 20:17:57 2015 Return-Path: Delivered-To: freebsd-ports-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A25C9C38C1 for ; Tue, 25 Aug 2015 20:17:57 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3557E150F for ; Tue, 25 Aug 2015 20:17:57 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id t7PKHv3j094144 for ; Tue, 25 Aug 2015 20:17:57 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-ports-bugs@FreeBSD.org Subject: [Bug 202637] www/lighttpd: 1.4.36 has header corruption, and breaks under load Date: Tue, 25 Aug 2015 20:17:57 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Ports & Packages X-Bugzilla-Component: Individual Port(s) X-Bugzilla-Version: Latest X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: peter@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-ports-bugs@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: maintainer-feedback? X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2015 20:17:57 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202637 --- Comment #3 from Peter Wemm --- All that's left: # egrep -v '(^#|^$)' lighttpd.conf conf.d/*.conf lighttpd.conf:var.log_root = "/logs" lighttpd.conf:var.server_root = "/data" lighttpd.conf:var.state_dir = "/var/run" lighttpd.conf:var.conf_dir = "/etc" lighttpd.conf:server.chroot = "/usr/local/www" lighttpd.conf:var.vhosts_dir = server_root + "/vhosts" lighttpd.conf:var.cache_dir = "/var/cache/lighttpd" lighttpd.conf:var.socket_dir = "/sockets" lighttpd.conf:include "modules.conf" lighttpd.conf:server.port = 80 lighttpd.conf:server.bind = "149.20.53.26" lighttpd.conf:$SERVER["socket"] == "[2001:4f8:3:ffe0:406a:0:16:1a]:80" { } lighttpd.conf:server.username = "www" lighttpd.conf:server.groupname = "www" lighttpd.conf:server.document-root = "/data/" lighttpd.conf:server.tag = "lighttpd" lighttpd.conf:server.pid-file = state_dir + "/lighttpd.pid" lighttpd.conf:server.errorlog = log_root + "/error.log" lighttpd.conf:include "conf.d/access_log.conf" lighttpd.conf:include "conf.d/debug.conf" lighttpd.conf:server.event-handler = "freebsd-kqueue" lighttpd.conf:server.network-backend = "write" lighttpd.conf:server.max-fds = 40960 lighttpd.conf:server.stat-cache-engine = "simple" lighttpd.conf:server.max-connections = 20480 lighttpd.conf:server.max-keep-alive-idle = 5 lighttpd.conf:server.max-keep-alive-requests = 1024 lighttpd.conf:server.max-request-size = 512 lighttpd.conf:index-file.names += ( lighttpd.conf: "index.xhtml", "index.html", "index.htm", "default.htm", "index.php" lighttpd.conf:) lighttpd.conf:url.access-deny = ( "~", ".inc", ".swp" ) lighttpd.conf:$HTTP["url"] =~ "\.pdf$" { lighttpd.conf: server.range-requests = "disable" lighttpd.conf:} lighttpd.conf:static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi" ) lighttpd.conf:include "conf.d/mime.conf" lighttpd.conf:include "conf.d/dirlisting.conf" lighttpd.conf:server.follow-symlink = "disable" lighttpd.conf:server.upload-dirs = ( "/var/tmp/" ) conf.d/dirlisting.conf:dir-listing.activate = "enable" conf.d/dirlisting.conf:dir-listing.hide-dotfiles = "disable" conf.d/dirlisting.conf:dir-listing.exclude = ( "~$" ) conf.d/dirlisting.conf:dir-listing.encoding = "UTF-8" conf.d/dirlisting.conf:dir-listing.hide-header-file = "disable" conf.d/dirlisting.conf:dir-listing.show-header = "disable" conf.d/dirlisting.conf:dir-listing.hide-readme-file = "disable" conf.d/dirlisting.conf:dir-listing.show-readme = "disable" The the conf files not shown here were deleted by 'pkg delete' as they were stock / unmodified. We saw it on the freebsd-update and portsnap servers. They typically have a very very large number of files with long file names. The file names are usually sha256 of the file itself. The easiest way to trigger it was: # find 10.2-RELEASE/amd64/f -type f >/tmp/flist (this generates about 66000 files) somewhere else: xargs -P8 /usr/libexec/phttpget servername.freebsd.org < /tmp/flist and watch the sporadic '400 bad request'. With 1.4.35_05, it runs without the error 400s. /usr/libexec/phttpget is src/usr.sbin/portsnap/phttpget/* - it does pipelined http fetches. If you have debug.conf log failed requests, you can see it reporting what appears to be truncated request headers. -- You are receiving this mail because: You are the assignee for the bug.