Skip to content

cache_tx_proxy.content is now serialized, but backend reads it raw #51

Description

@kitzberger

Summary

Commit 5b77ebd removed TransientBackendInterface from ReverseProxyCacheBackend. The tx_proxy cache uses VariableFrontend, which serializes entries unless the backend is transient. Dropping the marker means stored URLs are now serialized before being written to cache_tx_proxy.content. Previously content held the plain URL.

The commit message states this is "functionally identical," but it is not, because the backend never deserializes them:
getAllCachedUrls() runs a raw SELECT content and uses the value directly.
flushByTag() / flushByTags() call $this->get(), which resolves to Typo3DatabaseBackend::get() and returns the raw content with no unserialize.

Impact

The strings passed to ProxyProviderInterface::flushAllUrls() / flushCacheForUrls() are now serialized blobs (e.g. s:30:"https://example.com/page";) instead of URLs. The local DB truncate/delete still happens, but the HTTP PURGE calls target invalid URLs, so reverse-proxy/CDN invalidation silently no longer works. Existing pre-upgrade rows (plain URLs) and new rows (serialized) also coexist with inconsistent formats.

Expected

flush() / flushByTag() / flushByTags() send the original page URLs to the proxy provider.


  • TYPO3 13.4
  • EXT:proxycachemanager 5.0.0

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