2009/11/10 Juho Snellman jsnell@iki.fi:
Samium Gromoff _deepfire@feelingofgreen.ru writes:
A missing detail: while the vector is created in a live core all /seems/ to be well[1]. But when it comes from a dumped core, it gets a chance (there doesn't appears to be a determinism there) of being in a write-protected region.
Yeah, that'd explain it. We don't correctly restore information about whether a page is boxed or unboxed when loading a core (relevant bits in coreparse.c, and in gencgc.c:gencgc_pickup_dynamic).
By a happy coincidence, I've been working on this area recently. Expect to see a commit that keeps track of unboxed pages in saved cores soonish...
Cheers,
-- Nikodemus