Thread (2 messages) 2 messages, 2 authors, 2019-11-25

Re: [PATCH 0/4] On Windows, limit which file handles are inherited by spawned child processes

From: Johannes Schindelin <hidden>
Date: 2019-11-25 16:29:30

Hi Junio,

On Mon, 25 Nov 2019, Junio C Hamano wrote:
"Johannes Schindelin via GitGitGadget" [off-list ref]
writes:
quoted
The problem to be solved: files cannot be deleted on Windows when even one
process has an open file handle to it. So when a process opens a temporary
file, then spawns a child process that inherits that file handle by mistake,
and then the parent process tries to delete the temporary file while the
child process is still running, the deletion will fail. (This description is
slightly simplified, see the commit message "spawned processes need to
inherit only standard handles" for more detail.)
Makes me wonder if we should be marking these fds with FD_CLOEXEC to
solve the issue in a way that is platform agnostic.
I would like that a lot.

Having said that, it is too easy to miss when a patch forgets to do that
and when the contributor only tests on Linux. So I really also would like
to keep the current patch in addition.

Thanks,
Dscho
It may turn out that we'd be better off to make it an explicit choice by
the parent when it leaves a FD open while spawning a child process (and
by that spawned child when it runs another executable---but I undertand
that it is a single-step operation, not a two-step one, on Windows).

In any case, synchronizing the differences in compat/ between our
trees is good.  Queued.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help