Skip to content

Commit

Permalink
Merge d0716cc into 506c0c4
Browse files Browse the repository at this point in the history
  • Loading branch information
milroy authored Jul 11, 2023
2 parents 506c0c4 + d0716cc commit c961577
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
11 changes: 11 additions & 0 deletions resource/traversers/dfu_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,17 @@ int dfu_impl_t::by_excl (const jobmeta_t &meta, const std::string &s, vtx_t u,
// requested, we check the validity of the visiting vertex using
// its x_checker planner.
if (exclusive_in || resource.exclusive == Jobspec::tristate_t::TRUE) {
// If it's exclusive, the traversal type is an allocation, and
// there are no other allocations on the vertex, then proceed. This
// check prevents the observed multiple booking issue, where
// resources with jobs running beyond their walltime can be
// allocated to another job since the planner considers them
// available. Note: if Fluxion needs to support shared
// resources at the leaf level this check will not catch
// multiple booking.
if (meta.alloc_type == jobmeta_t::alloc_type_t::AT_ALLOC &&
!(*m_graph)[u].schedule.allocations.empty ())
goto done;
errno = 0;
p = (*m_graph)[u].idata.x_checker;
njobs = planner_avail_resources_during (p, at, duration);
Expand Down
4 changes: 2 additions & 2 deletions t/t1024-alloc-check.t
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ test_expect_success 'submit node-exclusive jobs that exceed their time limit' '
test_expect_success 'some jobs received timeout exception' '
grep "job.exception type=timeout" joberr
'
test_expect_failure 'no jobs received alloc-check exception' '
test_expect_success 'no jobs received alloc-check exception' '
test_must_fail grep "job.exception type=alloc-check" joberr
'
test_expect_success 'clean up' '
Expand All @@ -57,7 +57,7 @@ test_expect_success 'submit non-exclusive jobs that exceed their time limit' '
test_expect_success 'some jobs received timeout exception' '
grep "job.exception type=timeout" joberr2
'
test_expect_failure 'no jobs received alloc-check exception' '
test_expect_success 'no jobs received alloc-check exception' '
test_must_fail grep "job.exception type=alloc-check" joberr2
'
test_expect_success 'clean up' '
Expand Down

0 comments on commit c961577

Please sign in to comment.