[M3devel] Pickling problem from 64 to 32 bit platforms

Rodney M. Bates rodney.m.bates at cox.net
Mon Aug 31 23:37:31 CEST 2009


Some initial observations:

I don't understand the circumstances where this is happening.
"pickles from 64 to 32 bit" sounds to me like the pickle was written
on a 64-bit machine and read on a 32-bit machine.  But the backtrace
seems to be of a run on a 64-bit machine, in part because of the
filename in the outermost frame:

#38 0x0000000000408409 in _start () at ../sysdeps/x86_64/elf/start.S:113
                                                  ^^^^^^

and in part, because all the hexadecimal addresses are 64-bit values.

This example seems to be using version 1 of pickles: 

#5  0x000000000045ac12 in ReadRef (reader=16_00000000025b2018) at ../src/pickle/ver1/Pickle.m3:529
                                                                                ^^^^

Without some vetting, I can't say for sure, but I'm not sure this version ever did all the
cross-target stuff completely.  Did this case work earlier under the same circumstances?

The len parameter to String8.Hash has surely gone bad.  Could there something wrong
with operations on CARDINAL on 64-bit machines?   

What is the symptom of the failure?  What needs to be run to reproduce it?



Olaf Wagner wrote:
> I think we've got a problem with pickles from 64 to 32 bit
> target platforms. Details can be found in
> https://projects.elego.de/cm3/ticket/1068.
>
> Pickle experts should have a look at that.
>
> Olaf




More information about the M3devel mailing list