public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* Debugging help for fork failure: resource temporarily unavailable
@ 2011-03-05 22:17 Ryan Johnson
  2011-03-06 15:03 ` chm
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Ryan Johnson @ 2011-03-05 22:17 UTC (permalink / raw)
  To: cygwin

Hi all,

I'm hitting the oh-so-delightful fork failures when trying to compile a 
cross-compiler toolchain, which is a pain because one fork failure makes 
crosstool-ng start over. I've rebased, I've been over the BLODA (Windows 
Defender slipped in even after I rejected the download), and while they 
definitely helped there's likely to be at least one fork failure while 
compiling a big project like glibc.

So, now comes my plea (I don't know enough about cygwin to do this 
myself). It seems like the usual culprit -- dll injection in the child 
at an address that the parent already used -- could easily be diagnosed 
by the code which notices and aborts the fork: given two dlls which want 
to use the same address in the child process, the one at a different 
address in the parent is probably to blame. Fingering this offending 
DLL, either as part of the fork failure message or in a log file of some 
sort, would make it infinitely easier for users to diagnose the problem, 
and would also give a much clearer idea of what really went wrong (we 
could order the BLODA by how often each app causes headaches, for example).

Might it be possible to do an LD_PRELOAD of some sort which hooks into 
fork() at the critical moment and prints the differences between 
/proc/$parent/maps and /proc/$child/maps? The code doesn't even need to 
be efficient; it just needs to be able to run when whatever internal 
helper of fork() returns an error but before the nascent child process 
is terminated.

If there exists such a convenient instrumentation point, I might be up 
to the task of exploiting it, but I wouldn't know where to start.

Thoughts? Ideas?
Ryan




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

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2011-04-14 14:20 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-05 22:17 Debugging help for fork failure: resource temporarily unavailable Ryan Johnson
2011-03-06 15:03 ` chm
2011-03-07 15:29 ` Ryan Johnson
2011-03-09 10:34 ` Corinna Vinschen
2011-03-09 17:04   ` Christopher Faylor
2011-03-09 17:53   ` Ryan Johnson
2011-03-12 20:57     ` Jon TURNEY
2011-03-15 15:04       ` Ryan Johnson
2011-03-15 17:52         ` BLODA detection (was Re: Debugging help for fork failure: resource temporarily unavailable) Henry S. Thompson
2011-03-16 19:55           ` Ryan Johnson
2011-04-04 14:52             ` Jon TURNEY
2011-04-04 18:40         ` Debugging help for fork failure: resource temporarily unavailable Jon TURNEY
2011-04-13 22:21           ` Ryan Johnson
2011-04-14  6:47             ` Ryan Johnson
2011-04-14 18:21               ` Ryan Johnson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).