- file deleter: improved logging; from Oliver

svn path=/trunk/boinc/; revision=25050
This commit is contained in:
David Anderson 2012-01-13 23:39:14 +00:00
parent ec40a74531
commit 46fb7bd97a
2 changed files with 35 additions and 26 deletions

View File

@ -490,3 +490,9 @@ Rom 13 Jan 2012
clientgui/ clientgui/
MainDocument.cpp MainDocument.cpp
David 13 Jan 2012
- file deleter: improved logging; from Oliver
sched/
file_deleter.cpp

View File

@ -68,7 +68,7 @@
#define PIDFILE "file_deleter.pid" #define PIDFILE "file_deleter.pid"
#define DEFAULT_SLEEP_INTERVAL 5 #define DEFAULT_SLEEP_INTERVAL 5
#define RESULTS_PER_WU 4 // an estimate of redundancy #define RESULTS_PER_WU 4 // an estimate of redundancy
int id_modulus=0, id_remainder=0, appid=0; int id_modulus=0, id_remainder=0, appid=0;
bool dont_retry_errors = false; bool dont_retry_errors = false;
@ -143,12 +143,12 @@ int wu_delete_files(WORKUNIT& wu) {
char* p; char* p;
char filename[256], pathname[256], buf[BLOB_SIZE]; char filename[256], pathname[256], buf[BLOB_SIZE];
bool no_delete=false; bool no_delete=false;
int count_deleted = 0, retval, mthd_retval = 0; int count_deleted = 0, count_deleted_md5 = 0, retval, mthd_retval = 0;
if (strstr(wu.name, "nodelete")) return 0; if (strstr(wu.name, "nodelete")) return 0;
safe_strcpy(buf, wu.xml_doc); safe_strcpy(buf, wu.xml_doc);
p = strtok(buf, "\n"); p = strtok(buf, "\n");
strcpy(filename, ""); strcpy(filename, "");
while (p) { while (p) {
@ -167,7 +167,7 @@ int wu_delete_files(WORKUNIT& wu) {
if (retval == ERR_OPENDIR) { if (retval == ERR_OPENDIR) {
log_messages.printf(MSG_CRITICAL, log_messages.printf(MSG_CRITICAL,
"[WU#%d] missing dir for %s\n", "[WU#%d] missing dir for %s\n",
wu.id, filename wu.id, pathname
); );
mthd_retval = ERR_UNLINK; mthd_retval = ERR_UNLINK;
} else if (retval) { } else if (retval) {
@ -176,14 +176,14 @@ int wu_delete_files(WORKUNIT& wu) {
wu.id, filename, boincerror(retval) wu.id, filename, boincerror(retval)
); );
} else { } else {
log_messages.printf(MSG_NORMAL, log_messages.printf(MSG_DEBUG,
"[WU#%d] deleting %s\n", wu.id, filename "[WU#%d] deleting %s\n", wu.id, pathname
); );
retval = unlink(pathname); retval = unlink(pathname);
if (retval) { if (retval) {
log_messages.printf(MSG_CRITICAL, log_messages.printf(MSG_CRITICAL,
"[WU#%d] unlink %s failed: %s\n", "[WU#%d] unlink %s failed: %s\n",
wu.id, filename, boincerror(retval) wu.id, pathname, boincerror(retval)
); );
mthd_retval = ERR_UNLINK; mthd_retval = ERR_UNLINK;
} else { } else {
@ -193,15 +193,17 @@ int wu_delete_files(WORKUNIT& wu) {
// //
if (config.cache_md5_info) { if (config.cache_md5_info) {
strcat(pathname,".md5"); strcat(pathname,".md5");
log_messages.printf(MSG_NORMAL, log_messages.printf(MSG_DEBUG,
"[WU#%d] deleting %s\n", wu.id, filename "[WU#%d] deleting %s\n", wu.id, pathname
); );
retval = unlink(pathname); retval = unlink(pathname);
if (retval) { if (retval) {
log_messages.printf(MSG_CRITICAL, log_messages.printf(MSG_CRITICAL,
"[WU#%d] unlink %s failed: %s\n", "[WU#%d] unlink %s failed: %s\n",
wu.id, filename, boincerror(retval) wu.id, pathname, boincerror(retval)
); );
} else {
count_deleted_md5++;
} }
} }
} }
@ -209,8 +211,9 @@ int wu_delete_files(WORKUNIT& wu) {
} }
p = strtok(0, "\n"); p = strtok(0, "\n");
} }
log_messages.printf(MSG_DEBUG, log_messages.printf(MSG_NORMAL,
"[WU#%d] deleted %d file(s)\n", wu.id, count_deleted "[WU#%d] deleted %d input files and %d cached md5 files\n",
wu.id, count_deleted, count_deleted_md5
); );
return mthd_retval; return mthd_retval;
} }
@ -269,7 +272,7 @@ int result_delete_files(RESULT& result) {
); );
} else { } else {
count_deleted++; count_deleted++;
log_messages.printf(MSG_NORMAL, log_messages.printf(MSG_DEBUG,
"[RESULT#%d] unlinked %s\n", result.id, pathname "[RESULT#%d] unlinked %s\n", result.id, pathname
); );
} }
@ -279,8 +282,8 @@ int result_delete_files(RESULT& result) {
p = strtok(0, "\n"); p = strtok(0, "\n");
} }
log_messages.printf(MSG_DEBUG, log_messages.printf(MSG_NORMAL,
"[RESULT#%d] deleted %d file(s)\n", result.id, count_deleted "[RESULT#%d] deleted %d output file(s)\n", result.id, count_deleted
); );
return mthd_retval; return mthd_retval;
} }
@ -354,7 +357,7 @@ bool do_pass(bool retry_error) {
); );
did_something = true; did_something = true;
} }
} }
} }
sprintf(buf, sprintf(buf,
@ -387,7 +390,7 @@ bool do_pass(bool retry_error) {
new_state = FILE_DELETE_DONE; new_state = FILE_DELETE_DONE;
} }
if (new_state != result.file_delete_state) { if (new_state != result.file_delete_state) {
sprintf(buf, "file_delete_state=%d", new_state); sprintf(buf, "file_delete_state=%d", new_state);
retval = result.update_field(buf); retval = result.update_field(buf);
if (retval) { if (retval) {
log_messages.printf(MSG_CRITICAL, log_messages.printf(MSG_CRITICAL,
@ -399,8 +402,8 @@ bool do_pass(bool retry_error) {
); );
did_something = true; did_something = true;
} }
} }
} }
return did_something; return did_something;
} }
@ -461,7 +464,7 @@ int delete_antique_files() {
strcpy(timestamp, time_to_string(fr.date_modified)); strcpy(timestamp, time_to_string(fr.date_modified));
log_messages.printf(MSG_DEBUG, log_messages.printf(MSG_DEBUG,
"deleting [antique %s] %s\n", "deleting [antique %s] %s\n",
timestamp, pathname timestamp, pathname
); );
if (unlink(pathname)) { if (unlink(pathname)) {
int save_error=errno; int save_error=errno;
@ -506,7 +509,7 @@ int add_antiques_to_list(int days) {
); );
sprintf(command, "find %s -type f -mtime +%d -follow | head -%d", config.upload_dir, days, antique_limit); sprintf(command, "find %s -type f -mtime +%d -follow | head -%d", config.upload_dir, days, antique_limit);
// Now execute the command, read output on a stream. We could use // Now execute the command, read output on a stream. We could use
// find to also exec a 'delete' command. But we want to log all // find to also exec a 'delete' command. But we want to log all
// file names into the log, and do lots of sanity checking, so // file names into the log, and do lots of sanity checking, so
@ -576,12 +579,12 @@ int add_antiques_to_list(int days) {
fr.name = fname_at_end; fr.name = fname_at_end;
files_to_delete.push_back(fr); files_to_delete.push_back(fr);
nfiles++; nfiles++;
} // while (fgets(single_line, 1024, fp)) { } // while (fgets(single_line, 1024, fp)) {
pclose(fp); pclose(fp);
log_messages.printf(MSG_DEBUG, log_messages.printf(MSG_DEBUG,
"Found %d antique files to delete\n", "Found %d antique files to delete\n",
nfiles nfiles
); );
files_to_delete.sort(); files_to_delete.sort();
files_to_delete.unique(); files_to_delete.unique();
@ -645,7 +648,7 @@ int main(int argc, char** argv) {
bool one_pass = false; bool one_pass = false;
int i; int i;
DB_APP app; DB_APP app;
check_stop_daemons(); check_stop_daemons();
*app.name='\0'; *app.name='\0';
@ -750,7 +753,7 @@ int main(int argc, char** argv) {
} }
if (*app.name && !appid) { if (*app.name && !appid) {
char buf[256]; char buf[256];
sprintf(buf, "where name='%s'", app.name); sprintf(buf, "where name='%s'", app.name);
retval = app.lookup(buf); retval = app.lookup(buf);
if (retval) { if (retval) {