# New Ticket Created by Simon Glover # Please include the string: [perl #19143] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=19143 >
I've managed to track down the cause of the failure of at least one of the properties tests on TD-Miata (the Itanium in the Tinderbox). The chain of events in test 1 of prop.t is as follows: i) setprop in default.pmc is called for the first time ii) This creates a Key PMC by calling key_new_string; this has its KEY_string_FLAG (aka PObj_private2_FLAG) and PObj_custom_mark_FLAG flags set, as it should do. iii) Since there's no properties hash, a new PerlHash is created. iv) The test is running with --gc-debug set, so this triggers GC/DOD. v) The key is (erroneously) placed on the free list; at this point, the only flag it has set is the PObj_on_free_list_FLAG vi) setprop next calls the PerlHash's set_pmc_keyed method with this key (which is now invalid) vii) set_pmc_keyed finally calls key_string (in key.c), which sees that the key is invalid, and throws an exception ("Key not a string!") Clearly the problem is that the Key is being put on the free list when it shouldn't be. Unfortunately, I have no idea why, or how to fix it. I haven't investigated any of the other failures, but it seems likely that the root cause is the same (since the Tinderbox report shows that they're printing the same error message). Hope this analysis is useful, Simon