Skip to content

Internal problem: There's already an inferred type, 'Set<int>', for 'StaticGet'. - 'Set' is from 'dart:core'. #36357

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
aartbik opened this issue Mar 27, 2019 · 4 comments
Assignees
Labels
dartfuzz Found with Dart fuzzing (DartFuzz, libFuzzer, etc.) legacy-area-front-end Legacy: Use area-dart-model instead. P1 A high priority bug; for example, a single project is unusable or has many test failures
Milestone

Comments

@aartbik
Copy link
Contributor

aartbik commented Mar 27, 2019

I haved started to fuzz test some of the control-flow collections features and will file a few findings. Please let me know if this is too early for stress testing.

Crash when compiling file:///usr/local/google/home/ajcbik/drive2/dart/sdk/runtime/tools/dartfuzz/fuzz.dart,
at character offset 9523:
fuzz.dart:260:40: Internal problem: There's already an inferred type, 'Set<int>', for 'StaticGet'.
 - 'Set' is from 'dart:core'.
          if (({ -77, 24, ...{ ...{ ...var0, -29, ...{ ...var6, -41, 86, 11 }, -90 } } } == { -84, -87, -91 })) {
                                       ^
#0      internalProblem (package:front_end/src/fasta/problems.dart:45:3)
#1      TypeInferrerImpl.storeInferredType (package:front_end/src/fasta/type_inference/type_inferrer.dart:560:9)
#2      InferenceVisitor.visitStaticGet (package:front_end/src/fasta/kernel/inference_visitor.dart:1690:14)
#3      StaticGet.accept1 (package:kernel/ast.dart:2659:43)
#4      ShadowTypeInferrer.inferExpression (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1528:18)
#5      InferenceVisitor.inferElement (package:front_end/src/fasta/kernel/inference_visitor.dart:680:38)
#6      InferenceVisitor.visitSetLiteralJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:1567:25)
#7      SetLiteralJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:984:20)
#8      ShadowTypeInferrer.inferExpression (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1526:18)
#9      InferenceVisitor.inferElement (package:front_end/src/fasta/kernel/inference_visitor.dart:680:38)
#10     InferenceVisitor.visitSetLiteralJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:1567:25)
#11     InferenceVisitor.visitMapLiteralJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:1176:9)
#12     MapLiteralJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1001:20)
#13     ShadowTypeInferrer.inferExpression (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1526:18)
#14     InferenceVisitor.inferElement (package:front_end/src/fasta/kernel/inference_visitor.dart:680:38)
#15     InferenceVisitor.visitSetLiteralJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:1567:25)
#16     SetLiteralJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:984:20)
#17     ShadowTypeInferrer.inferExpression (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1526:18)
#18     TypeInferrerImpl.inferMethodInvocation (package:front_end/src/fasta/type_inference/type_inferrer.dart:1533:11)
#19     InferenceVisitor.visitMethodInvocationJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:1399:36)
#20     MethodInvocationJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1036:20)
#21     ShadowTypeInferrer.inferExpression (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1526:18)
#22     InferenceVisitor.visitIfJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:494:14)
#23     IfJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:790:20)
#24     ShadowTypeInferrer.inferStatement (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1574:24)
#25     InferenceVisitor.visitBlockJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:76:16)
#26     BlockJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:209:20)
#27     ShadowTypeInferrer.inferStatement (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1574:24)
#28     InferenceVisitor.visitWhileJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:1974:14)
#29     WhileJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1815:20)
#30     ShadowTypeInferrer.inferStatement (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1574:24)
#31     InferenceVisitor.visitBlockJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:76:16)
#32     BlockJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:209:20)
#33     ShadowTypeInferrer.inferStatement (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1574:24)
#34     InferenceVisitor.visitBlockJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:76:16)
#35     BlockJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:209:20)
#36     ShadowTypeInferrer.inferStatement (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1574:24)
#37     InferenceVisitor.handleForInDeclaringVariable (package:front_end/src/fasta/kernel/inference_visitor.dart:269:32)
#38     InferenceVisitor.visitForInStatement (package:front_end/src/fasta/kernel/inference_visitor.dart:387:7)
#39     ForInStatement.accept1 (package:kernel/ast.dart:4146:42)
#40     ShadowTypeInferrer.inferStatement (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1576:24)
#41     InferenceVisitor.visitBlockJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:76:16)
#42     BlockJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:209:20)
#43     ShadowTypeInferrer.inferStatement (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1574:24)
#44     InferenceVisitor.visitLabeledStatement (package:front_end/src/fasta/kernel/inference_visitor.dart:655:14)
#45     LabeledStatement.accept1 (package:kernel/ast.dart:3985:42)
#46     ShadowTypeInferrer.inferStatement (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1578:24)
#47     InferenceVisitor.visitForJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:421:14)
#48     ForJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:689:20)
#49     ShadowTypeInferrer.inferStatement (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1574:24)
#50     InferenceVisitor.visitLabeledStatement (package:front_end/src/fasta/kernel/inference_visitor.dart:655:14)
#51     LabeledStatement.accept1 (package:kernel/ast.dart:3985:42)
#52     ShadowTypeInferrer.inferStatement (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1578:24)
#53     InferenceVisitor.visitBlockJudgment (package:front_end/src/fasta/kernel/inference_visitor.dart:76:16)
#54     BlockJudgment.acceptInference (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:209:20)
#55     ShadowTypeInferrer.inferStatement (package:front_end/src/fasta/kernel/kernel_shadow_ast.dart:1574:24)
#56     TypeInferrerImpl.inferFunctionBody (package:front_end/src/fasta/type_inference/type_inferrer.dart:1175:5)
#57     BodyBuilder.finishFunction (package:front_end/src/fasta/kernel/body_builder.dart:762:20)
#58     DietListener.listenerFinishFunction (package:front_end/src/fasta/source/diet_listener.dart:803:14)
#59     DietListener.buildFunctionBody (package:front_end/src/fasta/source/diet_listener.dart:837:7)
#60     DietListener.endTopLevelMethod (package:front_end/src/fasta/source/diet_listener.dart:312:5)
#61     Parser.parseTopLevelMethod (package:front_end/src/fasta/parser/parser.dart:2336:14)
#62     Parser.parseTopLevelMemberImpl (package:front_end/src/fasta/parser/parser.dart:2237:14)
#63     Parser.parseTopLevelDeclarationImpl (package:front_end/src/fasta/parser/parser.dart:485:14)
#64     Parser.parseUnit (package:front_end/src/fasta/parser/parser.dart:344:15)
#65     SourceLoader.buildBody (package:front_end/src/fasta/source/source_loader.dart:261:14)
<asynchronous suspension>
#66     Loader.buildBodies (package:front_end/src/fasta/loader.dart:182:15)
<asynchronous suspension>
#67     KernelTarget.buildComponent.<anonymous closure> (package:front_end/src/fasta/kernel/kernel_target.dart:298:20)
<asynchronous suspension>
#68     withCrashReporting (package:front_end/src/fasta/crash.dart:122:24)
<asynchronous suspension>
#69     KernelTarget.buildComponent (package:front_end/src/fasta/kernel/kernel_target.dart:296:12)
<asynchronous suspension>
#70     generateKernelInternal.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:148:38)
<asynchronous suspension>
#71     withCrashReporting (package:front_end/src/fasta/crash.dart:122:24)
<asynchronous suspension>
#72     generateKernelInternal (package:front_end/src/kernel_generator_impl.dart:55:10)
<asynchronous suspension>
#73     generateKernel.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:40:18)
<asynchronous suspension>
#74     CompilerContext.runWithOptions.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:134:20)
<asynchronous suspension>
#75     CompilerContext.runInContext.<anonymous closure>.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:122:46)
#76     new Future.sync (dart:async/future.dart:224:31)
#77     CompilerContext.runInContext.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:122:19)
#78     _rootRun (dart:async/zone.dart:1124:13)
#79     _CustomZone.run (dart:async/zone.dart:1021:19)
#80     _runZoned (dart:async/zone.dart:1516:10)
#81     runZoned (dart:async/zone.dart:1463:12)
#82     CompilerContext.runInContext (package:front_end/src/fasta/compiler_context.dart:121:12)
#83     CompilerContext.runWithOptions (package:front_end/src/fasta/compiler_context.dart:132:10)
#84     generateKernel (package:front_end/src/kernel_generator_impl.dart:39:32)
<asynchronous suspension>
#85     kernelForComponent (package:front_end/src/api_prototype/kernel_generator.dart:83:17)
<asynchronous suspension>
#86     SingleShotCompilerWrapper.compileInternal (file:///usr/local/google/home/ajcbik/drive2/dart/sdk/pkg/vm/bin/kernel_service.dart:267:11)
<asynchronous suspension>
#87     Compiler.compile.<anonymous closure> (file:///usr/local/google/home/ajcbik/drive2/dart/sdk/pkg/vm/bin/kernel_service.dart:144:31)
<asynchronous suspension>
#88     new Future.<anonymous closure> (dart:async/future.dart:176:37)
#89     _rootRun (dart:async/zone.dart:1120:38)
#90     _CustomZone.run (dart:async/zone.dart:1021:19)
#91     _CustomZone.runGuarded (dart:async/zone.dart:923:7)
#92     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:963:23)
#93     _rootRun (dart:async/zone.dart:1124:13)
#94     _CustomZone.run (dart:async/zone.dart:1021:19)
#95     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
#96     Timer._createTimer.<anonymous closure> (dart:async/runtime/lib/timer_patch.dart:21:15)
#97     _Timer._runTimers (dart:isolate/runtime/lib/timer_impl.dart:382:19)
#98     _Timer._handleMessage (dart:isolate/runtime/lib/timer_impl.dart:416:5)
#99     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/lib/isolate_patch.dart:171:12)



@aartbik aartbik added legacy-area-front-end Legacy: Use area-dart-model instead. dartfuzz Found with Dart fuzzing (DartFuzz, libFuzzer, etc.) labels Mar 27, 2019
@aartbik
Copy link
Contributor Author

aartbik commented Mar 27, 2019

@a-siva

fuzz.dart.txt

@a-siva a-siva added this to the Dart2.3 milestone Mar 27, 2019
@chloestefantsova chloestefantsova self-assigned this Mar 28, 2019
@chloestefantsova
Copy link
Contributor

I'm addressing it in https://dart-review.googlesource.com/c/sdk/+/98015.

@aartbik aartbik added the P1 A high priority bug; for example, a single project is unusable or has many test failures label Mar 28, 2019
@aartbik
Copy link
Contributor Author

aartbik commented Mar 29, 2019

This remains one of the two major showstoppers for running longer fuzz sessions:

Crash when compiling file:///usr/local/google/home/ajcbik/drive2/dart/sdk/runtime/tools/dartfuzz/fuzz.dart,
at character offset 989:
fuzz.dart:47:88: Internal problem: There's already an inferred type, 'List<int>', for 'StaticGet'.
 - 'List' is from 'dart:core'.
                  var9 = ({ var8[(true ? -22 : Int32x4.xxwz)], for (int loc3 in { ...{ var8[var8[(var5 * var8[loc2])]], (~((~(12)))) } }) (~(Float32x4.yxxx)), if (true) var8[Int32x4.zyyw], (var4 ? (var2 % var8[loc0]) : (39 ?? (ZLibOption.MAX_LEVEL & Int32x4.wzzx))), var8[((var8 == [ (~(var8[var2])), ((99).isEven ? loc2 : 4), ZLibOption.MIN_MEM_LEVEL, (-(-82)) ]) ? (loc2--) : (~((var2++))))], if (((!(false)) ? var4 : (!(true)))) ((loc0--) & (~((~(Int32x4.yyxx))))), if (var4) (false ? (Platform.isAndroid ? -0 : (++loc1)) : -9223372036854775807) } ?? var9);

@chloestefantsova
Copy link
Contributor

After landing 584affc and follow-ups I've been able to compile the repro fuzz.dart.txt without crashes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dartfuzz Found with Dart fuzzing (DartFuzz, libFuzzer, etc.) legacy-area-front-end Legacy: Use area-dart-model instead. P1 A high priority bug; for example, a single project is unusable or has many test failures
Projects
None yet
Development

No branches or pull requests

4 participants