Bug#900173: git-annex: internal error: evacuate: strange closure type 4325404
Anthony DeRobertis
anthony at derobert.net
Sun May 27 22:46:25 BST 2018
On 05/27/2018 05:24 PM, Joey Hess wrote:
> Anthony DeRobertis wrote:
>> So right now, it's just refusing the run in the background :-/
> If you're able to reproduce the bug on demand that way,
> that could point to the way git-annex daemonizes itself with
> forkProcess. Which from its documentation:
>
> forkProcess comes with a giant warning: since any other running threads
> are not copied into the child process, it's easy to go wrong: e.g. by
> accessing some shared resource that was held by another thread in the
> parent.
>
> git-annex tries to use forkProcess in a safe way, but that's not
> especially well-defined or easy to check.
>
> You might try running git-annex watch instead of git-annex assistant,
> since they both daemonize but the latter has a simpler code path.
>
I stopped the (foreground) assistant with "git annex assistant --stop";
then ran "git annex assistant" (worked). Then stopped it again. Then
started (failed). Tried another few times, all failed. I tried a few
"git annex watch" followed by "git annex watch --stop" (after getting
the "(started...)" message in the log — all of those worked. Tried a few
more "git annex assistant", all failed.
So, absent the one "git annex assistant" which worked, those all failed.
And all of the "git annex watch" worked. So does starting the assistant
with "git annex assistant --foreground". (And maybe that's why the
webapp was working for me earlier too — it doesn't fork...)
Honestly, if that code is a nightmare... you could just remove it. "git
annex assistant --foreground &" is easy enough. And presumably entirely
avoids the forkProcess issue there.
More information about the Pkg-haskell-maintainers
mailing list