From f015f3e8e383c37a88eabe6bea64fe3edfd21265 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 22 Sep 2022 14:03:31 -0400 Subject: [PATCH] comment --- ..._68a79183b04b99d4b00b363e3cbe3f3c._comment | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 doc/bugs/reports_file___34__modified__34___whenever_it_is_not/comment_12_68a79183b04b99d4b00b363e3cbe3f3c._comment diff --git a/doc/bugs/reports_file___34__modified__34___whenever_it_is_not/comment_12_68a79183b04b99d4b00b363e3cbe3f3c._comment b/doc/bugs/reports_file___34__modified__34___whenever_it_is_not/comment_12_68a79183b04b99d4b00b363e3cbe3f3c._comment new file mode 100644 index 0000000000..f8955e7b05 --- /dev/null +++ b/doc/bugs/reports_file___34__modified__34___whenever_it_is_not/comment_12_68a79183b04b99d4b00b363e3cbe3f3c._comment @@ -0,0 +1,32 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 12""" + date="2022-09-22T17:40:57Z" + content=""" +So, `git-annex transferrer`, after downloading the content, does handle +populating pointer files. So it calls restagePointerFile to register a cleanup +action. + +Whatever is making that process exit 1 must be preventing the cleanup +action from being run. And I think what that is, is that its stdout handle +gets closed at the same time its stdin handle is closed. I tried running +`git-annex transferrer` manually and feeding it a transfer request on +stdin. After its stdin was closed, it proceeded to send +`"om (recording state in git...)\n"` to stdout, and that would fail +with stdout already closed. + +Worse, I suspect there's another problem.. When a stall actually +is detected, git-annex kills the `git-annex transferrer` process that has +stalled. But suppose that process has already successfully downloaded some +content and populated pointer files. Killing it would prevent it from +running restagePointerFile on those. It seems that to solve this, +it would need to communicate back to the parent what pointer files need to +be restaged. (Which would also solve the exit 1 problem, although not +necessarily in the best way.) + +Also, I think that multiple processes running the restagePointerFile +cleanup action at the same time can be a problem, because one will +lock the index and the rest will fail to restage. Not what's happening +here, but with -J, there would be multiple `git-annex transferrer` +processes doing that at the same time at the end. +"""]]