[Clam-devel] Why CLAM windows binaries crash so much

David García Garzón dgarcia at iua.upf.edu
Mon Mar 16 13:06:28 PDT 2009


By trying to make the tests run in windows again, i found that all the tests 
that made them crash (not fail neither assert but a crash) are related to 
exception handling and if that's true I guess that this could be the reason 
for most crashes windows users reported lately. I found two possible sources 
of the problem (and I guess both apply).

One is a bug reported at ubuntu mingw package:
https://bugs.launchpad.net/ubuntu/+source/mingw32/+bug/195407

The report says that some dlls missing in the package are needed in order to 
exceptions go though dll boundaries. So any exception thrown from CLAM or a 
third party will trigger that even if you do the proper 'catch'.

A second source could be combining different exception handling schemas due to 
some pre-compiled external libs. SjLj schema used in current ubuntu package 
cannot be mixed with code compiled using 'Dward2' schema.

Because most of the crashes hapen on XML exception code i guess that is about 
precompiled libxml++ binaries. Instead of recompiling all the GTK+ stuff, I 
succeded on crosscompiling Xerces-C (instructions at the wiki) and i should 
try whether it still crashes.

Meanwhile I blacklisted in windows test fixtures using exception and reenabled 
test checking in crossmingw testfarm

If we cannot workaround this, we should expect a new ubuntu croscompiler 
version, recompiling mingw packages with a newer version, recompiling all the 
third party libraries, or get a Windoze Box to compile. I don't know what 
hurts me the less.

David.





More information about the clam-devel mailing list