Project

General

Profile

Bug #9274

A lot of SystemStackError on Windows 8.1 with MSVC 2013

Added by phasis68 (Heesob Park) over 5 years ago. Updated over 5 years ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.1.0dev (2013-12-20 trunk 44301) [x64-mswin64_120]
[ruby-core:59243]

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:
<#>.

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

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

12) Failure:
TestMarshal#test_class_nonascii [C:/work/ruby-2.1.0-r44304/lib/test/unit/assertions.rb:250]:
[ruby-core:24882].
Exception raised:
<#>.

13) 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

15) 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:
<#>.

16) 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:
<#>.

17) 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:
<#>.

18) 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:
<#>.

19) 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

20) 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

21) 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

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

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

24) 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

25) 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

26) 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

27) 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

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

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

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

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

32) 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

47) 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

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

49) 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

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

51) 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.

History

Updated by phasis68 (Heesob Park) over 5 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) over 5 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.

Also available in: Atom PDF