Skip to content

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

@MJochim

Description

@MJochim

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions