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: extremely rarely fork errors: who occuppies the space?


Corinna Vinschen writes:

> 
> On Feb  6 11:00, Heiko Elger wrote:
> > Corinna Vinschen writes:
> > 
> > > > 
> > > > Antivirus software is deinstalled, Windows defender is deactivated.
> > > > Rebaseall and peflagsall were running.
> > > 
> > > YoU don't need to run peflags.  If you have set the ASLR flag, it could
> > > be the culprit.  Try resetting it and, I think, reboot the machine.  As
> > > far as I understand ASLR on Windows, it stores rebase addresses for DLLs
> > > in a database and always uses the same values until reboot.
> > > 
> > Oops - I thought running rebaseall AND peflagsall is recommended on a 
win7/64 
> > system?
> 
> No, that was a misunderstanding at one point.  I thought this has been
> removed from the relevant docs.

That's possible - I cannot find this documentation now - but I'm really sure 
that I'd read this some months ago.

> 
> > I just installed a full cygwin installation (without 
games/gnome/kde/audio) in 
> > another directory (please note: no snapshot installed) and did the 
follwing 
> > for testing how many dlls have ASLR bit set:
> > 
> > $find . -iname '*.dll' | xargs peflags -v 2>/dev/null | 
grep '+dynamicbase' | 
> > wc -l
> > 
> > [fresh installation]
> > 77 (is this OK?)
> > 
> > [old installation with peflagsall run]
> > 1450
> > 
> > 1450 DLLs !!! so perhaps this is real problem.
> > 
> > But what's about the other possible problem: tsawareness?
> > Should I set tsware for the DLLs - we always use remote desktop for 
connecting 
> > to other windows machines - so tsware should be set?
> > Is this correct?
> 
> Yes and no.  Only executables need this flag, it's ignored on DLLs.
> And, gcc sets this flag by default since 4.3.4, so I think there's no
> reason to use it anymore.  Latest gcc 4.5.x also sets the large address
> awareness flag on executables.  Advantage of that flag:  You get an
> extra 2 Gigs of VM per process starting at 0x80000000 on 64 bit systems.
> Cygwin will put its application heap there, so you have more space in the
> lower 2 Gigs for DLL rebasing.

Oops - that was my personal error - I know tsawareness is set to EXE files 
only.

> 
> > What's the best to reinstall our system, cause I really not know which dll 
> > should have set dynamicbase or not?
> 
> None of it, actually.
> 
> > Use cygwin setup option REINSTALL or remove installation and INSTALL?
> 
> Just use peflags to remove the flag instead of reinstalling.  I'm not
> sure if some DLLs have this flag set by default in the distro, and in
> that case you're back to square one and have to run peflags anyway.

That's why I did counting dlls with dynamicbase flag already set - in a fresh 
installation. So over 77 dlls have set this flag.
Or do you mean to remove the flag on really all DLLs?

So - why do not REINSTALL/INSTALL?
Are there any benefits - expect for the effort of time.


Just two question beyond the scope of this posting:
What's the best and easy way to duplicate a cygwin installation to 25 other 
machines?
How to completely remove an cygwin installation includeing registry settings?


best regards

Heiko


--
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


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