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: Cygwin unstable as hell on W indows7 64bitâ


> -----Original Message-----
> Sent: Thursday, June 21, 2012 15:55
> Subject: Re: Cygwin unstable as hell on Windows7 64bitâ
> 
> On 21/06/2012 11:34 AM, Gerard H. Pille wrote:
> > I checked the BLODA, but with only the following programs left
> > running, Cygwin is still getting killed:
> >
> > $ ps -efW
> <snip>
> 
> A task list isn't terribly useful:
> - It doesn't include system tasks (winlogon.exe and a pile of svchost.exe
> being prominently absent)
> - Some BLODA are services, which tend to run as threads within a process
> rather than given their own
> - BLODA are most often troublesome because they inject dlls dynamically
> into other processes. I dont' know the mechanics, but I suspect it involves
> black magic in the registry and doesn't require the BLODA to be "running" at
> all (that's why an uninstall is usually needed to clean up the mess).

No black magic at all - can I introduce you to the AppInit_DLLs registry value?

http://support.microsoft.com/kb/197571

"The AppInit DLLs are loaded by using the LoadLibrary() function during the DLL_PROCESS_ATTACH process of User32.dll. Therefore, executables that do not link with User32.dll do not load the AppInit DLLs."

It's not recommended to use according to Microsoft, but I've seen software use it anyway and the registry value does work as advertised...

In addition to Ryan's recommendations, I'd suggest examining the list of images loaded in your Cygwin process using a tool like VMMap or ListDLLs.  A loaded 3rd-party DLL that isn't Cygwin or part of the operating system would be a red flag.  However, even if the image list does not have any suspect DLLs, there could still be some that are temporarily loaded when the Cygwin process starts/forks: e.g. imagine a 3rd-party program injects the DLL into your software or it's otherwise loaded, and then the library is unloaded after some initialization is done.

I suppose there is also the possibility of kernel drivers that could interfere - for example, something interfering with file system drivers?

It would be nice if there was a list of ways for checking for BLODA.  While there is a long list of BLODA already there, it's possible there could be a new dodgy app not on the list.  In that case, some things to check for would be helpful.  There is the obvious ways mentioned: check for 3rd-party services, 3rd-party apps loaded via the Run registry key, AppInit_DLLs - but I'm sure I'm missing some.

> - I don't know what all those processes are doing (freepopsd.exe (??),
> rundll32 could do *anything*, etc.) 


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