Closed nex3 closed 9 years ago
I'm finding it very difficult to work around this, FWIW.
When running this in the debugger I can see that we are getting into an endless recursion compiling. Here are the first few hundred stack frames:
frame #0: 0x0029fba9 dartdart::BaseIsolate::AssertCurrent(dart::BaseIsolate\*) [inlined] dart::Isolate::Current(this=0x00000000, line=269) + 6 at isolate.h:82 frame #1: 0x0029fba3 dart
dart::BaseIsolate::AssertCurrent(isolate=0x0021880e) + 3 at isolate.cc:269
frame #2: 0x002188c5 dartdart::NoGCScope::~NoGCScope() [inlined] dart::StackResource::~StackResource() + 197 at allocation.h:58 frame #3: 0x00218866 dart
dart::NoGCScope::~NoGCScope(this=<unavailable>) + 102 at heap.cc:499
frame #4: 0x0035ce4d dartdart::OneByteString::CharAddr(str=<unavailable>, index=<unavailable>) + 381 at object.h:5255 frame #5: 0x002aad1e dart
dart::String::CharAt(this=<unavailable>, index=0) const + 254 at object.cc:13951
frame #6: 0x002cb354 dartdart::Class::LookupAccessorFunction(char const\*, long, dart::String const&) const [inlined] dart::MatchesAccessorName(accessor_name=<unavailable>, prefix_length=<unavailable>, prefix=<unavailable>) + 66 at object.cc:3007 frame #7: 0x002cb312 dart
dart::Class::LookupAccessorFunction(this=<unavailable>, prefix=<unavailable>, prefix_length=<unavailable>, name=<unavailable>) const + 882 at object.cc:3132
frame #8: 0x002caf92 dartdart::Class::LookupGetterFunction(this=0x0741cfe0, name=0x0741c2a8) const + 50 at object.cc:3107 frame #9: 0x00387857 dart
dart::Parser::ResolveIdentInLocalScope(this=<unavailable>, ident_pos=<unavailable>, ident=0x0741c2a8, node=0x00000000) + 919 at parser.cc:8992
frame #10: 0x00379a77 dartdart::Parser::ParseType(this=0xb0105bb0, finalization=-1341107496) + 183 at parser.cc:9294 frame #11: 0x00392ea6 dart
dart::Parser::ParseTypeArguments(this=0xb0105bb0, finalization=<unavailable>) + 486 at parser.cc:4446
frame #12: 0x00379c14 dartdart::Parser::ParseType(this=0xb0105bb0, finalization=kCanonicalizeWellFormed) + 596 at parser.cc:9317 frame #13: 0x00371e42 dart
dart::Parser::ParseNewOperator(this=<unavailable>, op_kind=<unavailable>) + 210 at parser.cc:9862
frame #14: 0x00374917 dartdart::Parser::ParsePrimary(this=<unavailable>) + 3383 at parser.cc:10339 frame #15: 0x003a6b3c dart
dart::Parser::ParsePostfixExpr(this=0xb0105bb0) + 268 at parser.cc:8574
frame #16: 0x003a3938 dartdart::Parser::ParseUnaryExpr(this=<unavailable>) + 968 at parser.cc:8058 frame #17: 0x0037cdb6 dart
dart::Parser::ParseBinaryExpr(this=<unavailable>, min_preced=<unavailable>) + 150 at parser.cc:7544
frame #18: 0x0037f311 dartdart::Parser::ParseConditionalExpr(this=0xb0105bb0) + 97 at parser.cc:8005 frame #19: 0x0037663a dart
dart::Parser::ParseExpr(this=0xb0105bb0, require_compiletime_const=<unavailable>, consume_cascades=true) + 714 at parser.cc:7948
frame #20: 0x00398c43 dartdart::Parser::ParseVariableDeclaration(this=0xb0105bb0, type=<unavailable>, is_final=true, is_const=false) + 419 at parser.cc:5423 frame #21: 0x00399246 dart
dart::Parser::ParseVariableDeclarationList(this=0xb0105bb0) + 502 at parser.cc:5533
frame #22: 0x0039b39d dartdart::Parser::ParseStatement(this=0xb0105bb0) + 1629 at parser.cc:7205 frame #23: 0x003854a0 dart
dart::Parser::ParseStatementSequence(this=0xb0105bb0) + 256 at parser.cc:6086
frame #24: 0x00369925 dartdart::Parser::ParseFunc(this=<unavailable>, func=<unavailable>, default_parameter_values=<unavailable>) + 4005 at parser.cc:2895 frame #25: 0x00368144 dart
dart::Parser::ParseFunction(parsed_function=<unavailable>) + 900 at parser.cc:787
frame #26: 0x0015d991 dartdart::CompileFunctionHelper(function=0xb01068a8, optimized=true, osr_id=-1341104888) + 2401 at compiler.cc:775 frame #27: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb01068a8, osr_id=-1) + 25 at compiler.cc:838
frame #28: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb01068a8, isolate=0xb01068a8) const + 395 at code_generator.cc:1416 frame #29: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb0106b40) + 473 at code_generator.cc:1409
frame #30: 0x00d0006c
frame #31: 0x04ba1f1e
frame #32: 0x04ba1087
frame #33: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #34: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #35: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #36: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x073f7c64, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #37: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb01072e8) + 211 at flow_graph_optimizer.cc:524 frame #38: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb010758c, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #39: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb0108088, optimized=true, osr_id=-1341098776) + 2445 at compiler.cc:780 frame #40: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb0108088, osr_id=-1) + 25 at compiler.cc:838
frame #41: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb0108088, isolate=0xb0108088) const + 395 at code_generator.cc:1416 frame #42: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb0108320) + 473 at code_generator.cc:1409
frame #43: 0x00d0006c
frame #44: 0x04ba1f1e
frame #45: 0x04ba1087
frame #46: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #47: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #48: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #49: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x073aa864, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #50: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb0108ac8) + 211 at flow_graph_optimizer.cc:524 frame #51: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb0108d6c, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #52: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb0109868, optimized=true, osr_id=-1341092664) + 2445 at compiler.cc:780 frame #53: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb0109868, osr_id=-1) + 25 at compiler.cc:838
frame #54: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb0109868, isolate=0xb0109868) const + 395 at code_generator.cc:1416 frame #55: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb0109b00) + 473 at code_generator.cc:1409
frame #56: 0x00d0006c
frame #57: 0x04ba1f1e
frame #58: 0x04ba1087
frame #59: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #60: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #61: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #62: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x0735d464, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #63: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb010a2a8) + 211 at flow_graph_optimizer.cc:524 frame #64: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb010a54c, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #65: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb010b048, optimized=true, osr_id=-1341086552) + 2445 at compiler.cc:780 frame #66: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb010b048, osr_id=-1) + 25 at compiler.cc:838
frame #67: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb010b048, isolate=0xb010b048) const + 395 at code_generator.cc:1416 frame #68: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb010b2e0) + 473 at code_generator.cc:1409
frame #69: 0x00d0006c
frame #70: 0x04ba1f1e
frame #71: 0x04ba1087
frame #72: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #73: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #74: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #75: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x07310064, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #76: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb010ba88) + 211 at flow_graph_optimizer.cc:524 frame #77: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb010bd2c, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #78: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb010c828, optimized=true, osr_id=-1341080440) + 2445 at compiler.cc:780 frame #79: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb010c828, osr_id=-1) + 25 at compiler.cc:838
frame #80: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb010c828, isolate=0xb010c828) const + 395 at code_generator.cc:1416 frame #81: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb010cac0) + 473 at code_generator.cc:1409
frame #82: 0x00d0006c
frame #83: 0x04ba1f1e
frame #84: 0x04ba1087
frame #85: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #86: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #87: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #88: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x072c2c64, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #89: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb010d268) + 211 at flow_graph_optimizer.cc:524 frame #90: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb010d50c, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #91: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb010e008, optimized=true, osr_id=-1341074328) + 2445 at compiler.cc:780 frame #92: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb010e008, osr_id=-1) + 25 at compiler.cc:838
frame #93: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb010e008, isolate=0xb010e008) const + 395 at code_generator.cc:1416 frame #94: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb010e2a0) + 473 at code_generator.cc:1409
frame #95: 0x00d0006c
frame #96: 0x04ba1f1e
frame #97: 0x04ba1087
frame #98: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #99: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #100: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #101: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x07283064, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #102: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb010ea48) + 211 at flow_graph_optimizer.cc:524 frame #103: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb010ecec, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #104: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb010f7e8, optimized=true, osr_id=-1341068216) + 2445 at compiler.cc:780 frame #105: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb010f7e8, osr_id=-1) + 25 at compiler.cc:838
frame #106: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb010f7e8, isolate=0xb010f7e8) const + 395 at code_generator.cc:1416 frame #107: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb010fa80) + 473 at code_generator.cc:1409
frame #108: 0x00d0006c
frame #109: 0x04ba1f1e
frame #110: 0x04ba1087
frame #111: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #112: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #113: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #114: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x06855864, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #115: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb0110228) + 211 at flow_graph_optimizer.cc:524 frame #116: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb01104cc, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #117: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb0110fc8, optimized=true, osr_id=-1341062104) + 2445 at compiler.cc:780 frame #118: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb0110fc8, osr_id=-1) + 25 at compiler.cc:838
frame #119: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb0110fc8, isolate=0xb0110fc8) const + 395 at code_generator.cc:1416 frame #120: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb0111260) + 473 at code_generator.cc:1409
frame #121: 0x00d0006c
frame #122: 0x04ba1f1e
frame #123: 0x04ba1087
frame #124: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #125: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #126: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #127: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x068a2c64, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #128: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb0111a08) + 211 at flow_graph_optimizer.cc:524 frame #129: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb0111cac, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #130: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb01127a8, optimized=true, osr_id=-1341055992) + 2445 at compiler.cc:780 frame #131: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb01127a8, osr_id=-1) + 25 at compiler.cc:838
frame #132: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb01127a8, isolate=0xb01127a8) const + 395 at code_generator.cc:1416 frame #133: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb0112a40) + 473 at code_generator.cc:1409
frame #134: 0x00d0006c
frame #135: 0x04ba1f1e
frame #136: 0x04ba1087
frame #137: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #138: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #139: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #140: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x068f0064, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #141: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb01131e8) + 211 at flow_graph_optimizer.cc:524 frame #142: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb011348c, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #143: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb0113f88, optimized=true, osr_id=-1341049880) + 2445 at compiler.cc:780 frame #144: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb0113f88, osr_id=-1) + 25 at compiler.cc:838
frame #145: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb0113f88, isolate=0xb0113f88) const + 395 at code_generator.cc:1416 frame #146: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb0114220) + 473 at code_generator.cc:1409
frame #147: 0x00d0006c
frame #148: 0x04ba1f1e
frame #149: 0x04ba1087
frame #150: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #151: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #152: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #153: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x0693d464, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #154: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb01149c8) + 211 at flow_graph_optimizer.cc:524 frame #155: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb0114c6c, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #156: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb0115768, optimized=true, osr_id=-1341043768) + 2445 at compiler.cc:780 frame #157: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb0115768, osr_id=-1) + 25 at compiler.cc:838
frame #158: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb0115768, isolate=0xb0115768) const + 395 at code_generator.cc:1416 frame #159: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb0115a00) + 473 at code_generator.cc:1409
frame #160: 0x00d0006c
frame #161: 0x04ba1f1e
frame #162: 0x04ba1087
frame #163: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #164: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #165: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #166: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x0698a864, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #167: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb01161a8) + 211 at flow_graph_optimizer.cc:524 frame #168: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb011644c, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #169: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb0116f48, optimized=true, osr_id=-1341037656) + 2445 at compiler.cc:780 frame #170: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb0116f48, osr_id=-1) + 25 at compiler.cc:838
frame #171: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb0116f48, isolate=0xb0116f48) const + 395 at code_generator.cc:1416 frame #172: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb01171e0) + 473 at code_generator.cc:1409
frame #173: 0x00d0006c
frame #174: 0x04ba1f1e
frame #175: 0x04ba1087
frame #176: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #177: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #178: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #179: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x069d7c64, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #180: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb0117988) + 211 at flow_graph_optimizer.cc:524 frame #181: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb0117c2c, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #182: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb0118728, optimized=true, osr_id=-1341031544) + 2445 at compiler.cc:780 frame #183: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb0118728, osr_id=-1) + 25 at compiler.cc:838
frame #184: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb0118728, isolate=0xb0118728) const + 395 at code_generator.cc:1416 frame #185: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb01189c0) + 473 at code_generator.cc:1409
frame #186: 0x00d0006c
frame #187: 0x04ba1f1e
frame #188: 0x04ba1087
frame #189: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #190: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #191: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #192: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x06a25064, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #193: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb0119168) + 211 at flow_graph_optimizer.cc:524 frame #194: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb011940c, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #195: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb0119f08, optimized=true, osr_id=-1341025432) + 2445 at compiler.cc:780 frame #196: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb0119f08, osr_id=-1) + 25 at compiler.cc:838
frame #197: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb0119f08, isolate=0xb0119f08) const + 395 at code_generator.cc:1416 frame #198: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb011a1a0) + 473 at code_generator.cc:1409
frame #199: 0x00d0006c
frame #200: 0x04ba1f1e
frame #201: 0x04ba1087
frame #202: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #203: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #204: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #205: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x06a72464, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #206: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb011a948) + 211 at flow_graph_optimizer.cc:524 frame #207: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb011abec, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #208: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb011b6e8, optimized=true, osr_id=-1341019320) + 2445 at compiler.cc:780 frame #209: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb011b6e8, osr_id=-1) + 25 at compiler.cc:838
frame #210: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb011b6e8, isolate=0xb011b6e8) const + 395 at code_generator.cc:1416 frame #211: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb011b980) + 473 at code_generator.cc:1409
frame #212: 0x00d0006c
frame #213: 0x04ba1f1e
frame #214: 0x04ba1087
frame #215: 0x0016c16d dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>, context=<unavailable>) + 845 at dart_entry.cc:68 frame #216: 0x0016be14 dart
dart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>, arguments_descriptor=<unavailable>) + 500 at dart_entry.cc:37
frame #217: 0x0016bb89 dartdart::DartEntry::InvokeFunction(function=<unavailable>, arguments=<unavailable>) + 249 at dart_entry.cc:27 frame #218: 0x0023b0a8 dart
dart::StringInterpolateInstr::Canonicalize(this=0x06fb6064, flow_graph=0x00ba4021) + 1560 at intermediate_language.cc:2885
frame #219: 0x001dccd3 dartdart::FlowGraphOptimizer::Canonicalize(this=0xb011c128) + 211 at flow_graph_optimizer.cc:524 frame #220: 0x0015f856 dart
dart::CompileParsedFunctionHelper(parsed_function=0xb011c3cc, optimized=true, osr_id=<unavailable>) + 6278 at compiler.cc:509
frame #221: 0x0015d9bd dartdart::CompileFunctionHelper(function=0xb011cec8, optimized=true, osr_id=-1341013208) + 2445 at compiler.cc:780 frame #222: 0x0015de59 dart
dart::Compiler::CompileOptimizedFunction(function=0xb011cec8, osr_id=-1) + 25 at compiler.cc:838
frame #223: 0x00152ec4 dartdart::DRT_OptimizeInvokedFunction(dart::NativeArguments) [inlined] dart::NativeArguments::isolate(this=0x00902b60, this=0x00902b60, this=<unavailable>, isolate=0xb011cec8, isolate=0xb011cec8) const + 395 at code_generator.cc:1416 frame #224: 0x00152d39 dart
dart::DRT_OptimizeInvokedFunction(arguments=NativeArguments at 0xb011d160) + 473 at code_generator.cc:1409
cc @sgmitrovic. Set owner to @fsc8000. Added Accepted label.
It looks like interpolation is triggering recompilation/optimization of something that is needed as part of compilation.
How do I reproduce this?
I tried applying your patch and running pkg/scheduled_test/test/scheduled_stream/stream_matcher_test.dart, but all I get is RuntimeError, but no segmentation fault.
FAILED: none-vm debug_ia32 pkg/scheduled_test/test/scheduled_stream/stream_matcher_test Expected: Pass Actual: RuntimeError CommandOutput[vm]:
stdout:
unittest-suite-wait-for-done
FAIL: nextValues() fails
Expected future to complete successfully, but it failed with Expected all tests to pass, but some failed:
| FAIL: test
| Caught ScheduleError:
| | Expected: equals [2, 3, 4] unordered
| | Emitted: 1
| | 3
| | * 2
| | Which: Expected 3 values matching: equals [2, 3, 4] unordered
| | | but the stream ended after 2 values.
|
| Stack chain:
| | dart:isolate _RawReceivePortImpl._handleMessage
|
| Error detected during task in queue "tasks":
| > stream emits equals [2, 3, 4] unordered
| |
| | Stack chain:
| | | package:scheduled_test/scheduled_stream.dart 79:13 ScheduledStream.expect
| | | pkg/scheduled_test/test/scheduled_stream/stream_matcher_test.dart 26:20 main.<fn>.<fn>
| | | dart:isolate _RawReceivePortImpl._handleMessage
| null
|
| 0 PASSED, 1 FAILED, 0 ERRORS
Stack trace:
#0 expectTestsPass.<anonymous closure> (file:///media/SSD/dart5/dart/pkg/scheduled_test/test/metatest.dart:33:9)
#1 _Future._propagateToListeners.<anonymous closure> (dart:async/future_impl.dart:453)
#2 _rootRun (dart:async/zone.dart:683)
#3 _RootZone.run (dart:async/zone.dart:832)
#4 _Future._propagateToListeners (dart:async/future_impl.dart:445)
#5 _Future._complete (dart:async/future_impl.dart:303)
#6 _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:354)
#7 _asyncRunCallback (dart:async/schedule_microtask.dart:18)
#8 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:119)
package:unittest/src/simple_configuration.dart 137:7 SimpleConfiguration.onExpectFailure
package:unittest/src/simple_configuration.dart 15:28 _ExpectFailureHandler.fail
package:unittest/src/expect.dart 83:22 fail
package:unittest/src/future_matchers.dart 54:22 _Completes.matches.<fn>.<fn>
package:unittest/src/future_matchers.dart 41:36 _Completes.matches.<fn>
package:unittest/unittest.dart 468:28 invoke1.<fn>
package:unittest/unittest.dart 705:19 _guardAsync
package:unittest/unittest.dart 465:23 invoke1
package:unittest/src/future_matchers.dart 54:11 _Completes.matches.<fn>
dart:async/async_error.dart 10 _invokeErrorHandler
dart:async/future_impl.dart 469 _Future._propagateToListeners.<fn>
dart:async/zone.dart 683 _rootRun
dart:async/zone.dart 832 _RootZone.run
dart:async/future_impl.dart 445 _Future._propagateToListeners
dart:async/future_impl.dart 303 _Future._complete
dart:async/future_impl.dart 354 _Future._asyncComplete.<fn>
dart:async/schedule_microtask.dart 18 _asyncRunCallback
dart:isolate-patch/isolate_patch.dart 119 _RawReceivePortImpl._handleMessage
0 PASSED, 1 FAILED, 0 ERRORS
stderr: Unhandled exception: Exception: Some tests failed.
Command[vm]: out/DebugIA32/dart --ignore-unrecognized-flags --package-root=out/DebugIA32/packages/ /media/SSD/dart5/dart/pkg/scheduled_test/test/scheduled_stream/stream_matcher_test.dart Took 0:00:01.416000
Short reproduction command (experimental): python tools/test.py -t120 pkg/scheduled_test/test/scheduled_stream/stream_matcher_test
Are you running on r31305?
I'm unable to reproduce this anymore myself. I'm leaving it open since I'm not sure if the underlying issue has been fixed or if it's just no longer presenting itself in my code.
Strange. Yes, I tried your diff to both r31305 and latest.
I assume you rebuilt the VM against r31305 before running? If so, I'm at a loss as to how to reproduce this now.
Added AssumedStale label.
I've been experiencing a segfault that I haven't been able to track down. It looks like it has something to do with threading and multiple isolates, but neither prints nor GDB provided much insight into what was going on. I've attached a diff (made against r31305); running pkg/scheduled_test/test/scheduled_stream/stream_matcher_test.dart on Goobuntu caused the segfault.
Attachment: segfault.diff (28.90 KB)