https://bugs.kde.org/show_bug.cgi?id=524245

            Bug ID: 524245
           Summary: Plasma theme pixmap cache is not invalidated when a
                    theme's files change under the same name
    Classification: Frameworks and Libraries
           Product: frameworks-ksvg
      Version First 6.6.0
       Reported In:
          Platform: Kubuntu
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: General
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Product: frameworks-ksvg · Component: General · Severity: minor

frameworks-ksvg is "Library for complex SVG handling, including support for
dynamic re-coloring, 9-patch images, and disk caching" — the disk caching
clause is this bug. It has a single General component. If the cache turns out
not to be KSvg's, the other candidate is the libplasma product.

SUMMARY

~/.cache/plasma_theme_<name>.kcache is keyed by theme name only. Editing a
theme's SVG artwork in place — same theme name, changed files — leaves the
stale cache serving the old artwork indefinitely. There is no mtime or content
check.

STEPS TO REPRODUCE

1. Copy a system desktop theme to ~/.local/share/plasma/desktoptheme/<name>/,
keeping the original name.
2. Modify one of its widgets/*.svgz files.
3. Restart plasmashell.

OBSERVED RESULT

The old artwork continues to render. Only deleting the cache makes the change
visible:

rm -f ~/.cache/plasma_theme_*.kcache ~/.cache/ksvg-elements

and the deletion must happen while plasmashell is stopped, or it repopulates
from memory.

EXPECTED RESULT

The cache entry is invalidated when the underlying theme files change — a
directory mtime check at load would be enough.

ADDITIONAL INFORMATION

Caching by name is entirely reasonable for the normal case where themes are
immutable packages. It becomes a trap in combination with report #4, whose
workaround requires editing a theme in place under its existing name — so the
two together produce a change that is invisible for two separate reasons at
once.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to