On 12/25/2021 2:20 PM, Jeremy Drake via Cygwin-patches wrote:
On Sun, 26 Dec 2021, Takashi Yano wrote:

Could you please check the result of the following test case
in that ARM64 platform?


I will probably not be able to get to this until tomorrow at the earliest.
But keep in mind the issue I'm seeing is not deterministic - I have to run
pacman in a loop validating files via GPGME and eventually it will hang
(or hit the assert I added in that version).  Most of the time, it's
perfectly fine.

The results you've already posted seem to indicate that, on your platform, NtQueryInformationProcess(ProcessHandleInformation) returns STATUS_SUCCESS even if the buffer it's passed is too small. [That won't necessarily cause a problem in every one of your pacman runs, so it might appear non-deterministic.] Takashi's test case is designed to verify that that's what's going on.

And I think he also wants to see if phi->NumberOfHandles is reliable on your platform even when the buffer is too small. If so, then (on your platform), the do-while loop could be replaced by two calls to NtQueryInformationProcess. The first call would determine how big a buffer is needed, and the second call would use a buffer of that size.

But we don't know any of that for sure yet. We also don't know (or at least I don't know) what aspects of your platform are relevant. For example, does this always happen on Windows 11? or on ARM64?

Ken

Reply via email to