-
-
Notifications
You must be signed in to change notification settings - Fork 39
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
[Bug/Support]: elpaca<-create is potentially non-atomic causing some order to be processed twice #421
Comments
Thanks for the report.
Typo?
Can you provide a test using the The way the lock file is intended to work is that the recipes for all init packages and their dependencies are written. Then they are used as the first menu. This should prevent other menus from being checked during init altogether. |
Unfortunately the only logs I have are at |
It's hard to tell exactly what's going on based off of those logs alone. |
I've found a reliable way to reproduce the issue. (elpaca-test
:interactive t
:init
(elpaca transient)
(elpaca magit)) Your initial analysis seems probable. Compat is queued twice.
After digging into the source of url-retrieve-synchronously, I see it calls Adding an explicit declaration for compat works around the issue: (elpaca-test
:interactive t
:init
(elpaca compat)
(elpaca transient)
(elpaca magit)) And the issue doesn't occur when the menu caches are present. |
I believe during |
Confirmation
Elpaca Version
forked from
141b2f5
Operating System
ubuntu
Description
elpaca<-create
callselpaca-menu-functions
which calls the asyncurl-retrieve-synchronously
. During that another package will potentially depend on the package and causeelpaca<-create
to be called again for the same id.This comes up after using the new lock file feature where some package does not search inside menus, so it is no longer the case that all the menus are fetched up front.
The text was updated successfully, but these errors were encountered: