Boost logo

Boost Users :

Subject: [Boost-users] boost pointer serialisation broken on IBM AIX
From: Avi Bahra (avibahra_at_[hidden])
Date: 2009-11-20 09:52:17


Serialisation of pointers is ok linux, hpux, but has the following
exception:
  archive_exception::unregistered_class on IBM AIX v10.1 using boost 1.39

Trivial case can be made to work. However as the number of files
grows, pointer serialisation start/stops working.
There seems to undefined behaviour.

There is a _known_ problem with serialisation via base pointer,
however this problem is exhibited with normal pointer serialisation.

It is extremely difficult to create small enough test case
which shows the problem. Sometimes a test case will work
and at other times a seemly innocuous change (like adding/removing more
hierarchy)
will show the problem again.

There does not appear to be any rhyme or reason why, Could it be a compiler
issue ?

    template<class T>
     struct polymorphic
     {
         static void save(
             Archive &ar,
             T & t
         ){
             ........

             const boost::serialization::extended_type_info * true_type =
                 i.get_derived_extended_type_info(t);

             // note:if this exception is thrown, be sure that derived
pointer
             // is either registered or exported.
             if(NULL == true_type){
                 boost::serialization::throw_exception(

archive_exception(archive_exception::unregistered_class)
<<<<<<<<<<<<<<<<<<<<<<<<
                 );
             }

Has any one else come across this weird behaviour,
in fact I would like to here from anyone who has got pointer serialization
working consistently on AIX.

Any help greatly appreciated

Ta,
  Avi



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net