Specifically, the macro was supposed to generate random numbers according to a particular scheme and I mistakenly entered the wrong variable in the conditional, resulting in an infinite loop. This choked the system temporarily but such things had happened before without ill effect. Not this time. At first we got error messages saying "Cannot determine local time zone" (this was around midnight if that helps) whenever a WW problem set would load at all, which was rare. After I caught and fixed the error everything seemed fine but this afternoon webwork completely imploded. Even after restarting the mysql server -- it had apparently crashed some time during the festivities -- all we're getting now is about the following error message when we try to access a course:
Error messages
error instantiating DB driver WeBWorK::DB::Driver::SQL for table problem_user: DBI connect('webwork','webworkRead',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) at /usr/local/webwork2/lib/WeBWorK/DB/Driver/SQL.pm line 62
at /usr/local/webwork2/lib/WeBWorK.pm line 238
Call stack
The information below can help locate the source of the problem.
in Carp::croak called at line 221 of /usr/local/webwork2/lib/WeBWorK/DB.pm
in WeBWorK::DB::new called at line 238 of /usr/local/webwork2/lib/WeBWorK.pm
and now we're also getting:
error instantiating DB driver WeBWorK::DB::Driver::SQL for table permission: DBD driver has not implemented the AutoCommit attribute at /usr/local/lib/perl/5.8.4/DBI.pm line 670.
at /usr/local/webwork2/lib/WeBWorK.pm line 238
My questions are thus, in descending order of importance:
1) Can anyone figure out what this error means and suggest a fix? I'd like to avoid a reinstallation if possible, and we absolutely cannot afford to lose the data already online. Beyond that, I think we're open to pretty much anything (although I'm not sure how easy it will be to reboot the server).
2) How does one go about killing a webwork process (in particular, a problem set) that's locked in an infinite loop without killing the entirety of webwork? Sometimes webwork figured it out and stopped by itself, but that only happened about one in ten times.
3) What is causing all those ContentGenerator.pm warning messages about comparisons to empty strings? [I think there are also some from one of the problem set modules.] Are they dangerous? And how do we make them go away?
4) Can one "use strict;" or its equivalent in a .pg file? [I know you can in a .pl file, I haven't been able to port this over after I'd thought of it.] Can one use the equivalent of perl -w? I've had enough problems with mismatched variable names that I'd like the option of automating that particular check if possible.
Any help you can give on the matter would be greatly appreciated.