On 7/2/18 6:40 AM, Alexander Grund via Boost wrote:
Although crashing is not observed with the slightly older Boost releases (e.g. 1.66, 1.65.1, 1.64, etc.), intentionally isolating Boost.Serialization as Gavin describes fails, with the already described lack of destructor invocations and memory leak.
Did you test the code I sent around with static boost and those versions? I expect a crash in 1.68 (if the commit is not reverted) and in 1.65.x, so if you don't experience one I'd be interested in details (OS, stdlib, compiler etc.). Also: 1.64 should be fine and 1.65 should not leak, but crash. 1.66/1.67 have the leak.
Here's what I did. I looked at the serialization test matrix: https://www.boost.org/development/tests/develop/developer/serialization.html The interesting test is test_dll_exported. I compared this table against the config.info: https://www.boost.org/development/tests/develop/developer/config.html And I also looked at the test command line. test results to see if I could find a commonality between the test failures and the configuration being tested. I found that: a) Test failed only on linux platforms. But the test doesn't fail on all linux platforms. b) Test never fails on windows platforms. c) tests would fail with both clang and gcc compilers d) Test failure seems pretty reliable. Exception: the one test which passes uses gcc 7.3 e) I can't discern what the build switch settings are from the python command line. That is I would like to know if it was built with link=shared/static and runtime-link=shared/static. I believe that this information would be significant. f) a couple of ARM tests pass - one fails. Much has been made of a memory leak. The current version 1.68 on develop and master branches removed the dynamic allocation in the singleton module. So if there is a memory leak it would be more subtle than first meets the eye. I believe this memory leak was introduced in efforts to make this test pass for 1.67 (or maybe 1.66 I don't remember). I believe the correct way to approach this is to analyze your new test and also test_dll_export in light of Gavin Lambert's comments above. If this works out, I would then add this information to the serialization library documentation. Unfortunately, I'm bogged down in other stuff so I can't address it instantaneously, but it I do consider it important to investigate further. Robert Ramey
Alex
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost