# 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



Reply via email to