Skip to content
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

Crash in Dart Compiler share_plus-8.0.2/lib/src/share_plus_web.dart:316:20 #55379

Closed
butterbrain opened this issue Apr 4, 2024 · 4 comments
Closed
Labels
area-web Use area-web for Dart web related issues, including the DDC and dart2js compilers and JS interop. dart2js-crash web-dart2js

Comments

@butterbrain
Copy link

My compiler crashed and asked me to post this (O:

I am running macOS Sonoma 14.4.1
SDK build number (3.3.0)

The compiler crashed: Assertion failure: Unknown external method j:method(ShareData|constructor#files)
#0 failedAt (package:compiler/src/diagnostics/invariant.dart:39:3)
#1 KernelSsaGraphBuilder._buildExternalFunctionNode (package:compiler/src/ssa/builder.dart:1825:5)
#2 KernelSsaGraphBuilder.build. (package:compiler/src/ssa/builder.dart:439:15)
#3 DiagnosticReporter.withCurrentElement (package:compiler/src/diagnostics/diagnostic_listener.dart:154:15)
#4 KernelSsaGraphBuilder.build (package:compiler/src/ssa/builder.dart:427:21)
#5 KernelSsaBuilder.build. (package:compiler/src/js_model/js_strategy.dart:525:22)
#6 CompilerTask.measure (package:compiler/src/common/tasks.dart:66:51)
#7 KernelSsaBuilder.build (package:compiler/src/js_model/js_strategy.dart:507:18)
#8 SsaBuilderTask.build (package:compiler/src/ssa/ssa.dart:365:21)
#9 SsaFunctionCompiler.compile (package:compiler/src/ssa/ssa.dart:99:28)
#10 OnDemandCodegenResults.getCodegenResults (package:compiler/src/common/codegen.dart:409:30)
#11 JsBackendStrategy.generateCode (package:compiler/src/js_model/js_strategy.dart:331:43)
#12 KernelCodegenWorkItem.run (package:compiler/src/js_model/js_strategy.dart:466:29)
#13 Compiler.emptyQueue.....
(package:compiler/src/compiler.dart:752:70)
#14 CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:181:35)
#15 Compiler.emptyQueue....
(package:compiler/src/compiler.dart:752:32)
#16 CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:181:35)
#17 Compiler.emptyQueue... (package:compiler/src/compiler.dart:750:28)
#18 DiagnosticReporter.withCurrentElement (package:compiler/src/diagnostics/diagnostic_listener.dart:154:15)
#19 Compiler.emptyQueue.. (package:compiler/src/compiler.dart:748:18)
#20 CodegenEnqueuer._forEach (package:compiler/src/js_backend/enqueuer.dart:266:12)
#21 CodegenEnqueuer.forEach (package:compiler/src/js_backend/enqueuer.dart:282:5)
#22 Compiler.emptyQueue. (package:compiler/src/compiler.dart:744:16)
#23 CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:181:35)
#24 Compiler.emptyQueue (package:compiler/src/compiler.dart:743:14)
#25 Compiler.processQueue. (package:compiler/src/compiler.dart:767:7)
#26 CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:181:35)
#27 Compiler.processQueue (package:compiler/src/compiler.dart:761:14)
#28 Compiler.runCodegenEnqueuer (package:compiler/src/compiler.dart:472:5)
#29 Compiler.runSequentialPhases (package:compiler/src/compiler.dart:680:27)

#30 Compiler.runInternal. (package:compiler/src/compiler.dart:315:7)

#31 Compiler.runInternal (package:compiler/src/compiler.dart:314:5)

#32 Compiler.run. (package:compiler/src/compiler.dart:235:11)

#33 compile. (package:compiler/compiler_api.dart:256:30)

#34 compile.compilationDone (package:compiler/src/dart2js.dart:729:3)

#35 main (package:compiler/src/dart2js.dart:1233:3)

Command: /Users/laurie/Development/flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev
/Users/laurie/Development/flutter/bin/cache/dart-sdk/bin/snapshots/dart2js.dart.snapshot
--platform-binaries=/Users/laurie/Development/flutter/bin/cache/flutter_web_sdk/kernel --invoker=flutter_tool -Ddart.vm.product=true
-DFLUTTER_WEB_AUTO_DETECT=true -DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/04817c99c9fd4956f27505204f7e344335810aed/
--native-null-assertions --no-source-maps -O4 -o
/Users/laurie/Development/GitHub/MtbTracker/appinstances/spokeandflow/.dart_tool/flutter_build/846120b4c5c0513ff1e25f1352e8304a/main.dart.js
/Users/laurie/Development/GitHub/MtbTracker/appinstances/spokeandflow/.dart_tool/flutter_build/846120b4c5c0513ff1e25f1352e8304a/app.dill

@sigmundch sigmundch added web-dart2js dart2js-crash area-web Use area-web for Dart web related issues, including the DDC and dart2js compilers and JS interop. labels Apr 4, 2024
@sigmundch
Copy link
Member

Thanks @butterbrain! To help us investigate, do you happen to have a small example of code you can share that will help us reproduce the issue?

From the error message, it seems the compiler failed on some constructor of a ShareData declaration. Could you share what that declaration looks like?

@sigmundch
Copy link
Member

OK, I isolated the issue and I can confirm this is now fixed.

There was an issue with the Dart stable 3.3.0 SDK, which was then fixed in a patch release with Dart 3.3.1. The issue was that object-literal JS-interop constructors (such SharedData.files here) didn't work in dart2js unless the enclosing library had a @JS() annotation. Instead of reporting an error, the compiler crashed! I believe it was because this used to be required in the old interop, but we decided it shouldn't be required anymore, but then one part of the compiled wasn't adjusted to properly understand code without the annotation. More details available in the issue describing the 3.3.1 cherry-pick:
#55057

Since this is now released in the stable channel, most likely the only thing you need to do is to update to the latest stable release of Dart and Flutter.

@sigmundch
Copy link
Member

Closing as duplicate of #55057

@sigmundch sigmundch closed this as not planned Won't fix, can't repro, duplicate, stale Apr 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-web Use area-web for Dart web related issues, including the DDC and dart2js compilers and JS interop. dart2js-crash web-dart2js
Projects
None yet
Development

No branches or pull requests

2 participants