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

when deleting all sessions or bundles, load_emuDB does not delete the annotation items from the cache #269

Open
MJochim opened this issue May 26, 2023 · 0 comments

Comments

@MJochim
Copy link

MJochim commented May 26, 2023

I noticed this while reviewing PR #268 (thanks @FredrikKarlssonSpeech).

This is an edge case bug. Steps to reproduce:

  1. Load a non-empty database (i.e. one that contains at least one bundle with at least one annotation item).
  2. Delete all its sessions from disk.
  3. Load the database again.

Now list_bundles(db) shows 0 bundles, but query() will still return the annotation items from the deleted data. This is because update_cache() just bails instead of deleting them from cache:

https://github.com/IPS-LMU/emuR/blob/9c7cfd899755af3704e46d37b63f3be329bfed70/R/emuR-database.caching.R#LL29C1-L31C4

This problem was probably introduced years ago in f2f47da, while ”fighting with unit tests.” However maybe the whole loading process may have behaved differently at the time. It should probably be fixed by emptying the cache instead of bailing.

PR #268 broadens the problem, because it now allows loading of databases with empty sessions only; without addressing the issue. I will still accept the pull request because at the moment it is very useful and the bug has already existed for a while.

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

No branches or pull requests

1 participant