-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Broken Concurrency in Webworker with multiple stores / never Ready() #1008
Comments
pull request here for tests: #1009 digging around, it looks like there's an upgradeneeded request that's blocked leading to the hang:
I've stared at the code for awhile and can't really understand how to restart the _getConnection it seems like after the if block close, we need to extract a functional while loop. |
further investigation seems to indicates there's atleast two issues going on. There's definitely the onblock concurrency needing to be handled, but there's also this versioning:
it does not appear to handle concurrency |
I'm a bit behind on localForage issues but I'll admit that web worker support is not something a lot of users tend to use so that might be why this is buggy. The new 2.0 rewrite #906 aims to have better database initialisation/ready handlers, but aside from that I'm honestly not sure off the top of my head what's wrong here, sorry 🙁 |
I made a PR that may elucidate some aspect of this issue, I don't have time to get into the nitty gritty @disarticulate - Could you test out my change, it's one line of code, I'm curious to see what it does for you? |
test case:
Chromium Version 87.0.4280.88 (Official Build) snap (64-bit)
console:
Ubuntu Firefox Version 84.0 (64-bit)
Bug Use Case (it's not a feature): A receiving file cache where webworkers get multi part files (via broken Webrtc file send limit) to rebuild
maybe related to #991 as it appears that data is actually set via inspection of application/indexDb but the ready() promise is never fulfilled (as describe din the API, we're not suppose to need ot check ready).
The text was updated successfully, but these errors were encountered: