hdf5
hdf5 copied to clipboard
[BUG] accum test fails on macOS 12
19: Testing simple freeing metadata accumulator PASSED 19: Testing large metadata I/O operations PASSED 19: Testing random writes to accumulator PASSED 19: Testing SWMR write of large metadata: with latest format FAILED 19: at /Users/runner/work/hdf5/hdf5/test/accum.c:2292 in test_swmr_write_big()... 19: child process exited abnormally 19: Testing SWMR write of large metadata: with non-latest-format FAILED 19: at /Users/runner/work/hdf5/hdf5/test/accum.c:2292 in test_swmr_write_big()... 19: child process exited abnormally 19: *** TESTS FAILED *** 19: The relevant code in accum.c (function test_swmr_write_big) that triggers the error: { pid_t pid; /* Process ID / int status; / Status returned from child process */
/* Fork child process to verify that the data at [1024, 2014] does get written to disk */
if ((pid = HDfork()) < 0) {
HDperror("fork");
FAIL_STACK_ERROR;
}
else if (0 == pid) { /* Child process */
/* By convention, argv[0] tells the name of program invoked.
*
* execv on NetBSD 8 will actually return EFAULT if there is a
* NULL at argv[0], so we follow the convention unconditionally.
*/
char swmr_reader[] = SWMR_READER;
char *const new_argv[] = {swmr_reader, NULL};
/* Run the reader */
status = HDexecv(SWMR_READER, new_argv);
HDprintf("errno from execv = %s\n", HDstrerror(errno));
FAIL_STACK_ERROR;
} /* end if */
/* Parent process -- wait for the child process to complete */
while (pid != HDwaitpid(pid, &status, 0))
/*void*/;
/* Check if child process terminates normally and its return value */
if (WIFEXITED(status) && !WEXITSTATUS(status))
process_success = TRUE;
}
This test passes the CI when the macOS is 11.7.1 and fails when the CI uses macOS 12.6.1
Duplicate of #1289?
@derobins can it be closed as well with your recent commit?
Fixed in #2999