This is the mail archive of the
cygwin-talk
mailing list for the cygwin project.
Re: FW: cygwin-1.dll long-time bug
- From: Christopher Faylor <cgf-no-personal-reply-please at cygwin dot com>
- To: The Cygwin-Talk Malingering List <cygwin-talk at cygwin dot com>
- Date: Wed, 19 Apr 2006 13:06:47 -0400
- Subject: Re: FW: cygwin-1.dll long-time bug
- References: <002e01c66317$581533e0$a501a8c0@CAM.ARTIMI.COM> <003e01c66358$b3526070$020aa8c0@DFW5RB41>
- Reply-to: cygwin-talk at cygwin dot com
- Reply-to: The Cygwin-Talk Malingering List <cygwin-talk at cygwin dot com>
On Tue, Apr 18, 2006 at 09:26:43PM -0500, Gary R. Van Sickle wrote:
>> From: Dave Korn
>> Sent: Tuesday, April 18, 2006 1:39 PM
>> To: 'tricksy codes'
>> Subject: RE: FW: cygwin-1.dll long-time bug
>>
>> On 18 April 2006 19:26, Christopher Faylor wrote:
>>
>> > On Tue, Apr 18, 2006 at 07:13:38PM +0100, Dave Korn wrote:
>> >> where Mark Russinovich says
>> >>
>> >> "As for the issues looking at threads, the problem is a Cygwin
>> >> behavior that's incompatible with the Windows API,
>> >> RtlQueryProcessDebugInformation, that Process Explorer
>> uses to obtain
>> >> the list of modules loaded into a process. That API
>> injects a thread
>> >> into the remote process to query the loader data structures. The
>> >> target process DLLs get a DLL_THREAD_ATTACH notification, which
>> >> causes some Cygwin DLL thread to hang and the
>> >> RtlQueryProcessDebugInformation to never return."
>> >
>> > So, rather than saying "I wonder why Cygwin would hang when
>> a thread
>> > is injected?" the conclusion is that "Cygwin behavior which is
>> > incompatible with the Windows API" and the fix is to
>> "thread injection gracefully".
>> >
>> > I don't see what more there is to say on the subject. Clearly with
>> > just a little more grace, Cygwin's problems would be solved.
>>
>> Well, I think it's reasonable enough to say that cygwin
>> does things that are pushing the envelope of what's
>> documented to work in relation to how we handle forking and
>> process startup. After all we just had that lockup caused by
>> the fact that you can't even call GetModuleName[*] from
>> DllMain safely. Things happen in an unusual order in cygwin
>> processes and threads, and it's probably not something that
>> gets a whole load of testing in microsoft's QA dept.... ;)
>>
>
>WHOAH WHOAH WHOAH there Korns, don't take personal offense! Sheesh! It's
>getting to be a regular minefield in here!
It sounds like an apology is due here since if *Gary* could possibly
misconstrue something I said (an even I would have heretofore considered
almost impossible), then surely it is likely that Dave Korn, who is only
mortal, could also.
I had read Dave's response as just an objective counter to my observation
about handling "thread injection gracefully". Now I see that he was
actually highly offended.
So, here goes:
Dave, I didn't realize that you and Mark Russinovich were so close as
for me to offend you by reacting to his statement.
My sincere apologies. I always value your technical contributions. You
are one of those rare individuals who contribute humor, technical
understanding, and even the occasional patch. I certainly would not
want you to go away mad because of my thoughtlessness.
To clarify what I was saying: I was expressing frustration that this
notable who may understand NT internals better than most other people on
the planet would resort to such vague terms. When I saw that you'd
quoted a message from Mark which talked about Cygwin I was disappointed
that *he* (not you) didn't offer any ideas or suggestions about what
could be wrong. In my frustration, I lashed out at you with stinging
and inappropriate words that I now know truly wounded you. I am wracked
with guilt over my actions and vow to treat you better in the future.
Sincerely,
Christopher G. Faylor