[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #61409] The code used to create sub-processes on Windows triggers t
From: |
Liviu Ionescu |
Subject: |
[bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue |
Date: |
Mon, 1 Nov 2021 05:13:11 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15 |
URL:
<https://savannah.gnu.org/bugs/?61409>
Summary: The code used to create sub-processes on Windows
triggers the spawnve() issue
Project: make
Submitted by: ilg
Submitted on: Mon 01 Nov 2021 11:13:09 AM EET
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: 4.3
Operating System: MS Windows
Fixed Release: None
Triage Status: None
_______________________________________________________
Details:
Although I cannot tag this report as a direct bug in make, it is a major
contributing factor.
It seems that the implementation of 'spawnve()' in the modern Microsoft UCRT
API has a problem, and in certain conditions, calling the 'spawn*e()'
functions with a non-NULL environment, crashes with Error -1073741819 which is
0xC0000005, or ERROR_ACCESS_DENIED.
Unfortunately these conditions are met by GNU make, and some programs invoked
by 'make.exe' that try to create sub-processes with 'spawn*e()', fail.
Since 'spawnve()' is also called by BusyBox in its 'sh.exe' implementation,
this is a major issue, because it affects most common build tools.
I documented this issue in a separate project:
- https://github.com/xpack-dev-tools/ms-spawn-issue
Since ideally make should be able to start any sub-processes, including those
who use the unreliable 'spawnve()', it would be useful to review the Windows
specific code and try to avoid this problem.
A good source of inspiration might be Ninja Build code, which does not trigger
the condition that affects 'spawnve()' calls.
My knowledge of Windows is not good enough to provide a patch myself, but I
did my best to diagnose this issue, and I offer my help for further testing.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?61409>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
- [bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue,
Liviu Ionescu <=
- [bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue, Paul D. Smith, 2021/11/28
- [bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue, Eli Zaretskii, 2021/11/28
- [bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue, Paul D. Smith, 2021/11/28
- [bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue, Eli Zaretskii, 2021/11/28
- [bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue, Paul D. Smith, 2021/11/28
- [bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue, Liviu Ionescu, 2021/11/28
- [bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue, Eli Zaretskii, 2021/11/29
- [bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue, Liviu Ionescu, 2021/11/29
- Re: [bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue, David Boyce, 2021/11/29
- Re: [bug #61409] The code used to create sub-processes on Windows triggers the spawnve() issue, Liviu Ionescu, 2021/11/29