I believe I found a problem with the ULE scheduler - At least the fact that there is a problem, but I'm not sure where to go from here. The system locks all processes, but doesn't panic, so I have no output to give. I was able to duplicate this on three different machines and solved it by switching to the scheduler to 4BSD. Here's the environment: FreeBSD 7.2 i386, installed from bootonly ISO, Custom install, minimal, no other changes other than setting timezone, changing root password, and turning on sshd (allowing root and password connection). Running portsnap (fetch, then extract) to get latest ports tree.>From ports, make installs of lang/php5 and www/lighttpd, using defaults for all ports installed.Modified lighttpd.conf for PHP (attached diff), created a short script called uploadfile.php (attached). File was installed at /usr/local/www/data/uploadfile.php Start lighttpd (lighttpd_enable="YES" in rc.conf, /usr/local/etc/rc.d/lighttpd start), connect and run script. As long as I upload a file less than 64K, everything works fine. If I try to upload something larger than 64K, system no longer responds. Console prompt at login will allow me to enter username/password, but nothing happens after that. Console prompt logged in will allow me to type a single line, but if I press enter, nothing after that. No errors get written anywhere - console, logs, etc. I'm at a loss of what to do next. Can anyone give me ideas of what else I can do? -------------- next part -------------- --- lighttpd.conf.sample 2009-10-23 09:37:50.000000000 -0500 +++ lighttpd.conf 2009-10-23 10:02:00.000000000 -0500 @@ -20,7 +20,7 @@ # "mod_auth", # "mod_status", # "mod_setenv", -# "mod_fastcgi", + "mod_fastcgi", # "mod_proxy", # "mod_simple_vhost", # "mod_evhost", @@ -39,7 +39,7 @@ server.document-root = "/usr/local/www/data/" ## where to send error-messages to -server.errorlog = "/var/log/lighttpd.error.log" +server.errorlog = "/tmp/lighttpd.error.log" # files to check for if .../ is requested index-file.names = ( "index.php", "index.html", @@ -115,7 +115,7 @@ # server.tag = "lighttpd" #### accesslog module -accesslog.filename = "/var/log/lighttpd.access.log" +accesslog.filename = "/tmp/lighttpd.access.log" ## deny access the file-extensions # @@ -324,3 +324,20 @@ # Enable IPV6 and IPV4 together server.use-ipv6 = "enable" $SERVER["socket"] == "0.0.0.0:80" { } + + fastcgi.server = ( ".php" => (( + "bin-path" => "/usr/local/bin/php-cgi", + "socket" => "/tmp/hermes.php.socket", + "min-procs" => 1, + "max-procs" => 1, + "bin-environment" => ( + "PHP_FCGI_CHILDREN" => "4", + "PHP_FCGI_MAX_REQUESTS" => "50", + "PHPRC" => "/data/sites/support/conf/" + ), + "bin-copy-environment" => ( + "PATH", "SHELL", "USER", "TZ" + ), + "broken-scriptfilename" => "enable", + ))) + \ -------------- next part -------------- A non-text attachment was scrubbed... Name: uploadfile.php Type: application/octet-stream Size: 640 bytes Desc: uploadfile.php Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20091023/6a230221/uploadfile.obj
On Fri, Oct 23, 2009 at 2:46 PM, Jaime Bozza <jbozza@mindsites.com> wrote:> I believe I found a problem with the ULE scheduler - At least the fact that there is a problem, but I'm not sure where to go from here. ? The system locks all processes, but doesn't panic, so I have no output to give. > > I was able to duplicate this on three different machines and solved it by switching to the scheduler to 4BSD. > > Here's the environment: > > FreeBSD 7.2 i386, installed from bootonly ISO, Custom install, minimal, no other changes other than setting timezone, changing root password, and turning on sshd (allowing root and password connection). > > Running portsnap (fetch, then extract) to get latest ports tree. > > >From ports, make installs of lang/php5 and www/lighttpd, using defaults for all ports installed. > > Modified lighttpd.conf for PHP (attached diff), created a short script called uploadfile.php (attached). ?File was installed at /usr/local/www/data/uploadfile.php > > Start lighttpd (lighttpd_enable="YES" in rc.conf, /usr/local/etc/rc.d/lighttpd start), connect and run script. > > As long as I upload a file less than 64K, everything works fine. ?If I try to upload something larger than 64K, system no longer responds. ? Console prompt at login will allow me to enter username/password, but nothing happens after that. ?Console prompt logged in will allow me to type a single line, but if I press enter, nothing after that. > > No errors get written anywhere - console, logs, etc. > > I'm at a loss of what to do next. ?Can anyone give me ideas of what else I can do?Try adding this or changing these items in lighttpd.conf: ## FreeBSD! server.event-handler = "freebsd-kqueue" server.network-backend = "writev" Scott
On 10/23/09, Jaime Bozza <jbozza@mindsites.com> wrote:> I believe I found a problem with the ULE scheduler - At least the fact that > there is a problem, but I'm not sure where to go from here. The system > locks all processes, but doesn't panic, so I have no output to give. > > I was able to duplicate this on three different machines and solved it by > switching to the scheduler to 4BSD. > > Here's the environment: > > FreeBSD 7.2 i386, installed from bootonly ISO, Custom install, minimal, no > other changes other than setting timezone, changing root password, and > turning on sshd (allowing root and password connection). > > Running portsnap (fetch, then extract) to get latest ports tree. > > >From ports, make installs of lang/php5 and www/lighttpd, using defaults for > all ports installed. > > Modified lighttpd.conf for PHP (attached diff), created a short script > called uploadfile.php (attached). File was installed at > /usr/local/www/data/uploadfile.php > > Start lighttpd (lighttpd_enable="YES" in rc.conf, > /usr/local/etc/rc.d/lighttpd start), connect and run script. > > As long as I upload a file less than 64K, everything works fine. If I try > to upload something larger than 64K, system no longer responds. Console > prompt at login will allow me to enter username/password, but nothing > happens after that. Console prompt logged in will allow me to type a single > line, but if I press enter, nothing after that. > > No errors get written anywhere - console, logs, etc. > > I'm at a loss of what to do next. Can anyone give me ideas of what else I > can do?Superficially, this seams identical to a deadlock I reported for 7.1-RC1. Would you mind compiling a kernel with these options: options DDB options KDB options SW_WATCHDOG options DEBUG_VFS_LOCKS then add the following to /etc/rc.conf: watchdogd_enable="YES" watchdogd_flags="-e 'ls -al /etc'" This should force a panic when the lockup happens again, which will drop to a debugger. Please check the backtrace, and tell me if the call stack is the same as this one (between the --- interrupt, and --- syscall sections): KDB: stack backtrace: db_trace_self_wrapper(c0b55b52,e66e0ae0,c07615e9,c0b50617,8ca93,...) at db_trace_self_wrapper+0x26 kdb_backtrace(c0b50617,8ca93,0,c41a7690,2,...) at kdb_backtrace+0x29 hardclock(0,c07ff29d,0,0,4,...) at hardclock+0x1f9 lapic_handle_timer(e66e0b08) at lapic_handle_timer+0x9c Xtimerint() at Xtimerint+0x1f --- interrupt, eip = 0xc07ff29d, esp = 0xe66e0b48, ebp = 0xe66e0c34 --- kern_sendfile(c41a7690,e66e0cfc,0,0,0,...) at kern_sendfile+0x90d do_sendfile(e66e0d2c,c0aba265,c41a7690,e66e0cfc,20,...) at do_sendfile+0xb1 sendfile(c41a7690,e66e0cfc,20,16,e66e0d2c,...) at sendfile+0x13 syscall(e66e0d38) at syscall+0x335 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (393, FreeBSD ELF32, sendfile), eip = 0x282cb0cb, esp 0xbfbfc7cc, ebp = 0xbfbfe848 --- KDB: enter: watchdog timeout You can type 'reboot' to reboot the machine (in my case, panic would not work, so a useful dump wasn't in the cards)
2009/10/23 Jaime Bozza <jbozza@mindsites.com>:> I believe I found a problem with the ULE scheduler - At least the fact that there is a problem, but I'm not sure where to go from here. The system locks all processes, but doesn't panic, so I have no output to give. > > I was able to duplicate this on three different machines and solved it by switching to the scheduler to 4BSD. > > Here's the environment: > > FreeBSD 7.2 i386, installed from bootonly ISO, Custom install, minimal, no other changes other than setting timezone, changing root password, and turning on sshd (allowing root and password connection).Did you recompile your kernel? Can you show me the revision of src/sys/kern/sched_ule.c you used? Attilio -- Peace can only be achieved by understanding - A. Einstein