-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
Importing a revoked blob URL succeeds if it was imported in a different worker before revoking #12248
Comments
It seems like the blob resolution has to happen in
Implementing this would need some care to avoid leaking the blobs. In particular, the specifier → blob map in I haven't dealt much with the module resolution code so far, and I probably won't have time to work any further on this until late next week, but I've written down what I have so far in case someone wants to take it. |
I am in the process of doing a big refactor of the module loading in |
…s across agents, a=testonly Automatic update from web-platform-tests Add tests for importing revoked blob URLs across agents (#30986) Ref: denoland/deno#12248 -- wpt-commits: a9327c5dee0c2428e480cc78bdf6542a2af8fc63 wpt-pr: 30986
…s across agents, a=testonly Automatic update from web-platform-tests Add tests for importing revoked blob URLs across agents (#30986) Ref: denoland/deno#12248 -- wpt-commits: a9327c5dee0c2428e480cc78bdf6542a2af8fc63 wpt-pr: 30986
I'm not 100% sure this is related, but I'm currently dealing with an ever growing
later on I call
where I have expected that this would "kill" the blob, not sure what exactly it does, but neither the related file in |
Different workers/threads have different module graphs, which means importing the same module will result in the same module object within a same thread, but in different module objects across threads:
This means that within a thread/worker, you can import now-revoked blob URLs if they were imported for the first time before being revoked:
But it should not be possible to import a revoked blob URL from a worker in which it has never been imported, even if it has been imported in a different thread. Deno will import it anyway, though:
This seems to be caused because Deno CLI has a cache of module sources, so that if the same module is imported from different workers, it doesn't result in multiple fetches. But since the cache is keyed by the URL, it doesn't take into consideration whether the blob has since been revoked.
This was found while investigating #12247, and a solution to this issue would have to consider that one as well.
The text was updated successfully, but these errors were encountered: