This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Hanging at GetModuleFileName in inside_kernel function


On Thu, Feb 23, 2006 at 06:13:40PM -0000, Dave Korn wrote:
>On 23 February 2006 16:20, Peter Rehley wrote:
>
>> Yeah, I saw that change, and I tried yesterdays snapshot but it still
>> hung.  I also did some more googling and found that someone submitted
>> a patch a few years ago.  The patch checked to see if it was inside
>> the ntdll.dll by looking at the handle.
>> http://www.cygwin.com/ml/cygwin-patches/2003-q2/msg00004.html
>> 
>> I found this google too.
>> http://blogs.msdn.com/oldnewthing/archive/2004/01/28/63880.aspx
>> 
>> I'm going to try that patch today and see what happens.  Christopher
>> didn't apply it because it was a bandage and didn't really fix the
>> bigger problem.
>
>That all fits right in with your diagnosis of the problem; a deadlock
>of some kind I guess is the only thing that could make
>GetModuleFileName hang.
>
>Have you got a stack backtrace showing the call chain when this problem
>arises?

You'd need to decode the stack backtrace on multiple threads, if this is
really that kind of deadlock.

Btw, FWIW, I am excruciatingly aware of this type of deadlock.  I
suffered from it greatly when I moved more of the fork code into the
"DLLentry" part of cygwin to deal with problems caused by Corinna's
streamliing of mmap.

>We may be able to come up with a substitute for GMFN that would solve
>the problem.

Funny you should mention that.  I was just thinking that I could use
either use the technique that gdb uses to find shared library names or
possibly use the stuff in hookapi.cc.  Of course, *that* would be
subject to races.  So you'd potentially be trading races for deadlocks.

cgf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]