killpg(pgid, 0) fails if the process is in the middle of spawnve()

Corinna Vinschen corinna-cygwin@cygwin.com
Thu May 19 07:46:05 GMT 2022


On May 19 13:51, Jun T wrote:
> 
> > 2022/05/18 23:54, Corinna Vinschen <corinna-cygwin@cygwin.com> wrote:
> > 
> > For a start, can you try the above patch? 
> 
> Thanks for a quick response. The patch seems to solve the problem.
> Of course there is a possibility that it happens with very low probability,
> but I haven't get the problem by running 'cmd | less' many times, say
> fifty times or so.
> 
> I didn't notice any bad side effects, and I guess the probability is
> very low if it ever happens (so not easy to detect it).
> # I tried running 'ls | less' several times while running 
> #   while true; do ps; done
> # in another terminal, but didn't get duplicated processes.

Great, thanks for testing. I'll push the patch as is for now.

> PS:
> I'm new to building cygwin1.dll by myself, and have a few questions:
> (1) After make, I've manually copied new-cygwin1.dll to /bin/cygwin1.dll.
> I didn't copy/install any other files. Is this OK?

Yes.

> (2) What are cygwin0.dll and cygwin1.dbg? The latter is a new cygwin1.dll
> with debug info?

cygwin0.dll is an intermediate stage during build, cygwin1.dbg is the
debuginfo file.  For quick debugging, you can just copy it alongside the
DLL into /bin.

> (3) Is there a simple way to build only new-cygwin1.dll (and anything
> required by it), without building (or trying to build) unnecessary
> things (especially documents)?

  configure --disable-doc

Everything else is built unconditionally.  If you tweak sources
inside ${srcdir}/winsup/cygwin only, it's usually sufficient to rebuild
inside ${builddir}/x86_64-pc-cygwin/winsup/cygwin only, unless you
change the layout/size of data structures. A build from toplevel
should be performed then.


Thanks,
Corinna


More information about the Cygwin mailing list