The most likely cause of this issue might be related to MutexKeys being lost in the heap, which then get released (a while later) by the garbage collection. I fixed this problem in a newer commit; if I run with that fix, the problem does not seem to happen anymore.
Arne Goedeke wrote:
Could you reproduce this when compiled with --with-debug. Then the blocka allocator has additional checks which might be helpful to debug this.
--with-rtldebug gives:
Svalue to object without references. **Block: 0x55ed99884420 Type: object Refs: -1719122832 **Program id: 3 **The object is fake. **The object is destructed but program found from id. ******************* /var/src/roxen/81pike/src/object.c:1656: Fatal error: Svalue to object without references. Program flags: 0x002f
Reference table: ####: Flags Inherit Identifier 0: 33 0 0 _fun -:1 Offset: 0x00000000 1: 33 0 1 oprog -:1 Offset: 0x00000010 2: 10 0 2 args -:1 Offset: 0x00000018 3: 33 0 3 prog -:1 Offset: 0x00000020 4: 0 0 4 fun -:1 Offset: 0xffffffff00060005 5: 1 0 5 `->fun -:1 Cfun: 0x55ed97c149e0 6: 1 0 6 `->fun= -:1 Cfun: 0x55ed97c20700 7: 10 0 7 _is_type -:1 Cfun: 0x55ed97c15a30 8: 1 0 8 fill_in_file_and_line -:1 Cfun: 0x55ed97c29d80 9: 0 0 9 filename -:1 Offset: 0xffffffffffff000a 10: 1 0 10 `filename -:1 Cfun: 0x55ed97c17380 11: 0 0 11 line -:1 Offset: 0xffffffffffff000c 12: 1 0 12 `line -:1 Cfun: 0x55ed97c17560 13: 11 0 13 _sprintf -:1 Cfun: 0x55ed97c2db70 14: 11 0 14 _sizeof -:1 Cfun: 0x55ed97c27a90 15: 11 0 15 `[] -:1 Cfun: 0x55ed97c209c0 16: 11 0 16 `[]= -:1 Cfun: 0x55ed97c21180
Identifier index table: ####: Index Name 0: 7 _is_type 1: 2 args 2: 4 fun 3: 9 filename 4: 11 line
Inherit table: ####: Level prog_id id_level storage_offs par_id par_offs par_obj_id id_ref_offs 0: 0 11 0 0 -1 -18 -1 0
Identifier table: ####: Flags Offset Type Name 0: 0 0 251 "_fun" -:1 1: 0 16 13 "oprog" -:1 2: 0 24 8 "args" -:1 3: 0 32 13 "prog" -:1 4: 0 -4294574075 32 "fun" -:1 5: 2 94478941637088 12 "`->fun" -:1 6: 2 94478941685504 12 "`->fun=" -:1 7: 2 94478941641264 12 "_is_type" -:1 8: 2 94478941724032 12 "fill_in_file_and_line" -:1 9: 0 -65526 32 "filename" -:1 10: 2 94478941647744 12 "`filename" -:1 11: 0 -65524 32 "line" -:1 12: 2 94478941648224 12 "`line" -:1 13: 2 94478941739888 12 "_sprintf" -:1 14: 2 94478941715088 12 "_sizeof" -:1 15: 2 94478941686208 12 "`[]" -:1 16: 2 94478941688192 12 "`[]=" -:1
Variable table: ####: Index 0: 0 1: 1 2: 2 3: 3 4: 4 5: 9 6: 11
Constant table: ####: Type Raw
String table: ####: Value 0: [0x55ed9919e7f0]"src/builtin.cmod"(16 characters) 1: [0x55ed99155268]"-"(1 characters)
LFUN table: LFUN Ref# Name 20: 0015 `[] 21: 0016 `[]= 24: 0014 _sizeof 39: 0007 _is_type 40: 0013 _sprintf
Linenumber table: Filename: String #0 0: 3134
Identifier reference index 74 out of range 0..16 Aborted