fixing BLODA-caused fork failures

Ryan Johnson ryan.johnson@cs.utoronto.ca
Thu Oct 3 21:50:00 GMT 2013


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

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



More information about the Cygwin mailing list