When using unsafe_load, we must ensure the resource being read from is kept alive, which can be accomplished via GC.@preserve.
For example, in "src/common.jl" there is
_value(r::AbstractR123{T}, i = 1, ::Type{T2} = T) where {T, T2} = unsafe_load(Ptr{T2}(pointer_from_objref(r)), i)
While highly unlikely to be practically a problem in current julia versions, a safe fix would be:
_value(r::AbstractR123{T}, i = 1, ::Type{T2} = T) where {T, T2} = GC.@preserve r unsafe_load(Ptr{T2}(pointer_from_objref(r)), i)