• unknown's avatar
    BUG#10948 NDB Replication: Race condition with ALTER/DROP table · 0602da4d
    unknown authored
    BUG#9826  Server crash on schema change ("drop table", "alter table") with NDB
    
    See note on 10948 for detailed explanation.
    
    struct a { void* a; long long b[1]; };
    
    on PPC32 (and 32bit pa risc): 16
    on x86: 12
    
    so a malloc(sizeof(void*)+extra_bits) is wrong.
    
    Assuming that the long long is 64 bit aligned as non-aligned 64bit accesses
    are rather expensive on ppc.
    
    Thanks to paulus for doing the PPC port of valgrind.
    Without which I would no doubt still be trying to find this.
    
    
    ndb/src/ndbapi/DictCache.cpp:
      Fix allocation size for Ndb_local_table_info for architectures such as PPC and PA-RISC (32bit)
      where
      struct a { void* a; long long b;};
      is 64 bit aligned (i.e. sizeof(struct a)==16)
    ndb/src/ndbapi/DictCache.hpp:
      Add warning about having to be the last member in the structure
    0602da4d
DictCache.hpp 2.27 KB