dryman/opic

pm_read in pm_serde_example does not work

Closed this issue · 1 comments

jserv commented

The instructions to build and test pm_read:

./bootstrap.sh
./configure
make
cd pm_serde_example
rm -f list_serialized
./pm_test
./pm_read

The assertion is as following:

Assertion failed: LPTypeMap_get (op_trait.c:35)
Error message: no matching bucket for key 
opic/src/.libs/libopic.so.0(LPTypeMap_get+0x12f)[0x7f553be5293f]
opic/src/.libs/libopic.so.0(PMDeserialize+0x167)[0x7f553be54187]
opic/pm_serde_example/.libs/lt-pm_read(+0x910)[0x55625d203910]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x7f553b89b3f1]
opic/pm_serde_example/.libs/lt-pm_read(+0x9aa)[0x55625d2039aa]

Reference backtrace via libtool --mode=execute gdb -q pm_read:

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
#1  0x00007ffff762e3ea in __GI_abort () at abort.c:89
#2  0x00007ffff7bce95d in LPTypeMap_get (key=key@entry=0x55555575def0 "h\213\233\367\377\177") at op_trait.c:41
#3  0x00007ffff7bd0187 in PMDeserialize (fd=<optimized out>) at pm_memory_manager.c:282
#4  0x0000555555554910 in main (argc=<optimized out>, argv=<optimized out>) at pm_read.c:11

Known issue: this executable need to be built dynamically, else constructor methods won't register the type into LPTypeMap.