dart-lang / sdk

The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
10.11k stars 1.57k forks source link

Dart2Native crashed on Ubuntu Server (DigitalOcean) #44712

Open BasedMusa opened 3 years ago

BasedMusa commented 3 years ago

I'm using Dart for building a backend API server. The server is a SharedVM on DigitalOcean. I was suppose to deliver this 2 days ago, but I can't produce a production build because of this. Also another question, is this the right method for generating a production build of a Dart application. (Not Flutter).

dart --version

Dart SDK version: 2.10.4 (stable) (Unknown timestamp) on "linux_x64"

pubspec.yaml Here is my pubspec, in case this might be due to some dependency.

name: ead_server

version: 0.0.1

dependencies: 
  angel_framework: 2.1.1
  mailer2: ^1.2.5
  sqljocky5: ^2.2.1
  logger: 0.9.4
  dbcrypt: ^1.0.0
  angel_static: ^2.1.3+2
  path: ^1.7.0
  file: ^5.2.1
  corsac_jwt: ^0.4.0

dart2native -k aot ead-server/lib/main.dart -v

sysadmin@ubuntu-ead:~$ dart2native -k aot ead-server/lib/main.dart -v
Compiling /home/sysadmin/ead-server/lib/main.dart to /home/sysadmin/ead-server/lib/main.aot using format aot:
Generating AOT kernel dill.

Unhandled exception:
Crash when compiling null,
at character offset null:
unreachable VariableGetImpl(results)
#0      AsyncRewriterBase.defaultExpression (package:kernel/transformations/continuation.dart:1166:39)
#1      TreeVisitor.visitVariableGet (package:kernel/visitor.dart:147:43)
#2      VariableGet.accept (package:kernel/ast.dart:3150:44)
#3      ForInStatement.transformChildren (package:kernel/ast.dart:6293:27)
#4      Transformer.defaultTreeNode (package:kernel/visitor.dart:653:10)
#5      TreeVisitor.defaultStatement (package:kernel/visitor.dart:203:41)
#6      TreeVisitor.visitForInStatement (package:kernel/visitor.dart:215:49)
#7      RecursiveContinuationRewriter.visitForInStatement (package:kernel/transformations/continuation.dart:191:20)
#8      AsyncRewriterBase.visitForInStatement (package:kernel/transformations/continuation.dart:1085:13)
#9      ForInStatement.accept (package:kernel/ast.dart:6277:43)
#10     AsyncRewriterBase.visitBlock (package:kernel/transformations/continuation.dart:667:17)
#11     Block.accept (package:kernel/ast.dart:5873:43)
#12     AsyncRewriterBase.visitDelimited (package:kernel/transformations/continuation.dart:752:10)
#13     AsyncRewriterBase.buildWrappedBody (package:kernel/transformations/continuation.dart:626:24)
#14     AsyncRewriterBase.setupAsyncContinuations (package:kernel/transformations/continuation.dart:578:39)
#15     AsyncFunctionRewriter.rewrite (package:kernel/transformations/continuation.dart:1328:5)
#16     RecursiveContinuationRewriter.visitFunctionNode (package:kernel/transformations/continuation.dart:143:14)
#17     FunctionNode.accept (package:kernel/ast.dart:2932:38)
#18     Procedure.transformChildren (package:kernel/ast.dart:2436:27)
#19     Transformer.defaultTreeNode (package:kernel/visitor.dart:653:10)
#20     TreeVisitor.defaultMember (package:kernel/visitor.dart:230:35)
#21     TreeVisitor.visitProcedure (package:kernel/visitor.dart:232:39)
#22     RecursiveContinuationRewriter.visitProcedure (package:kernel/transformations/continuation.dart:117:51)
#23     Procedure.accept (package:kernel/ast.dart:2423:40)
#24     transformList (package:kernel/ast.dart:9699:27)
#25     Class.transformChildren (package:kernel/ast.dart:1428:5)
#26     Transformer.defaultTreeNode (package:kernel/visitor.dart:653:10)
#27     TreeVisitor.visitClass (package:kernel/visitor.dart:239:31)
#28     Class.accept (package:kernel/ast.dart:1379:38)
#29     transformList (package:kernel/ast.dart:9699:27)
#30     Library.transformChildren (package:kernel/ast.dart:625:5)
#31     Transformer.defaultTreeNode (package:kernel/visitor.dart:653:10)
#32     TreeVisitor.visitLibrary (package:kernel/visitor.dart:254:35)
#33     RecursiveContinuationRewriter.visitLibrary (package:kernel/transformations/continuation.dart:125:28)
#34     Library.accept (package:kernel/ast.dart:607:38)
#35     RecursiveContinuationRewriter.rewriteLibrary (package:kernel/transformations/continuation.dart:97:17)
#36     transformLibraries (package:kernel/transformations/continuation.dart:55:14)
#37     VmTarget.performModularTransformationsOnLibraries (package:vm/target/vm.dart:171:5)
#38     KernelTarget.runBuildTransformations (package:front_end/src/fasta/kernel/kernel_target.dart:1126:19)
#39     KernelTarget.buildComponent.<anonymous closure> (package:front_end/src/fasta/kernel/kernel_target.dart:390:7)
<asynchronous suspension>
#40     KernelTarget.buildComponent.<anonymous closure> (package:front_end/src/fasta/kernel/kernel_target.dart)
#41     withCrashReporting (package:front_end/src/fasta/crash.dart:122:24)
#42     KernelTarget.buildComponent (package:front_end/src/fasta/kernel/kernel_target.dart:380:12)
#43     generateKernelInternal.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:177:38)
<asynchronous suspension>
#44     generateKernelInternal.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart)
#45     withCrashReporting (package:front_end/src/fasta/crash.dart:122:24)
#46     generateKernelInternal (package:front_end/src/kernel_generator_impl.dart:73:10)
#47     kernelForProgramInternal.<anonymous closure> (package:front_end/src/api_prototype/kernel_generator.dart:61:35)
#48     CompilerContext.runWithOptions.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:135:20)
<asynchronous suspension>
#49     CompilerContext.runWithOptions.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart)
#50     CompilerContext.runInContext.<anonymous closure>.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:123:46)
#51     new Future.sync (dart:async/future.dart:223:31)
#52     CompilerContext.runInContext.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:123:19)
#53     _rootRun (dart:async/zone.dart:1190:13)
#54     _CustomZone.run (dart:async/zone.dart:1093:19)
#55     _runZoned (dart:async/zone.dart:1630:10)
#56     runZoned (dart:async/zone.dart:1550:10)
#57     CompilerContext.runInContext (package:front_end/src/fasta/compiler_context.dart:122:12)
#58     CompilerContext.runWithOptions (package:front_end/src/fasta/compiler_context.dart:133:10)
#59     kernelForProgramInternal (package:front_end/src/api_prototype/kernel_generator.dart:60:32)
#60     kernelForProgram (package:front_end/src/api_prototype/kernel_generator.dart:52:17)
#61     compileToKernel (package:vm/kernel_front_end.dart:381:28)
#62     runCompiler (package:vm/kernel_front_end.dart:273:25)
#63     compile (file:///tmp/tmpRN2vKk/dart-2.10.4/dart/pkg/vm/bin/gen_kernel.dart:39:10)
#64     main (file:///tmp/tmpRN2vKk/dart-2.10.4/dart/pkg/vm/bin/gen_kernel.dart:34:25)
#65     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#66     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

