diff --git a/NEWS b/NEWS index e214f7edbab59b0a99536cddd86456153e33c22a..a2551cb2b7f98c18953aabf5f7439b7362670773 100644 --- a/NEWS +++ b/NEWS @@ -205,6 +205,11 @@ documents those changes that are of interest to users and admins. -- Fix bug when updating a pending job's nice value after explicitly setting it's priority. -- We no longer add blank QOS' + -- Fix task affinity for systems running fastschedule!=0 and they have less + resources configured than in existence. + -- Slurm.pm loads without warning now on AIX systems + -- modified pmi code to do strncpy's on the correct len + -- Fix for filling in a qos structure to return SLURM_SUCCESS on success. * Changes in SLURM 2.0.4 ======================== diff --git a/contribs/perlapi/libslurm-perl/Slurm.pm b/contribs/perlapi/libslurm-perl/Slurm.pm index 3a7416a7fdb26f6e7eafcc4790e27c08aca3aa26..a4d55b6e7c8adbf655977008d699d8434e19137d 100644 --- a/contribs/perlapi/libslurm-perl/Slurm.pm +++ b/contribs/perlapi/libslurm-perl/Slurm.pm @@ -222,7 +222,7 @@ require DynaLoader; push @ISA, 'DynaLoader'; bootstrap Slurm $VERSION; -sub dl_load_flags {0x01} +sub dl_load_flags { if($^O eq 'aix') { 0x00 } else { 0x01 }} ############################################################ # Preloaded methods go here. diff --git a/slurm.spec b/slurm.spec index ba19d515e5a645917c1eca479457104c9cf63369..61a65082156c48cf5b67efd2a7a876a17a21c68a 100644 --- a/slurm.spec +++ b/slurm.spec @@ -407,6 +407,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/slurm/src/* %{_mandir}/man1/* %{_mandir}/man5/slurm.* +%{_mandir}/man5/topology.* %{_mandir}/man5/wiki.* %{_mandir}/man8/slurmctld.* %{_mandir}/man8/slurmd.* diff --git a/src/api/pmi.c b/src/api/pmi.c index 549226efa9478fc1ca864fc553656a5d40bf3b2a..87082bef8e69df2e9fe42e0fbbe4d4ae138c7afb 100644 --- a/src/api/pmi.c +++ b/src/api/pmi.c @@ -1141,8 +1141,9 @@ static int _kvs_put( const char kvsname[], const char key[], const char value[], rc = PMI_FAIL; /* malloc error */ else { rc = PMI_SUCCESS; - strncpy(kvs_recs[i].kvs_values[j], value, PMI_MAX_VAL_LEN); - strncpy(kvs_recs[i].kvs_keys[j], key, PMI_MAX_KEY_LEN); + strncpy(kvs_recs[i].kvs_values[j], value, + PMI_MAX_VAL_LEN); + strncpy(kvs_recs[i].kvs_keys[j], key, PMI_MAX_KEY_LEN); } goto fini; } @@ -1307,13 +1308,14 @@ int PMI_KVS_Get( const char kvsname[], const char key[], char value[], int lengt if (strncmp(kvs_recs[i].kvs_name, kvsname, PMI_MAX_KVSNAME_LEN)) continue; for (j=0; j<kvs_recs[i].kvs_cnt; j++) { - if (strncmp(kvs_recs[i].kvs_keys[j], key, PMI_MAX_KEY_LEN)) + if (strncmp(kvs_recs[i].kvs_keys[j], key, + PMI_MAX_KEY_LEN)) continue; if (strlen(kvs_recs[i].kvs_values[j]) > (length-1)) rc = PMI_ERR_INVALID_LENGTH; else { strncpy(value, kvs_recs[i].kvs_values[j], - PMI_MAX_VAL_LEN); + length); rc = PMI_SUCCESS; } goto fini; @@ -1390,9 +1392,10 @@ int PMI_KVS_Iter_first(const char kvsname[], char key[], int key_len, char val[] rc = PMI_ERR_INVALID_VAL_LENGTH; } else { strncpy(key, kvs_recs[i].kvs_keys[kvs_recs[i].kvs_inx], - PMI_MAX_KEY_LEN); - strncpy(val, kvs_recs[i].kvs_values[kvs_recs[i].kvs_inx], - PMI_MAX_VAL_LEN); + key_len); + strncpy(val, + kvs_recs[i].kvs_values[kvs_recs[i].kvs_inx], + val_len); rc = PMI_SUCCESS; } goto fini; @@ -1467,9 +1470,10 @@ int PMI_KVS_Iter_next(const char kvsname[], char key[], int key_len, rc = PMI_ERR_INVALID_VAL_LENGTH; } else { strncpy(key, kvs_recs[i].kvs_keys[kvs_recs[i].kvs_inx], - PMI_MAX_KEY_LEN); - strncpy(val, kvs_recs[i].kvs_values[kvs_recs[i].kvs_inx], - PMI_MAX_VAL_LEN); + key_len); + strncpy(val, + kvs_recs[i].kvs_values[kvs_recs[i].kvs_inx], + val_len); rc = PMI_SUCCESS; } goto fini; @@ -1569,7 +1573,8 @@ specific arguments in the args array, this function may parse more than one argument as long as the options are contiguous in the args array. @*/ -int PMI_Parse_option(int num_args, char *args[], int *num_parsed, PMI_keyval_t **keyvalp, +int PMI_Parse_option(int num_args, char *args[], int *num_parsed, + PMI_keyval_t **keyvalp, int *size) { int i, n, s, len; diff --git a/src/common/assoc_mgr.c b/src/common/assoc_mgr.c index d8f9d7fca4afa2efc19f998a4d4cea96f9bdd387..abb90f607c4c4a239f5acd728d163fac8abe99ce 100644 --- a/src/common/assoc_mgr.c +++ b/src/common/assoc_mgr.c @@ -1210,7 +1210,7 @@ extern int assoc_mgr_fill_in_qos(void *db_conn, acct_qos_rec_t *qos, qos->user_limit_list = found_qos->user_limit_list; slurm_mutex_unlock(&assoc_mgr_qos_lock); - return SLURM_ERROR; + return SLURM_SUCCESS; } extern int assoc_mgr_fill_in_wckey(void *db_conn, acct_wckey_rec_t *wckey,