Skip to content

Commit

Permalink
Improve the usage of h5clear
Browse files Browse the repository at this point in the history
- Added text to the usage of h5clear to explain that this tool is not for fixing
corrupted files but simply for helping in the inspection of the damage.
- Fixed expected output for testing the modified usage.

Fixed GH HDFGroup#3054
  • Loading branch information
bmribler committed Oct 23, 2023
1 parent b16808d commit b7de025
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 6 deletions.
11 changes: 9 additions & 2 deletions tools/src/misc/h5clear.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,13 @@ static struct h5_long_options l_opts[] = {
static void
usage(const char *prog)
{
fprintf(stdout, "h5clear clears superblock status flag field, removes metadata cache image, prints\n");
fprintf(stdout, "EOA and EOF, or sets EOA of a file. It is not a general repair tool and should not\n");
fprintf(stdout, "be used to fix file corruption. If a process doesn't shut down cleanly, the\n");
fprintf(stdout, "superblock mark can be left that prevents opening a file without SWMR. Then,\n");
fprintf(stdout, "h5clear can be used to remove this superblock mark so that the file can be inspected\n");
fprintf(stdout, "and appropriate actions can be taken.\n");
fprintf(stdout, "\n");
fprintf(stdout, "usage: %s [OPTIONS] file_name\n", prog);
fprintf(stdout, " OPTIONS\n");
fprintf(stdout, " -h, --help Print a usage message and exit\n");
Expand All @@ -73,8 +80,8 @@ usage(const char *prog)
fprintf(stdout,
" C is >= 0; C is optional and will default to 1M when not set.\n");
fprintf(stdout,
" This option helps to repair a crashed file where the stored EOA\n");
fprintf(stdout, " in the superblock is different from the actual EOF.\n");
" This option helps to repair a crashed SWMR file when the stored\n");
fprintf(stdout, " EOA in the superblock is different from the actual EOF.\n");
fprintf(stdout, " The file's EOA and EOF will be the same after applying\n");
fprintf(stdout, " this option to the file.\n");
fprintf(stdout, "\n");
Expand Down
11 changes: 9 additions & 2 deletions tools/test/misc/expected/h5clear_missing_file.ddl
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
h5clear clears superblock status flag field, removes metadata cache image, prints
EOA and EOF, or sets EOA of a file. It is not a general repair tool and should not
be used to fix file corruption. If a process doesn't shut down cleanly, the
superblock mark can be left that prevents opening a file without SWMR. Then,
h5clear can be used to remove this superblock mark so that the file can be inspected
and appropriate actions can be taken.

usage: h5clear [OPTIONS] file_name
OPTIONS
-h, --help Print a usage message and exit
Expand All @@ -8,8 +15,8 @@ usage: h5clear [OPTIONS] file_name
--increment=C Set the file's EOA to the maximum of (EOA, EOF) + C for
the file <file_name>.
C is >= 0; C is optional and will default to 1M when not set.
This option helps to repair a crashed file where the stored EOA
in the superblock is different from the actual EOF.
This option helps to repair a crashed SWMR file when the stored
EOA in the superblock is different from the actual EOF.
The file's EOA and EOF will be the same after applying
this option to the file.

Expand Down
11 changes: 9 additions & 2 deletions tools/test/misc/expected/h5clear_usage.ddl
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
h5clear clears superblock status flag field, removes metadata cache image, prints
EOA and EOF, or sets EOA of a file. It is not a general repair tool and should not
be used to fix file corruption. If a process doesn't shut down cleanly, the
superblock mark can be left that prevents opening a file without SWMR. Then,
h5clear can be used to remove this superblock mark so that the file can be inspected
and appropriate actions can be taken.

usage: h5clear [OPTIONS] file_name
OPTIONS
-h, --help Print a usage message and exit
Expand All @@ -8,8 +15,8 @@ usage: h5clear [OPTIONS] file_name
--increment=C Set the file's EOA to the maximum of (EOA, EOF) + C for
the file <file_name>.
C is >= 0; C is optional and will default to 1M when not set.
This option helps to repair a crashed file where the stored EOA
in the superblock is different from the actual EOF.
This option helps to repair a crashed SWMR file when the stored
EOA in the superblock is different from the actual EOF.
The file's EOA and EOF will be the same after applying
this option to the file.

Expand Down

0 comments on commit b7de025

Please sign in to comment.