diff --git a/client/cs_apps.C b/client/cs_apps.C index 5221a79e3d..b95be2cc45 100644 --- a/client/cs_apps.C +++ b/client/cs_apps.C @@ -30,6 +30,7 @@ // int CLIENT_STATE::make_slot_dirs() { unsigned int i; + printf("num slots is: %d\n",nslots); for (i=0; istate = PROCESS_COULDNT_START; atp->result->active_task_state = PROCESS_COULDNT_START; - report_project_error(*(atp->result),retval,"Couldn't start the app for this result.\n",CLIENT_COMPUTING); } action = true; diff --git a/doc/protocol.html b/doc/protocol.html index ab08d8d5a9..01924126dd 100644 --- a/doc/protocol.html +++ b/doc/protocol.html @@ -97,12 +97,41 @@ Request elements include </host_info> <result> <name>uc_wu_0</name> - <exit_status>0</exit_status> - <cpu_time>0.020000</cpu_time> - <output_file> - <md5_cksum>3f7b90793a0175ad0bda68684e8bd136</md5_cksum> + <client_state>4</client_state> + <final_cpu_time>0.020000</final_cpu_time> + <stderr_out> + The following fields are used to report errors to the server, They + are not present if there is no error while downloading, computing + or uploading files for this result. + [ <message> some text describing the error </message>] ] + The state of the active_task assigned to compute this result at + the time of the error + [ <active_task_state>0</active_task_state> ] + The exit_status of the application running the computation for the result + [ <exit_status>0</exit_status> ] + The signal raised by the application if any. + [ <signal>0</signal> ] + If the error corresponds to downloading input files for the + work_unit for this result, then: + <download_error> + <file_name>input</file_name> + <error_code>-114</error_code> + </download_error> + If the error corresponds to uploading outfiles for this results + then: + <upload_error> + <file_name>output</file_name> + <error_code>-114</error_code> + </upload_error> + the std_err output of the application, if any, goes here. + </stderr_out> + <file_info> <file_name>uc_wu_0_0</file_name> - </output_file> + <md5_cksum>3f7b90793a0175ad0bda68684e8bd136</md5_cksum> + <nbytes>54691.0000000</nbytes> + <max_nbytes>1000000.00000</max_nbytes> + <url>http://localhost/hamid_cgi/test/file_upload_handler</url> + </file_info> </result> diff --git a/html/ops/db.inc b/html/ops/db.inc index 26e7c2217d..57c1cb1a33 100644 --- a/html/ops/db.inc +++ b/html/ops/db.inc @@ -177,7 +177,7 @@ function show_result($result,$show_xml_docs,$show_stderr,$show_times) { row("state", res_state_string($result->server_state)); row("Deadline", time_str($result->report_deadline)); row("Host ID", "hostid>" . host_name_by_id($result->hostid) . ""); - row("Client State", $result->client_state); + row("Client_state: ", $result->client_state); row("CPU time", $result->cpu_time); if ($show_xml_docs) { row("XML doc in", "
".htmlspecialchars($result->xml_doc_in)."
"); diff --git a/sched/result_retry.C b/sched/result_retry.C index 4a3b6dd2cc..d92c8e9bd3 100644 --- a/sched/result_retry.C +++ b/sched/result_retry.C @@ -160,9 +160,9 @@ bool do_pass(APP& app) { // while (!db_workunit_enum_retry_check_time(wu)) { vector results; - + did_something = true; - + printf("inside while loop of result_retry"); // if this WU has a canonical result, we're done // (this normally doesn't happen since the retry check time // is zeroed when canonical result found, but just in case). @@ -230,7 +230,9 @@ bool do_pass(APP& app) { // if (nredundancy > ndone) { n = nredundancy - ndone; - for (i=0; iproject_dir/cgi; ./feeder -asynch > feeder_out"); } + function start_result_retry($app){ + PassThru("cd $this->project_dir/cgi; ./result_retry -app $app->name -nerror 10 -ndet 10 -nredundancy 10 -asynch > result_retry_out"); + } + + function start_make_work($work){ $result_template_path = realpath($work->result_template); PassThru("cd $this->project_dir/cgi; ./make_work -asynch -result_template $result_template_path -wu_name $work->wu_template > make_work_out"); diff --git a/test/test_uc.php b/test/test_uc.php index 442b12170b..10037d4099 100644 --- a/test/test_uc.php +++ b/test/test_uc.php @@ -34,7 +34,7 @@ $work->wu_template = "uc_wu"; $work->result_template = "uc_result"; $work->redundancy = 2; - $work->delay_bound = 10; + $work->delay_bound = 2; array_push($work->input_files, "input"); $work->install($project);