Issue #7607 has been updated by h.shirosaki (Hiroshi Shirosaki).

File bignum_objid.patch added
Status changed from Open to Assigned
Assignee set to usa (Usaku NAKAMURA)

This seems cause of r38493, not r38548.

I confirmed this issue by the following test on x64 Win7.
I've attached a patch which would be more inexpensive way since avoiding rb_funcall() usage.


require 'test/unit'

class ObjectIdTest < Test::Unit::TestCase

  def test_self_referential_hash_equal_for_bignum_object_id
    GC.disable
    loop do
      " " * 1000000
      a = { :a => 'b' }
      b = a.dup
      a['self'] = a
      b['self'] = b
      p a.object_id.class
      assert_equal(a, b)
      break if a.object_id.class == Bignum
    end
  end
end
----------------------------------------
Bug #7607: TypeError: invalid inspect_tbl pair_list on Windows 8
https://bugs.ruby-lang.org/issues/7607#change-35031

Author: phasis68 (Heesob Park)
Status: Assigned
Priority: Normal
Assignee: usa (Usaku NAKAMURA)
Category: 
Target version: 
ruby -v: ruby 2.0.0dev (2012-12-23 trunk 38564) [x64-mswin64_110]


The changeset r38548 caused following test failures on x64 Windows 8.

  2) Error:
test_self_referential(Psych::TestArray):
TypeError: invalid inspect_tbl pair_list for :== in #<Thread:0x000045a4649558 run>
    C:/work/snapshot-ms64/test/psych/helper.rb:36:in `assert_cycle'
    C:/work/snapshot-ms64/test/psych/test_array.rb:50:in `test_self_referential'
    C:/work/snapshot-ms64/lib/test/unit.rb:651:in `block in _run_suites'
    C:/work/snapshot-ms64/lib/test/unit.rb:649:in `each'
    C:/work/snapshot-ms64/lib/test/unit.rb:649:in `_run_suites'
    C:/work/snapshot-ms64/lib/test/unit.rb:21:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:768:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:828:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:832:in `run'
    ./test/runner.rb:17:in `<main>'

  3) Error:
test_self_referential(Psych::TestHash):
TypeError: invalid inspect_tbl pair_list for :== in #<Thread:0x000045a4649558 run>
    C:/work/snapshot-ms64/test/psych/helper.rb:36:in `assert_cycle'
    C:/work/snapshot-ms64/test/psych/test_hash.rb:26:in `test_self_referential'
    C:/work/snapshot-ms64/lib/test/unit.rb:651:in `block in _run_suites'
    C:/work/snapshot-ms64/lib/test/unit.rb:649:in `each'
    C:/work/snapshot-ms64/lib/test/unit.rb:649:in `_run_suites'
    C:/work/snapshot-ms64/lib/test/unit.rb:21:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:768:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:828:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:832:in `run'
    ./test/runner.rb:17:in `<main>'

  4) Error:
test_self_referential(Psych::TestOmap):
TypeError: invalid inspect_tbl pair_list for :== in #<Thread:0x000045a4649558 run>
    C:/work/snapshot-ms64/test/psych/test_omap.rb:16:in `test_self_referential'
    C:/work/snapshot-ms64/lib/test/unit.rb:651:in `block in _run_suites'
    C:/work/snapshot-ms64/lib/test/unit.rb:649:in `each'
    C:/work/snapshot-ms64/lib/test/unit.rb:649:in `_run_suites'
    C:/work/snapshot-ms64/lib/test/unit.rb:21:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:768:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:828:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:832:in `run'
    ./test/runner.rb:17:in `<main>'

  5) Error:
test_set_self_reference(Psych::TestSet):
TypeError: invalid inspect_tbl pair_list for :== in #<Thread:0x000045a4649558 run>
    C:/work/snapshot-ms64/test/psych/helper.rb:36:in `assert_cycle'
    C:/work/snapshot-ms64/test/psych/test_set.rb:46:in `test_set_self_reference'

    C:/work/snapshot-ms64/lib/test/unit.rb:651:in `block in _run_suites'
    C:/work/snapshot-ms64/lib/test/unit.rb:649:in `each'
    C:/work/snapshot-ms64/lib/test/unit.rb:649:in `_run_suites'
    C:/work/snapshot-ms64/lib/test/unit.rb:21:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:768:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:828:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:832:in `run'
    ./test/runner.rb:17:in `<main>'

  6) Error:
test_self_referential_struct(Psych::TestStruct):
TypeError: invalid inspect_tbl pair_list for :== in #<Thread:0x000045a4649558 run>
    C:/work/snapshot-ms64/test/psych/test_struct.rb:27:in `test_self_referential_struct'
    C:/work/snapshot-ms64/lib/test/unit.rb:651:in `block in _run_suites'
    C:/work/snapshot-ms64/lib/test/unit.rb:649:in `each'
    C:/work/snapshot-ms64/lib/test/unit.rb:649:in `_run_suites'
    C:/work/snapshot-ms64/lib/test/unit.rb:21:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:768:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:828:in `run'
    C:/work/snapshot-ms64/lib/test/unit.rb:832:in `run'
    ./test/runner.rb:17:in `<main>'

 24) Failure:
test_class_nonascii(TestMarshal) [C:/work/snapshot-ms64/test/ruby/test_marshal.rb:302]:
[ruby-core:24882].
Exception raised:
<#<TypeError: invalid inspect_tbl pair_list for :== in #<Thread:0x000045a4649558 run>>>.

 53) Error:
test_comparison_when_recursive(TestRange):
TypeError: invalid inspect_tbl pair_list for :== in #<Thread:0x000045a4649558 run>
    C:/work/snapshot-ms64/test/ruby/test_range.rb:322:in `=='
    C:/work/snapshot-ms64/test/ruby/test_range.rb:322:in `block in test_comparison_when_recursive'
    C:/work/snapshot-ms64/lib/timeout.rb:65:in `timeout'
    C:/work/snapshot-ms64/test/ruby/test_range.rb:321:in `test_comparison_when_recursive'

 57) Error:
test_comparison_when_recursive(TestStruct):
TypeError: invalid inspect_tbl pair_list for :== in #<Thread:0x000045a4649558 run>
    C:/work/snapshot-ms64/test/ruby/test_struct.rb:243:in `=='
    C:/work/snapshot-ms64/test/ruby/test_struct.rb:243:in `block in test_comparison_when_recursive'
    C:/work/snapshot-ms64/lib/timeout.rb:65:in `timeout'
    C:/work/snapshot-ms64/test/ruby/test_struct.rb:242:in `test_comparison_when_recursive'



-- 
http://bugs.ruby-lang.org/