Skip to content

Commit 39c0a49

Browse files
committed
BF: CS-1162 jobs with high job ids (> 2^31) have an incorrect key in berkeleydb spooling
1 parent 9736b7e commit 39c0a49

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

source/libs/spool/berkeleydb/sge_bdb.cc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,7 +1006,7 @@ spool_berkeleydb_write_pe_task(lList **answer_list, bdb_info info,
10061006
sge_dstring_init(&dbkey_dstring,
10071007
dbkey_buffer, sizeof(dbkey_buffer));
10081008

1009-
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%s:%8d.%8d %s",
1009+
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%s:%10" sge_fuu32 ".%10" sge_fuu32 " %s",
10101010
object_type_get_name(SGE_TYPE_PETASK),
10111011
job_id, ja_task_id, pe_task_id);
10121012

@@ -1030,7 +1030,7 @@ spool_berkeleydb_write_ja_task(lList **answer_list, bdb_info info,
10301030
sge_dstring_init(&dbkey_dstring,
10311031
dbkey_buffer, sizeof(dbkey_buffer));
10321032

1033-
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%s:%8d.%8d",
1033+
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%s:%10" sge_fuu32 ".%10" sge_fuu32,
10341034
object_type_get_name(SGE_TYPE_JATASK),
10351035
job_id, ja_task_id);
10361036

@@ -1056,7 +1056,7 @@ spool_berkeleydb_write_job(lList **answer_list, bdb_info info,
10561056
sge_dstring_init(&dbkey_dstring,
10571057
dbkey_buffer, sizeof(dbkey_buffer));
10581058

1059-
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%s:%8d",
1059+
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%s:%10" sge_fuu32,
10601060
object_type_get_name(SGE_TYPE_JOB),
10611061
job_id);
10621062

@@ -1280,7 +1280,7 @@ spool_berkeleydb_delete_object(lList **answer_list, bdb_info info,
12801280
* Deletes one or multiple pe_tasks specified by key.
12811281
*
12821282
* The key has the form "<job_id>.<ja_task_id> <pe_task_id>" formatted as
1283-
* "%8d.%8d %s".
1283+
* "%10d.%10d %s".
12841284
* If sub_objects = true, it can be used as pattern, typically used to
12851285
* delete all pe_tasks of a certain ja_task by setting key to
12861286
* "<job_id>.<ja_task_id>" or just "<job_id>" to delete all pe_tasks
@@ -1334,7 +1334,7 @@ spool_berkeleydb_delete_pe_task(lList **answer_list, bdb_info info,
13341334
* Deletes one or multiple ja_tasks specified by key.
13351335
* The ja_task(s) and all dependent pe_tasks are deleted.
13361336
*
1337-
* The key has the form "<job_id>.<ja_task_id>" formatted as "%8d.%8d".
1337+
* The key has the form "<job_id>.<ja_task_id>" formatted as "%10d.%10d".
13381338
* If sub_objects = true, it can be used as pattern, typically used to
13391339
* delete all ja_tasks of a certain job by setting key to "<job_id>.".
13401340
*
@@ -1389,7 +1389,7 @@ spool_berkeleydb_delete_ja_task(lList **answer_list, bdb_info info,
13891389
*
13901390
* FUNCTION
13911391
* Deletes the given job and all its ja_tasks.
1392-
* Key usually will be the unique job id formatted with %8d, but the function
1392+
* Key usually will be the unique job id formatted with %10d, but the function
13931393
* allows for some sort of pattern matching by specifying only parts of the
13941394
* jobid, e.g. the key "00001" will delete all jobs from 1000 to 1999,
13951395
* an empty string will mean "delete all jobs", if sub_objects = true.

source/libs/spool/berkeleydb/sge_spooling_berkeleydb.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,7 @@ spool_berkeleydb_default_list_func(lList **answer_list,
621621
lList *task_list = nullptr;
622622
u_long32 job_id = lGetUlong(job, JB_job_number);
623623

624-
key = sge_dstring_sprintf(&key_dstring, "%s:%8d.", ja_task_table, job_id);
624+
key = sge_dstring_sprintf(&key_dstring, "%s:%10" sge_fuu32 ".", ja_task_table, job_id);
625625
ret = spool_berkeleydb_read_list(answer_list, info, BDB_JOB_DB, &task_list, JAT_Type, key);
626626
/* reading ja_tasks succeeded */
627627
if (ret) {
@@ -636,7 +636,7 @@ spool_berkeleydb_default_list_func(lList **answer_list,
636636
for_each_rw(ja_task, task_list) {
637637
lList *pe_task_list = nullptr;
638638
u_long32 ja_task_id = lGetUlong(ja_task, JAT_task_number);
639-
key = sge_dstring_sprintf(&key_dstring, "%s:%8d.%8d.", pe_task_table, job_id, ja_task_id);
639+
key = sge_dstring_sprintf(&key_dstring, "%s:%10" sge_fuu32 ".%10" sge_fuu32 ".", pe_task_table, job_id, ja_task_id);
640640

641641
ret = spool_berkeleydb_read_list(answer_list, info, BDB_JOB_DB, &pe_task_list, PET_Type, key);
642642
if (ret) {
@@ -1127,17 +1127,17 @@ spool_berkeleydb_default_delete_func(lList **answer_list,
11271127
job_parse_key(dup, &job_id, &ja_task_id, &pe_task_id, &only_job);
11281128

11291129
if (pe_task_id != nullptr) {
1130-
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%8d.%8d %s",
1130+
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%10" sge_fuu32 ".%10" sge_fuu32 " %s",
11311131
job_id, ja_task_id, pe_task_id);
11321132
ret = spool_berkeleydb_delete_pe_task(answer_list, info,
11331133
dbkey, false);
11341134
} else if (ja_task_id != 0) {
1135-
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%8d.%8d",
1135+
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%10" sge_fuu32 ".%10" sge_fuu32,
11361136
job_id, ja_task_id);
11371137
ret = spool_berkeleydb_delete_ja_task(answer_list, info,
11381138
dbkey, false);
11391139
} else {
1140-
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%8d",
1140+
dbkey = sge_dstring_sprintf(&dbkey_dstring, "%10" sge_fuu32,
11411141
job_id);
11421142
ret = spool_berkeleydb_delete_job(answer_list, info,
11431143
dbkey, false);

0 commit comments

Comments
 (0)