Comments (3)
@Miiite - in your investigation, did you see any DeferredLoadException messages being thrown?
The dart2js compiler currently tracks and event-log when deferred loading is taking place. Internal customers have used this log data to diagnose difficult loading errors (sometimes similar in nature of trying to figure out what brought the application to a bad state, like you did).
First thing I'd like to make sure is that this event log is already available to you. Today this event-log is attached to the error that is thrown when a deferred load fails, so we hope it is.
Second thing is to study what additional data would be sufficient to help in this kind of diagnosis. We currently log a lot of details about the state of the loading process, but I don't believe we include a reason for retries as you suggested.
from sdk.
Is the error because the second version of the app has been redeployed in the same server directory, overwriting the resources needed by running copies of the first version of the app? Typically web apps are deployed in versioned directories so that multiple versions can be executing in client browsers at the same time.
from sdk.
I should have mentioned flutter/flutter#127459, too. Other users have requested a versioning strategy directly in how the compiler generates requests (e.g. adding hashes to the file-names or to the requests somehow).
My recommendation has been to address this as a serving infrastructure solution, like @rakudrama mentions above (see also flutter/flutter#127459 (comment)). This is what many large applications using Dart do today already. It also helps them to clarefully roll out new versions incrementally and not to all users at once.
If we believe a client-based solution is preferable, my recommendation would be to first refactor the script load management logic out of the SDK and into a package attached by the application. This then allows developers to update the loading strategy more easily if they so desire.
from sdk.
Related Issues (20)
- Extension type implementing Stream can't be used as a return types of a async* function HOT 3
- Generic function type mismatch: `type '(Subtype) => ReturnType' is not a subtype of type '((Supertype) => ReturnType)?'` HOT 4
- Null check exceptions during json serialization during dry run HOT 1
- Extension type doesn't extend `Object` HOT 2
- Adding package http makes dart run really slow HOT 18
- Analyzer Feedback from IntelliJ
- Create an issue HOT 1
- Incorrect error messages while parsing (non-existent) logical operators `or`, `and`, and `xor` HOT 2
- No error in the analyzer to augment different type
- No error in the analyzer if augmenting type declares different number of parameters
- No error in the analyzer if augment class goes before original class HOT 2
- Hot reload test suite crashes test bots when parsing results logs
- [dart2js] Incorrect code generated in body of a function used as a .call getter
- [ddc] flaky behavior in for-loop eval test HOT 2
- evaluate performance for multi-option contexts HOT 1
- CFE allows trailing comma in catch clause
- Analyzer Feedback from IntelliJ
- [msan/tsan] MemorySanitizer can not mmap the shadow memory // Disabled ASLR // non-PIE HOT 6
- [gardening] standalone/io/resource_handle_test flaky timeout
- Make connectionInfo a top-level field of the HttpProfileRequest type in the dart:io Service Extension spec
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sdk.