Problems with: Improvements to fork handling (2/5)

Ryan Johnson
Sat May 28 22:40:00 GMT 2011

On 28/05/2011 4:50 PM, Christopher Faylor wrote:
> On Wed, May 11, 2011 at 02:31:37PM -0400, Ryan Johnson wrote:
>> This patch has the parent sort its dll list topologically by
>> dependencies. Previously, attempts to load a DLL_LOAD dll risked pulling
>> in dependencies automatically, and the latter would then not benefit
> >from the code which "encourages" them to land in the right places. The
>> dependency tracking is achieved using a simple class which allows to
>> introspect a mapped dll image and pull out the dependencies it lists.
>> The code currently rebuilds the dependency list at every fork rather
>> than attempt to update it properly as modules are loaded and unloaded.
>> Note that the topsort optimization affects only cygwin dlls, so any
>> windows dlls which are pulled in dynamically (directly or indirectly)
>> will still impose the usual risk of address space clobbers.
> Bad news.
> I applied this patch and the one after it but then noticed that zsh started
> producing:  "bad address: " errors.
> path:4: bad address: /share/bin/dopath
> term:1: bad address: /bin/tee
> The errors disappear when I back this patch out.
> FWIW, I was running "zsh -l".  I have somewhat complicated
> .zshrc/.zlogin/.zshenv files.  I'll post them if needed.
> Until this is fixed, this patch and the subsequent ones which rely on
> it, can't go in.  I did commit this fix but it has been backed out now.
Hmm. I also see bad address errors in bash sometimes. However, when I 
searched through the cygwin mailing list archives I saw that other 
people have reported this problem in the past [1], so I figured it was 
some existing, sporadic issue rather than my patch...

Could you tell me what a 'bad address' error is? I'd be happy to debug 
this, but really don't know what kind of bug I'm hunting here, except 
that it might be a problem wow64 and suspending threads [2]. Whatever 
became of these bad address errors the last time(s) they cropped up? I 
can't find any resolution with Google, at least.



More information about the Cygwin-patches mailing list