#0      AsyncRewriterBase.defaultExpression (package:kernel/transformations/continuation.dart:1166:39)
#1      TreeVisitor.visitVariableGet (package:kernel/visitor.dart:147:43)
#2      VariableGet.accept (package:kernel/ast.dart:3150:44)
#3      ForInStatement.transformChildren (package:kernel/ast.dart:6293:27)
#4      Transformer.defaultTreeNode (package:kernel/visitor.dart:653:10)
#5      TreeVisitor.defaultStatement (package:kernel/visitor.dart:203:41)
#6      TreeVisitor.visitForInStatement (package:kernel/visitor.dart:215:49)
#7      RecursiveContinuationRewriter.visitForInStatement (package:kernel/transformations/continuation.dart:191:20)
#8      AsyncRewriterBase.visitForInStatement (package:kernel/transformations/continuation.dart:1085:13)
#9      ForInStatement.accept (package:kernel/ast.dart:6277:43)
#10     AsyncRewriterBase.visitBlock (package:kernel/transformations/continuation.dart:667:17)
#11     Block.accept (package:kernel/ast.dart:5873:43)
#12     AsyncRewriterBase.visitDelimited (package:kernel/transformations/continuation.dart:752:10)
#13     AsyncRewriterBase.buildWrappedBody (package:kernel/transformations/continuation.dart:626:24)
#14     AsyncRewriterBase.setupAsyncContinuations (package:kernel/transformations/continuation.dart:578:39)
#15     AsyncFunctionRewriter.rewrite (package:kernel/transformations/continuation.dart:1328:5)
#16     RecursiveContinuationRewriter.visitFunctionNode (package:kernel/transformations/continuation.dart:143:14)
#17     FunctionNode.accept (package:kernel/ast.dart:2932:38)
#18     Procedure.transformChildren (package:kernel/ast.dart:2436:27)
#19     Transformer.defaultTreeNode (package:kernel/visitor.dart:653:10)
#20     TreeVisitor.defaultMember (package:kernel/visitor.dart:230:35)
#21     TreeVisitor.visitProcedure (package:kernel/visitor.dart:232:39)
#22     RecursiveContinuationRewriter.visitProcedure (package:kernel/transformations/continuation.dart:117:51)
#23     Procedure.accept (package:kernel/ast.dart:2423:40)
#24     transformList (package:kernel/ast.dart:9699:27)
#25     Class.transformChildren (package:kernel/ast.dart:1428:5)
#26     Transformer.defaultTreeNode (package:kernel/visitor.dart:653:10)
#27     TreeVisitor.visitClass (package:kernel/visitor.dart:239:31)
#28     Class.accept (package:kernel/ast.dart:1379:38)
#29     transformList (package:kernel/ast.dart:9699:27)
#30     Library.transformChildren (package:kernel/ast.dart:625:5)
#31     Transformer.defaultTreeNode (package:kernel/visitor.dart:653:10)
#32     TreeVisitor.visitLibrary (package:kernel/visitor.dart:254:35)
#33     RecursiveContinuationRewriter.visitLibrary (package:kernel/transformations/continuation.dart:125:28)
#34     Library.accept (package:kernel/ast.dart:607:38)
#35     RecursiveContinuationRewriter.rewriteLibrary (package:kernel/transformations/continuation.dart:97:17)
#36     transformLibraries (package:kernel/transformations/continuation.dart:55:14)
#37     VmTarget.performModularTransformationsOnLibraries (package:vm/target/vm.dart:171:5)
#38     KernelTarget.runBuildTransformations (package:front_end/src/fasta/kernel/kernel_target.dart:1126:19)
#39     KernelTarget.buildComponent.<anonymous closure> (package:front_end/src/fasta/kernel/kernel_target.dart:390:7)
<asynchronous suspension>
#40     KernelTarget.buildComponent.<anonymous closure> (package:front_end/src/fasta/kernel/kernel_target.dart)
#41     withCrashReporting (package:front_end/src/fasta/crash.dart:122:24)
#42     KernelTarget.buildComponent (package:front_end/src/fasta/kernel/kernel_target.dart:380:12)
#43     generateKernelInternal.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:177:38)
<asynchronous suspension>
#44     generateKernelInternal.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart)
#45     withCrashReporting (package:front_end/src/fasta/crash.dart:122:24)
#46     generateKernelInternal (package:front_end/src/kernel_generator_impl.dart:73:10)
#47     kernelForProgramInternal.<anonymous closure> (package:front_end/src/api_prototype/kernel_generator.dart:61:35)
#48     CompilerContext.runWithOptions.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:135:20)
<asynchronous suspension>
#49     CompilerContext.runWithOptions.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart)
#50     CompilerContext.runInContext.<anonymous closure>.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:123:46)
#51     new Future.sync (dart:async/future.dart:223:31)
#52     CompilerContext.runInContext.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:123:19)
#53     _rootRun (dart:async/zone.dart:1190:13)
#54     _CustomZone.run (dart:async/zone.dart:1093:19)
#55     _runZoned (dart:async/zone.dart:1630:10)
#56     runZoned (dart:async/zone.dart:1550:10)
#57     CompilerContext.runInContext (package:front_end/src/fasta/compiler_context.dart:122:12)
#58     CompilerContext.runWithOptions (package:front_end/src/fasta/compiler_context.dart:133:10)
#59     kernelForProgramInternal (package:front_end/src/api_prototype/kernel_generator.dart:60:32)
#60     kernelForProgram (package:front_end/src/api_prototype/kernel_generator.dart:52:17)
#61     compileToKernel (package:vm/kernel_front_end.dart:381:28)
#62     runCompiler (package:vm/kernel_front_end.dart:273:25)
#63     compile (file:///tmp/tmpRN2vKk/dart-2.10.4/dart/pkg/vm/bin/gen_kernel.dart:39:10)
#64     main (file:///tmp/tmpRN2vKk/dart-2.10.4/dart/pkg/vm/bin/gen_kernel.dart:34:25)
#65     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#66     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

Failed to generate native files:
Generating AOT kernel dill failed!
sysadmin@ubuntu-ead:~$ 
devoncarew commented 3 years ago

Assigning to area front end for further triage (due to the crash in the kernel transform).

@BasedMusa , re:

Also another question, is this the right method for generating a production build of a Dart application. (Not Flutter).

No, you don't need to compile to an AOT app. You can run just using the regular dart command. An AOT compile has different startup time / deployment characteristics which can make it more attractive for some use cases.