Assertion failed on line 59 of DeletedBufferChain.cxx

Or, if you’re feeling adventurous, you could try this shot in the dark to see if it happens to fix the issue:

diff --git a/dtool/src/dtoolbase/deletedBufferChain.cxx b/dtool/src/dtoolbase/deletedBufferChain.cxx
index d02f10e..ad016d1 100644
--- a/dtool/src/dtoolbase/deletedBufferChain.cxx
+++ b/dtool/src/dtoolbase/deletedBufferChain.cxx
@@ -56,8 +56,8 @@ allocate(size_t size, TypeHandle type_handle) {
     _lock.release();

 #ifdef USE_DELETEDCHAINFLAG
-    assert(obj->_flag == (AtomicAdjust::Integer)DCF_deleted);
-    obj->_flag = DCF_alive;
+    AtomicAdjust::Integer orig_flag = AtomicAdjust::compare_and_exchange(obj->_flag, DCF_deleted, DCF_alive);
+    assert(orig_flag == (AtomicAdjust::Integer)DCF_deleted);
 #endif  // USE_DELETEDCHAINFLAG

     void *ptr = node_to_buffer(obj);
@@ -77,7 +77,7 @@ allocate(size_t size, TypeHandle type_handle) {
   obj = (ObjectNode *)NeverFreeMemory::alloc(alloc_size);

 #ifdef USE_DELETEDCHAINFLAG
-  obj->_flag = DCF_alive;
+  AtomicAdjust::set(obj->_flag, DCF_alive);
 #endif  // USE_DELETEDCHAINFLAG

   void *ptr = node_to_buffer(obj);

(Of course, re-enable atomics if you do try this.)