Bug #9274
closedA lot of SystemStackError on Windows 8.1 with MSVC 2013
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.
-
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>>. -
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>>. -
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
-
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>>. -
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
-
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>>. -
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>>. -
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>>. -
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>>. -
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 -
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 -
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 -
Error:
TestHash#test_dup_will_rehash:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:117 -
Error:
TestHash#test_recursive_key:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1110 -
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 -
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 -
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 -
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 -
Error:
TestEnumerator#test_inspect:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/ruby/test_enumerator.rb:405 -
Error:
TestHash::TestSubHash#test_recursive_key:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/ruby/test_hash.rb:1110 -
Error:
TestIO#test_puts_recursive_array:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/ruby/test_io.rb:55 -
Error:
TestIO#test_puts_recursive_ary:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/ruby/test_io.rb:2848 -
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 -
Error:
Psych::TestStruct#test_self_referential_struct:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230 -
Error:
Psych::TestSet#test_set_self_reference:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230 -
Error:
Psych::TestSafeLoad#test_explicit_recursion:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230 -
Error:
Psych::TestOmap#test_self_referential:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230 -
Error:
Psych::TestHash#test_self_referential:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230 -
Error:
Psych::TestArray#test_self_referential:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/lib/minitest/unit.rb:230 -
Error:
PPTestModule::PPCycleTest#test_withinspect:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/test_pp.rb:140 -
Error:
PPTestModule::PPCycleTest#test_struct:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/test_pp.rb:140 -
Error:
TestObject#test_inspect:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/ruby/test_object.rb:706 -
Error:
TestObjectSpace#test_each_object:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/ruby/test_objectspace.rb:97 -
Error:
TestRange#test_comparison_when_recursive:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/lib/test/unit/assertions.rb:250 -
Error:
TestRange#test_cyclic_range_inspect:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/ruby/test_range.rb:328 -
Error:
PPTestModule::PPCycleTest#test_object:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/test_pp.rb:146 -
Error:
PPTestModule::PPCycleTest#test_hash:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/test_pp.rb:132 -
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 -
Error:
TestStruct::SubStruct#test_inspect:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/ruby/test_struct.rb:121 -
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 -
Error:
TestStruct::TopStruct#test_inspect:
SystemStackError: stack level too deep
C:/work/ruby-2.1.0-r44304/test/ruby/test_struct.rb:121 -
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.
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)