fixing BLODA-caused fork failures
Larry Hall (Cygwin)
reply-to-list-only-lh@cygwin.com
Thu Oct 3 22:57:00 GMT 2013
On 10/3/2013 5:50 PM, Ryan Johnson wrote:
> On 03/10/2013 4:55 PM, Adam Kellas wrote:
>> My company uses Cygwin and we experience fairly frequent fork
>> failures, believed to be BLODA-related. I say "believed to be" because
>> in this corporate environment, like many, we cannot uninstall the
>> virus scanner even long enough to see what happens without it. The
>> presumed culprit in our case is Microsoft Forefront Endpoint
>> Protection, by the way.
>>
>> So we need Cygwin and we're stuck with Forefront, putting us between a
>> rock and a hard place. It's clear from the documentation and mailing
>> list that the official stance wrt BLODA is "sorry, can't help you" and
>> I understand and accept that. I'm looking for the answer to a related
>> question: are BLODA-caused fork failures a logically unsolvable
>> problem due to the way Windows works or is it just a matter of round
>> tuits? In other words, if we were (hypothetically) able to pay someone
>> to make MS Forefront and Cygwin play nicely together, would that have
>> a chance of success? And would the Cygwin maintainers allow such work
>> into the code base or consider it an unfortunate precedent?
> I can't comment on actual code changes, but having played around quite a bit
> in the fork code, I can at least speak a little to the technical part.
>
> BLODA commonly causes two classes of symptoms:
>
> 1. Fork failures due to injecting dlls at inopportune locations or otherwise
> messing with address space layouts in a way that violates posix semantics
> (memory-mapping a file where some cygwin dll should have gone, for example).
> Cygwin can do nothing, because the damage is invariably done before
> cygwin1.dll loads. The problem can only be fixed if the BLODA were to be
> more circumspect about where it injects things, which is unlikely because
> Windows processes normally care very little (if at all) about address space
> layouts.
>
> 2. Various file-related errors due to the BLODA touching/locking files at
> inopportune times (e.g. right when a cygwin process tries to delete the
> file, leading to an "unable to delete" error). This is simple Windows
> locking at play, which Cygwin actually respects (unlike many Windows
> programs). Again, there's little cygwin can do to address the problem on its
> side, because the file really is locked...
>
> ... all of which is the long way of explaining why the official stance is
> "sorry, you're SOL" ...
Nothing I say here should be misconstrued to in any way contradict what Ryan
just said. Its a very good summary of the difficulties caused by BLODA.
But as a point of practicality, 64-bit Cygwin can help with some cases of
DLL address space collisions. So if you haven't experimented with
64-bit Cygwin in your environment, it may be worth your time.
--
Larry
_____________________________________________________________________
A: Yes.
> Q: Are you sure?
>> A: Because it reverses the logical flow of conversation.
>>> Q: Why is top posting annoying in email?
--
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
More information about the Cygwin
mailing list