Boost logo

Boost :

Subject: Re: [boost] [serialization] Massive failures in develop?
From: Robert Ramey (ramey_at_[hidden])
Date: 2015-10-17 11:41:15


On 10/17/15 5:04 AM, John Maddock wrote:
> Local testing seems to have badly failed:
> http://www.boost.org/development/tests/develop/developer/serialization.html
>
> I've only looked at the msvc failures, and there's an issue in the
> iostream class destructor - which is to say after the archive classes
> have been destructed, the iostream class they were using is left in a
> non-sane state. Beyond that I haven't been able to get anything
> sensible out of the debugger (looks like memory corruption actually, but
> I can't be sure).

Indeed. This is where I've been working. I've been trying to address
an issue whereby things go awry while using the utf8 codecvt facet. my
GCC system complains that that a deleted memory allocation was being
written to. It came up in only one test in one compiler, but I took it
as an error which was just almost never detected. I've spend a lot of
time trying to isolate this. I came to suspect the gcc library as
having some issue in management of codecvt facets (whose design is
rather kludgy in the first place). I moved the management of codecvt
lifetime out of the standard library and to the library code. This
addressed this failure. Of course it might have had repurcussions
somewhere else. Sounds like Whack-a-Mole.

The above is the short version. While this has been going on, I also
needed to make some corrections in a place where wstring is converted to
and mbstring and vice-versa. Again, turns out to be trickier than meets
the eye. Also a few issues related to visibility of some virtual
functions needed to be tracked down. I believe that these are the
source of some of the gcc failures 139 which occasionally show up in the
test matrix.

Addressing all this has resulted in more tests being added, and some
tests being enhanced to improve coverage. It also has resulted in my
bjam files being enhanced so that visibility=hidden is enforced on my
local development system for CLang.

In addition, I addressed a number items in the trac database. Turns out
that sometimes this takes a lot more time than one would think. I think
that as time goes on - the remaining bugs turn out to be more and more
obscure and harder to isolate and fix.

It's a very odd paradox to me that an obsession with a hopeless goal of
perfection is necessary to motivate one to constant improvement which in
turn keeps hope alive.

Currently there are a couple of pending issues I hope to resolve before
next wednesday.

a) refinement of codecvt facet lifetime issue.

b) one test - test_iterators - depends upon that utf8_codecvt object.
This object needs to be tweaked so that the function is visible. Oddly
this shows up in my gcc tests but not in the clang ones.

c) perhaps this broke the msvc tests

Robert Ramey

>
> Any ideas? Thanks, John.
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk