Thread A created a object O. O->xref = notxref
Thread B references O and adds to its heap. O->xref = isxref
Global trace runs and flips notxref and isxref
Visits Thread A heap first. And marks O->xref = notxref
local_collection on Thread A will free O, while Thread B is still holding the reference.