Please describe the problem.
Spotted today in https://github.com/datalad/git-annex/runs/5135259845?check_suite_focus=true
export_import_subdir: FAIL (0.88s)
./Test/Framework.hs:57:
import of subdir failed (transcript follows)
list foo ok
and looked through the logs for jan and feb:
(git)smaug:/mnt/datasets/datalad/ci/git-annex[master]builds/2022
$> git -C 01 grep 'export_import_subdir: .*FAIL'
cron-20220127/build-ubuntu.yaml-556-85dd9355-failed/1_test-annex (normal, ubuntu-latest).txt:2022-01-27T02:55:39.3579843Z export_import_subdir: FAIL (0.88s)
cron-20220127/build-ubuntu.yaml-556-85dd9355-failed/test-annex (normal, ubuntu-latest)/7_Run tests.txt:2022-01-27T02:55:39.3579807Z export_import_subdir: FAIL (0.88s)
cron-20220129/build-ubuntu.yaml-559-85dd9355-failed/1_test-annex (normal, ubuntu-latest).txt:2022-01-29T02:54:18.7490762Z export_import_subdir: FAIL (0.77s)
cron-20220129/build-ubuntu.yaml-559-85dd9355-failed/test-annex (normal, ubuntu-latest)/7_Run tests.txt:2022-01-29T02:54:18.7490729Z export_import_subdir: FAIL (0.77s)
manual-20220127/build-ubuntu.yaml-557-85dd9355-failed/1_test-annex (normal, ubuntu-latest).txt:2022-01-27T20:19:09.6297697Z export_import_subdir: FAIL (1.24s)
manual-20220127/build-ubuntu.yaml-557-85dd9355-failed/test-annex (normal, ubuntu-latest)/7_Run tests.txt:2022-01-27T20:19:09.6297656Z export_import_subdir: FAIL (1.24s)
$> git -C 02 grep 'export_import_subdir: .*FAIL'
cron-20220202/build-ubuntu.yaml-563-85dd9355-failed/1_test-annex (normal, ubuntu-latest).txt:2022-02-02T02:55:00.5579720Z export_import_subdir: FAIL (0.74s)
cron-20220202/build-ubuntu.yaml-563-85dd9355-failed/test-annex (normal, ubuntu-latest)/7_Run tests.txt:2022-02-02T02:55:00.5579682Z export_import_subdir: FAIL (0.74s)
cron-20220207/build-ubuntu.yaml-568-85dd9355-failed/1_test-annex (normal, ubuntu-latest).txt:2022-02-07T02:59:10.1650377Z export_import_subdir: FAIL (1.00s)
cron-20220207/build-ubuntu.yaml-568-85dd9355-failed/test-annex (normal, ubuntu-latest)/7_Run tests.txt:2022-02-07T02:59:10.1650337Z export_import_subdir: FAIL (1.00s)
cron-20220210/build-ubuntu.yaml-571-85dd9355-failed/2_test-annex (crippled-tmp, ubuntu-latest).txt:2022-02-10T02:58:30.1065871Z export_import_subdir: FAIL (0.88s)
cron-20220210/build-ubuntu.yaml-571-85dd9355-failed/test-annex (crippled-tmp, ubuntu-latest)/7_Run tests.txt:2022-02-10T02:58:30.1065811Z export_import_subdir: FAIL (0.88s)
so it fails only some times and primarily in normal, not crippled-tmp setup.
This is odd because the test suite says that "git-annex import" failed, but its output "list foo ok" seems to indicate it succeeded. (There is no other output apparently.)
commitRemote outputs "update" when it starts, so it apparently never got that far. Seems to leave a failure in importKeys that somehow crashes it without an error message.
I can't think of a way that git-annex could crash without an error message, unless it was an external problem eg a SIGEGV or OOM killer or something like that.
I checked on smaug, and there have been no new failures of this type since this bug was reported.
each month is a submodule, so the most recent one seems to be from 2 weeks ago
and there were a few in march (do with
-C 03
)There is now a later failure:
Which was git-annex version 10.20220525+git3-gf69c6a360. Unfortunately that means that the fix for test suite unsafe use of setEnv did not fix this.
Also, the failures go back to before test suite parellization.
See also some conflict resolution tests fail some time which has a similar apparent crash in the middle of a git-annex command w/o an error.
Occurs to me that it could be that a bug in processTranscript is preventing the test framework from showing all the output of a git-annex command when it has exited unsuccessfully.
In both this and the other seemingly similar bug, the transcript ends after a line of output, with another expected line of output not showing up.
Since processTranscript uses hGetLineUntilExitOrEOF, a bug in that could mean it stops reading buffered output between lines like that.
But, I have not been able to find such a bug in hGetLineUntilExitOrEOF so far. By either trying a process that buffers multiline output before exiting, or by inspection. And even if it were buggy, something would still be making the
git-annex import
command fail unexpectedly.