Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions src/tests/ftest/daos_test/suite.py
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,22 @@ def test_daos_extend_simple(self):
"""
self.run_subtest()

def test_daos_extend_simple_13(self):
"""Jira ID: DAOS-1568

Test Description:
Run daos_test -B --subtests="13"

Use cases:
Core tests for daos_test

:avocado: tags=all,pr,daily_regression
:avocado: tags=hw,medium,provider
:avocado: tags=daos_test,daos_core_test,rebuild
:avocado: tags=DaosCoreTest,test_daos_extend_simple_13
"""
self.run_subtest()

def test_daos_rebuild_interactive(self):
"""Jira ID: DAOS-17358

Expand Down
5 changes: 5 additions & 0 deletions src/tests/ftest/daos_test/suite.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ timeouts:
test_daos_rebuild_simple: 2400
test_daos_drain_simple: 3720
test_daos_extend_simple: 3600
test_daos_extend_simple_13: 600
test_daos_rebuild_interactive: 1185
test_daos_oid_allocator: 640
test_daos_checksum: 500
Expand Down Expand Up @@ -105,6 +106,7 @@ daos_tests:
test_daos_rebuild_simple: 1
test_daos_drain_simple: 1
test_daos_extend_simple: 1
test_daos_extend_simple_13: 1
test_daos_rebuild_interactive: 1
test_daos_oid_allocator: 1
test_daos_checksum: 1
Expand Down Expand Up @@ -141,6 +143,7 @@ daos_tests:
test_daos_degraded_ec: DAOS_Degraded_EC
test_daos_dedup: DAOS_Dedup
test_daos_extend_simple: DAOS_Extend_Simple
test_daos_extend_simple_13: DAOS_Extend_Simple_13
test_daos_rebuild_interactive: DAOS_Rebuild_Interactive
test_daos_upgrade: DAOS_Upgrade
test_daos_pipeline: DAOS_Pipeline
Expand All @@ -165,6 +168,7 @@ daos_tests:
test_daos_rebuild_simple: v
test_daos_drain_simple: b
test_daos_extend_simple: B
test_daos_extend_simple_13: B
test_daos_rebuild_interactive: j
test_daos_oid_allocator: O
test_daos_checksum: z
Expand All @@ -182,6 +186,7 @@ daos_tests:
test_daos_rebuild_simple: -s3
test_daos_drain_simple: -s3
test_daos_extend_simple: -s3
test_daos_extend_simple_13: -s3 -u subtests="13"
test_daos_rebuild_interactive: -s3
test_daos_oid_allocator: -s5
stopped_ranks:
Expand Down
2 changes: 1 addition & 1 deletion src/tests/ftest/launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
from util.yaml_utils import YamlException

DEFAULT_LOGS_THRESHOLD = "2150M" # 2.1G
MAX_CI_REPETITIONS = 10
MAX_CI_REPETITIONS = 50


class LaunchError(Exception):
Expand Down
11 changes: 8 additions & 3 deletions src/tests/suite/daos_extend_common.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* (C) Copyright 2025 Hewlett Packard Enterprise Development LP
* (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*/
Expand Down Expand Up @@ -180,8 +180,13 @@ dfs_extend_internal(void **state, int opc, test_rebuild_cb_t extend_cb, bool kil
daos_debug_set_params(arg->group, -1, DMG_KEY_FAIL_LOC,
DAOS_REBUILD_TGT_SCAN_HANG | DAOS_FAIL_ALWAYS, 0, NULL);

arg->no_rebuild =
1; /* This has no effect for RB_OP_TYPE_ADD - so can this be removed here? */
/*
* For RB_OP_TYPE_ADD, rebuild_targets() still performs the extend and invokes
* rebuild_cb, but no_rebuild=1 disables its internal waits
* (test_rebuild_wait_to_start_next/test_rebuild_wait). Therefore,
* extend_single_pool_rank() returns without waiting for rebuild completion.
*/
arg->no_rebuild = 1;
extend_single_pool_rank(arg, extend_rank);
arg->no_rebuild = 0;

Expand Down
25 changes: 21 additions & 4 deletions src/tests/suite/daos_extend_simple.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/**
* (C) Copyright 2016-2023 Intel Corporation.
* (C) Copyright 2025 Hewlett Packard Enterprise Development LP
* (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*/
Expand Down Expand Up @@ -247,8 +247,17 @@ extend_cb_internal(void *arg)
int rc;
int i;

print_message("Extending, sleep 10, %s another rank %u, and start op %d (%s)\n", pre_op,
cb_arg->rank, opc, extend_opstrs[opc]);
/* Wait for first extend to start (immediate return expected since it's running).
* We want a post-effect: test_arg->pool.pool_info.pi_rebuild_st has the first rs_version.
* Then later we can wait for the second rebuild to start with another similar call.
*/
print_message("before waiting for rebuild to start, pmap_ver=%u, rs_version=%u\n",
test_arg->pool.pool_info.pi_map_ver,
test_arg->pool.pool_info.pi_rebuild_st.rs_version);
test_rebuild_wait_to_start_next(&test_arg, 1);
print_message("Extending (rs_version=%u), sleep 10, %s rank %u, and start op %d (%s)\n",
test_arg->pool.pool_info.pi_rebuild_st.rs_version, pre_op, cb_arg->rank, opc,
extend_opstrs[opc]);

sleep(10);

Expand Down Expand Up @@ -314,7 +323,15 @@ extend_cb_internal(void *arg)
break;
}

daos_debug_set_params(test_arg->group, -1, DMG_KEY_FAIL_LOC, 0, 0, NULL);
if (cb_arg->kill) {
print_message(
"extend_cb_internal: waiting for next rebuild start before clearing FI\n");
test_rebuild_wait_to_start_next(&test_arg, 1);
}

print_message("extend_cb_internal: clear FI via daos_debug_set_params()\n");
rc = daos_debug_set_params(test_arg->group, -1, DMG_KEY_FAIL_LOC, 0, 0, NULL);
assert_success(rc);

return 0;
}
Expand Down
Loading