Project

General

Profile

Actions

Bug #9274

closed

A lot of SystemStackError on Windows 8.1 with MSVC 2013

Added by phasis68 (Heesob Park) about 10 years ago. Updated over 3 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.1.0dev (2013-12-20 trunk 44301) [x64-mswin64_120]
Backport:
[ruby-core:59243]
Tags:

Description

I can see a lot of SystemStackError: stack level too deep as a result of test-all on Windows 8.1 with VC++ 2013 64 bit compiler.

C:\work\ruby-2.1.0-r44304>ver

Microsoft Windows [Version 6.3.9600]

C:\work\ruby-2.1.0-r44304>cl
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x64
Copyright (C) Microsoft Corporation. All rights reserved.

  1. Failure:
    TestThread#test_recursive_outer [C:/work/ruby-2.1.0-r44304/test/ruby/test_thread.rb:491]:
    Exception raised:
    <#<SystemStackError: stack level too deep>>.

  2. Failure:
    TestRecursion#test_recursive_outer [C:/work/ruby-2.1.0-r44304/test/-ext-/test_recursion.rb:28]:
    Exception raised:
    <#<SystemStackError: stack level too deep>>.

  3. Failure:
    TestRecursion#test_recursive [C:/work/ruby-2.1.0-r44304/test/-ext-/test_recursion.rb:19]:
    [RuntimeError] exception expected, not
    Class:
    Message: <"stack level too deep">
    ---Backtrace---
    C:/work/ruby-2.1.0-r44304/test/-ext-/test_recursion.rb:16


  1. Failure:
    TestMarshal#test_class_nonascii [C:/work/ruby-2.1.0-r44304/lib/test/unit/assertions.rb:250]:
    [ruby-core:24882].
    Exception raised:
    <#<SystemStackError: stack level too deep>>.

  2. Failure:
    TestArray#test_join2 [C:/work/ruby-2.1.0-r44304/test/ruby/test_array.rb:1953]:
    [ruby-core:24150].
    [ArgumentError] exception expected, not
    Class:
    Message: <"stack level too deep">
    ---Backtrace---
    C:/work/ruby-2.1.0-r44304/test/ruby/test_array.rb:1953


  1. Failure:
    TestComparable#test_inversed_compare [C:/work/ruby-2.1.0-r44304/lib/rake/ext/time.rb:12]:
    [ruby-core:52305] [Bug #7870].
    Exception raised:
    <#<SystemStackError: stack level too deep>>.

  2. Failure:
    TestComparable#test_no_cmp [C:/work/ruby-2.1.0-r44304/test/ruby/test_comparable.rb:83]:
    [ruby-core:57736] [Bug #9003].
    Exception raised:
    <#<SystemStackError: stack level too deep>>.

  3. Failure:
    TestHash::TestSubHash#test_recursive_hash_value_struct [C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1124]:
    [ruby-core:58567] [Bug #9151].
    Exception raised:
    <#<SystemStackError: stack level too deep>>.

  4. Failure:
    TestHash#test_recursive_hash_value_struct [C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1124]:
    [ruby-core:58567] [Bug #9151].
    Exception raised:
    <#<SystemStackError: stack level too deep>>.

  5. Error:
    TestHash::TestSubHash#test_recursive_hash_value_array_hash:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1172

  6. Error:
    TestHash#test_recursive_hash_value_array_hash:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1172

  7. Error:
    TestHash#test_recursive_hash_value_hash_array:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1185

  8. Error:
    TestHash#test_dup_will_rehash:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:117

  9. Error:
    TestHash#test_recursive_key:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1110

  10. Error:
    TestHash::TestSubHash#test_dup_will_rehash:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:117

  11. Error:
    TestHash::TestSubHash#test_recursive_hash_value_array:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1154

  12. Error:
    TestHash#test_recursive_hash_value_array:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1154

  13. Error:
    TestHash::TestSubHash#test_recursive_hash_value_hash_array:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1185

  14. Error:
    TestEnumerator#test_inspect:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_enumerator.rb:405

  15. Error:
    TestHash::TestSubHash#test_recursive_key:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1110

  16. Error:
    TestIO#test_puts_recursive_array:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_io.rb:55

  17. Error:
    TestIO#test_puts_recursive_ary:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_io.rb:2848

  18. Error:
    Psych_Unit_Tests#test_circular_references:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/psych/test_yaml.rb:1207

  19. Error:
    Psych::TestStruct#test_self_referential_struct:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230

  20. Error:
    Psych::TestSet#test_set_self_reference:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230

  21. Error:
    Psych::TestSafeLoad#test_explicit_recursion:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230

  22. Error:
    Psych::TestOmap#test_self_referential:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230

  23. Error:
    Psych::TestHash#test_self_referential:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230

  24. Error:
    Psych::TestArray#test_self_referential:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230

  25. Error:
    PPTestModule::PPCycleTest#test_withinspect:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/test_pp.rb:140

  26. Error:
    PPTestModule::PPCycleTest#test_struct:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/test_pp.rb:140

  27. Error:
    TestObject#test_inspect:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_object.rb:706

  28. Error:
    TestObjectSpace#test_each_object:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_objectspace.rb:97

  29. Error:
    TestRange#test_comparison_when_recursive:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/lib/test/unit/assertions.rb:250

  30. Error:
    TestRange#test_cyclic_range_inspect:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_range.rb:328

  31. Error:
    PPTestModule::PPCycleTest#test_object:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/test_pp.rb:146

  32. Error:
    PPTestModule::PPCycleTest#test_hash:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/test_pp.rb:132

  33. Error:
    TestStruct::SubStruct#test_comparison_when_recursive:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/lib/test/unit/assertions.rb:250

  34. Error:
    TestStruct::SubStruct#test_inspect:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_struct.rb:121

  35. Error:
    TestStruct::TopStruct#test_comparison_when_recursive:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/lib/test/unit/assertions.rb:250

  36. Error:
    TestStruct::TopStruct#test_inspect:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/ruby/test_struct.rb:121

  37. Error:
    PPTestModule::PPCycleTest#test_array:
    SystemStackError: stack level too deep
    C:/work/ruby-2.1.0-r44304/test/test_pp.rb:125

Same results with ruby-2.1.0-rc1.

Updated by phasis68 (Heesob Park) about 10 years ago

I guess that this issue is related with Bug #9207

The whole patch is http://bugs.ruby-lang.org/issues/9207#note-5

But only a part of the patch is applied by r44034

Updated by nobu (Nobuyoshi Nakada) about 10 years ago

That patch was incomplete.
A value of the recursion keys hashes is an object ID or a hash of paired IDs.
They can't be distinguished with the patch.

I'd thought about it, but my machines got broken and I haven't have enough time.

Actions #3

Updated by jeremyevans0 (Jeremy Evans) over 3 years ago

  • Status changed from Open to Closed
  • Backport deleted (1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN)
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0