Skip to content

Commit

Permalink
ZTS: Fix problem with zdb_objset_id test
Browse files Browse the repository at this point in the history
Use large numbers for datasets with numeric names to avoid name
and id collisions.  Sporadic test failures were observed when the
test would create $TESTPOOL/100 with an objset ID of 100.

Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Paul Zuchowski <[email protected]>
Closes #13087
  • Loading branch information
PaulZ-98 authored Feb 11, 2022
1 parent 4ea4a46 commit fe804dc
Showing 1 changed file with 16 additions and 14 deletions.
30 changes: 16 additions & 14 deletions tests/zfs-tests/tests/functional/cli_root/zdb/zdb_objset_id.ksh
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ write_count=8
blksize=131072
verify_runnable "global"
verify_disk_count "$DISKS" 2
hex_ds=$TESTPOOL/0x400000
num_ds=$TESTPOOL/100000

default_mirror_setup_noexit $DISKS
file_write -o create -w -f $init_data -b $blksize -c $write_count
Expand Down Expand Up @@ -111,23 +113,23 @@ if is_linux; then
"zdb -dddddd $TESTPOOL/$objset_hex failed $reason"
fi

log_must zfs create $TESTPOOL/0x400
log_must zfs create $TESTPOOL/100
output=$(zdb -d $TESTPOOL/0x400)
log_must zfs create $hex_ds
log_must zfs create $num_ds
output=$(zdb -d $hex_ds)
reason="($TESTPOOL/0x400 not in zdb output)"
echo $output |grep "$TESTPOOL/0x400" > /dev/null
echo $output |grep "$hex_ds" > /dev/null
(( $? != 0 )) && log_fail \
"zdb -d $TESTPOOL/0x400 failed $reason"
output=$(zdb -d $TESTPOOL/100)
reason="($TESTPOOL/100 not in zdb output)"
echo $output |grep "$TESTPOOL/100" > /dev/null
"zdb -d $hex_ds failed $reason"
output=$(zdb -d $num_ds)
reason="($num_ds not in zdb output)"
echo $output |grep "$num_ds" > /dev/null
(( $? != 0 )) && log_fail \
"zdb -d $TESTPOOL/100 failed $reason"
"zdb -d $num_ds failed $reason"

# force numeric interpretation, should fail
log_mustnot zdb -N $TESTPOOL/0x400
log_mustnot zdb -N $TESTPOOL/100
log_mustnot zdb -Nd $TESTPOOL/0x400
log_mustnot zdb -Nd $TESTPOOL/100
# force numeric interpretation, expect fail
log_mustnot zdb -N $hex_ds
log_mustnot zdb -N $num_ds
log_mustnot zdb -Nd $hex_ds
log_mustnot zdb -Nd $num_ds

log_pass "zdb -d <pool>/<objset ID> generates the correct names."

0 comments on commit fe804dc

Please sign in to comment.