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

Snap: Desktop scripts don't update GDK pixbuf module cache when reverting #94

Open
Guillaumebeuzeboc opened this issue Oct 27, 2023 · 2 comments
Labels

Comments

@Guillaumebeuzeboc
Copy link

The file .last_revision is stored under $SNAP_USER_DATA (revision specific), that is supposed to store the number of the revision.
Only if the content of the file changed (which normally cannot happen since only the dedicated revision can access its dedicated $SNAP_USER_DATA) or if the file didn't exist (first start) the snap is going to "update".
This update is especially generating the GDK pixbuf module file (the cache file) in the $SNAP_USER_COMMON (common to revisions). This cache file is holding hardcoded absolute path to libraries.

The scenario that is causing the problem:

  • install rev 1
    • launching it
    • need update since no .last_revision file
    • generating the cache file pointing to rev 1 lib
    • writing the last_revision file
  • install rev 2
    • launching it
    • need update since no last_revision file
    • generating the cache file pointing to rev 2 lib
    • writing the .last_revision file
  • reverting to rev 1
    • launching it
    • .last_revision file already exist and contains the rev 1
    • no need to regenerate the cache
    • crash because we used the cache file pointing to rev2 libraries

Because the .last_revision file is stored in a revision specific space, it cannot contain anything else than the revision it's supposed to hold. Hence, it is only used at the first launch. No update can happen otherwise.

Having the cache stored in a revision common space and the file controlling its update in a revision specific space seems to be the issue.

If the .last_revision file was placed in the $SNAP_USER_COMMON space it would allow a snap to "update" (thus regenerate the GDK pixbuf module file) after a revert.

Copy link
Contributor

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 30 days.

@github-actions github-actions bot added the Stale label Mar 15, 2024
@Guillaumebeuzeboc
Copy link
Author

The bug is still present.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant