diff --git a/doc/html/configurator.html.in b/doc/html/configurator.html.in index cd00b6303dfd5bbc0b140b6a48f439501e738d11..f632e7543d76f1a48518e801cad298c4a86dec18 100644 --- a/doc/html/configurator.html.in +++ b/doc/html/configurator.html.in @@ -704,7 +704,8 @@ log goes to syslog, string "%h" in name gets replaced with hostname) <P> <H2>Job Completion Logging</H2> -Define the job completion logging mechanism to be used.<BR> +Define the job completion logging mechanism to be used. SlurmDBD and None are +recommended. The PGSQL plugin is not fully supported. <BR> Select one value for <B>JobCompType</B>:<BR> <input type="radio" name="job_comp_type" value="none" checked> <B>None</B>: No job completion logging<BR> @@ -762,7 +763,7 @@ save the data from many Slurm managed clusters into a common database<BR> <input type="radio" name="accounting_storage_type" value="mysql"> <B>MySQL</B>: Write job accounting to a MySQL database<BR> <input type="radio" name="accounting_storage_type" value="pgsql"> <B>PGSQL</B>: -Write job accounting to a PostreSQL database<BR> +Write job accounting to a PostreSQL database (not fully supported)<BR> <input type="radio" name="accounting_storage_type" value="slurmdbd"> <B>SlurmDBD</B>: Write job accounting to Slurm DBD (database daemon) which can securely save the data from many Slurm managed clusters into a common database<BR> diff --git a/doc/html/team.shtml b/doc/html/team.shtml index 7baa3cc612e108717b6ac5904ff9256f3b276742..1e17c6048b623c5d1b0de5137fed3c049211714b 100644 --- a/doc/html/team.shtml +++ b/doc/html/team.shtml @@ -26,6 +26,7 @@ organizations. The current SLURM development staff includes: </p> <li>Daniel Christians (HP)</li> <li>Gilles Civario (Bull)</li> <li>Chuck Clouston (Bull)</li> +<li>Yuri D'Ella</li> <li>Joseph Donaghy (LLNL)</li> <li>Chris Dunlap (LLNL)</li> <li>Joey Ekstrom (LLNL/Bringham Young University)</li> diff --git a/doc/man/man1/sacct.1 b/doc/man/man1/sacct.1 index fcde9e4ad9e1b5c982103d7976b2dbf9ced55953..ae9ebf300e291a199e95ac2d01191ce45388e296 100644 --- a/doc/man/man1/sacct.1 +++ b/doc/man/man1/sacct.1 @@ -674,6 +674,10 @@ the displayed state using the "%NUMBER" format modifier described earlier. The time and date stamp (in Universal Time Coordinated, UTC) the job was submitted. The format of the output is identical to that of the end field. +NOTE: If a job is requeued, the submit time is reset. To obtain the +original submit time it is necessary to use the \-D or \-\-duplicate option +to display all duplicate entries for a job. + .TP \f3suspended\fP How long the job was suspended for. diff --git a/doc/man/man1/scontrol.1 b/doc/man/man1/scontrol.1 index 6e1f5e2767609ffcbac30550f2305c4bad6c15b9..9ab1c9d10f0feef6a65c58d919d8a1f8c8492cf4 100644 --- a/doc/man/man1/scontrol.1 +++ b/doc/man/man1/scontrol.1 @@ -725,6 +725,17 @@ Time the job ran prior to last suspend. \fIReason\fP The reason job is not running: e.g., waiting "Resources". .TP +\fISubmitTime\fP +The time and date stamp (in Universal Time Coordiated, UTC) +the job was submitted. The format of the output is identical +to that of the EndTime field. + +NOTE: If a job is requeued, the submit time is reset. +To obtain the original submit time it is necessary +to use the "sacct \-j <job_id[.<step_id>]" command also +designating the \-D or \-\-duplicate option to display all +duplicate entries for a job. +.TP \fISuspendTime\fP Time the job was last suspended or resumed. .TP diff --git a/src/plugins/accounting_storage/pgsql/as_pg_job.c b/src/plugins/accounting_storage/pgsql/as_pg_job.c index d050282eeb86087ba934667d6e61098980b8ee10..fa84e6b2d5ba8bf192d765be1b36519757d00625 100644 --- a/src/plugins/accounting_storage/pgsql/as_pg_job.c +++ b/src/plugins/accounting_storage/pgsql/as_pg_job.c @@ -1013,7 +1013,7 @@ js_pg_suspend(pgsql_conn_t *pg_conn, uint32_t old_db_inx, int rc = SLURM_SUCCESS; uint32_t job_db_inx; - if(check_db_connection(pg_conn) != SLURM_SUCCESS) + if (check_db_connection(pg_conn) != SLURM_SUCCESS) return ESLURM_DB_CONNECTION; if (! cluster_in_db(pg_conn, pg_conn->cluster_name) ) { @@ -1024,8 +1024,8 @@ js_pg_suspend(pgsql_conn_t *pg_conn, uint32_t old_db_inx, if (_check_job_db_index(pg_conn, job_ptr) != SLURM_SUCCESS) return SLURM_SUCCESS; - if(IS_JOB_RESIZING(job_ptr)) { - if(!old_db_inx) { + if (IS_JOB_RESIZING(job_ptr)) { + if (!old_db_inx) { error("No old db inx given for job %u cluster %s, " "can't update suspend table.", job_ptr->job_id, pg_conn->cluster_name); @@ -1041,14 +1041,14 @@ js_pg_suspend(pgsql_conn_t *pg_conn, uint32_t old_db_inx, } else job_db_inx = job_ptr->db_index; - query = xstrdup_printf( + xstrfmtcat(query, "UPDATE %s.%s SET time_suspended=%d-time_suspended, state=%d " - "WHERE job_db_inx=%d", pg_conn->cluster_name, job_table, + "WHERE job_db_inx=%d;", pg_conn->cluster_name, job_table, (int)job_ptr->suspend_time, (int)(job_ptr->job_state & JOB_STATE_BASE), (int)job_ptr->db_index); - if(IS_JOB_SUSPENDED(job_ptr)) + if (IS_JOB_SUSPENDED(job_ptr)) xstrfmtcat(query, "INSERT INTO %s.%s (job_db_inx, id_assoc, " " time_start, time_end) VALUES (%d, %d, %ld, 0);", @@ -1064,10 +1064,10 @@ js_pg_suspend(pgsql_conn_t *pg_conn, uint32_t old_db_inx, job_ptr->db_index); rc = DEF_QUERY_RET_RC; - if(rc == SLURM_SUCCESS) { + if (rc == SLURM_SUCCESS) { query = xstrdup_printf( "UPDATE %s.%s SET time_suspended=%d-time_suspended, " - "state=%d WHERE job_db_inx=%d and time_end=0", + "state=%d WHERE job_db_inx=%d and time_end=0;", pg_conn->cluster_name, step_table, (int)job_ptr->suspend_time, (int)job_ptr->job_state, (int)job_ptr->db_index);