On Sun, 25 May 2025 16:46:49 +0200, Christian Franke wrote:
On Sat, 24 May 2025 15:19:10 +0200, Christian Franke wrote:
If /proc/PID/maps is opened in parallel threads, the process PID may
segfault.
Testcase:
...
Problem is not reproducible with any of the other /proc/PID/* files.
A closer look shows that the problem is unrelated to thread safety.
The segfault also occurs when the following command is run
simultaneously in two terminals:
$ while cat /proc/1234/maps > /dev/null; do printf .; done
.............cat: /proc/1234/maps: No such file or directory
The root of the problem is the call of RtlQueryProcessDebugInformation()
here:
https://cygwin.com/git/?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/fhandler/process.cc;h=8fae9be5#l630
If this part is removed, the segfault does no longer occur. Then
/proc/PID/maps still work but the "[win heap ...]" information is
missing. No patch provided because I don't know whether this could
possibly be fixed without removing this functionality.
A test with a separate test program shows that the problem is unrelated
to Cygwin: Parallel calls to RtlQueryProcessDebugInformation() with the
same PID could be used to crash this process. It also "worked" with
Notepad.exe.
Possible Windows (Version 10.0.22631.5039) bug?
--
Regards,
Christian
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple