diff --git a/src/ray/gcs/gcs_server/gcs_placement_group_manager.cc b/src/ray/gcs/gcs_server/gcs_placement_group_manager.cc index 888716fa8..c4d16c993 100644 --- a/src/ray/gcs/gcs_server/gcs_placement_group_manager.cc +++ b/src/ray/gcs/gcs_server/gcs_placement_group_manager.cc @@ -126,7 +126,8 @@ void GcsPlacementGroupManager::OnPlacementGroupCreationFailed( // registered. auto state = placement_group->GetState(); RAY_CHECK(state == rpc::PlacementGroupTableData::RESCHEDULING || - state == rpc::PlacementGroupTableData::PENDING) + state == rpc::PlacementGroupTableData::PENDING || + state == rpc::PlacementGroupTableData::REMOVED) << "State: " << state; if (state == rpc::PlacementGroupTableData::RESCHEDULING) { // NOTE: If a node is dead, the placement group scheduler should try to recover the diff --git a/src/ray/gcs/gcs_server/test/gcs_placement_group_manager_test.cc b/src/ray/gcs/gcs_server/test/gcs_placement_group_manager_test.cc index 65c8c4206..123c2875e 100644 --- a/src/ray/gcs/gcs_server/test/gcs_placement_group_manager_test.cc +++ b/src/ray/gcs/gcs_server/test/gcs_placement_group_manager_test.cc @@ -237,6 +237,7 @@ TEST_F(GcsPlacementGroupManagerTest, TestRemovingLeasingPlacementGroup) { gcs_placement_group_manager_->RemovePlacementGroup(placement_group_id, [](Status status) {}); ASSERT_EQ(placement_group->GetState(), rpc::PlacementGroupTableData::REMOVED); + gcs_placement_group_manager_->OnPlacementGroupCreationFailed(placement_group); // Make sure it is not rescheduled gcs_placement_group_manager_->SchedulePendingPlacementGroups();