Skip to content

Merge release 1.24.2 into 2.0.x - #208

Merged
DavidBadura merged 4 commits into
2.0.xfrom
1.24.x-merge-up-into-2.0.x_t5nuS5kt
Sep 23, 2026
Merged

DavidBadura merged 4 commits into
2.0.xfrom
1.24.x-merge-up-into-2.0.x_t5nuS5kt

Conversation

@github-actions

Copy link
Copy Markdown

Release Notes for 1.24.2

1.24.x bugfix release (patch)

1.24.2

  • Total issues resolved: 0
  • Total pull requests resolved: 1
  • Total contributors: 1

bug

The cache keys used a colon, which is a reserved character in PSR-6 and
PSR-16, so the decorators failed with any compliant cache like symfony/cache.
Ids and subject ids are now hashed, and a cache hit is only accepted if the
cached key really belongs to the requested id or subject.

Removing keys also left entries behind: removeWithSubjectId() kept the
cached keys by id and remove() kept the cached key by subject, so deleted
personal data could still be decrypted until the cache expired. The
decorators now remember the cached key ids per subject and evict all of
them.
Covers the exact cache key format and removeWithSubjectId() after store(),
which were not caught by the existing tests. Also drops the rememberKeyId()
call in currentKeyFor(), it only caches the entry by subject, which is
evicted directly anyway.
Fix cache keys and eviction of the cipher key store decorators
@github-actions

Copy link
Copy Markdown
Author

Hello 👋

here is the most recent benchmark result:

StackHydratorWithCryptographyBench
==================================

+-------------------------------+-------------------+-------------------+-----------------+------------+
|                               | time (kde mode)                       | memory                       |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| subject                       | Tag: <current>    | Tag: base         | Tag: <current>  | Tag: base  |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| benchHydrate1Object ()        | 7.400μs (±0.00%)  | 7.200μs (±0.00%)  | 3.248mb         | 3.414mb    |
| benchExtract1Object ()        | 16.400μs (±0.00%) | 16.400μs (±0.00%) | 3.248mb         | 3.414mb    |
| benchHydrate1000Objects ()    | 4.198ms (±0.00%)  | 4.114ms (±0.00%)  | 3.548mb         | 3.553mb    |
| benchExtract1000Objects ()    | 8.957ms (±0.00%)  | 8.922ms (±0.00%)  | 3.653mb         | 3.197mb    |
| benchHydrate1000000Objects () | 2.318s (±0.00%)   | 2.351s (±0.00%)   | 3.548mb         | 3.092mb    |
| benchExtract1000000Objects () | 6.640s (±0.00%)   | 6.806s (±0.00%)   | 3.197mb         | 3.197mb    |
+-------------------------------+-------------------+-------------------+-----------------+------------+

HydratorWithLazyBench
=====================

+------------------------------------------+--------------------+--------------------+-----------------+------------+
|                                          | time (kde mode)                         | memory                       |
+------------------------------------------+--------------------+--------------------+-----------------+------------+
| subject                                  | Tag: <current>     | Tag: base          | Tag: <current>  | Tag: base  |
+------------------------------------------+--------------------+--------------------+-----------------+------------+
| benchHydrate1Object ()                   | 0.600μs (±0.00%)   | 0.800μs (±0.00%)   | 2.771mb         | 2.814mb    |
| benchHydrate1ObjectTriggerInit ()        | 7.200μs (±0.00%)   | 4.200μs (±0.00%)   | 2.771mb         | 2.814mb    |
| benchHydrate1000Objects ()               | 449.333μs (±0.00%) | 461.333μs (±0.00%) | 2.815mb         | 2.814mb    |
| benchHydrate1000ObjectsTriggerInit ()    | 3.268ms (±0.00%)   | 3.310ms (±0.00%)   | 2.863mb         | 2.855mb    |
| benchHydrate1000000Objects ()            | 298.094ms (±0.00%) | 301.333ms (±0.00%) | 2.815mb         | 2.814mb    |
| benchHydrate1000000ObjectsTriggerInit () | 2.041s (±0.00%)    | 2.057s (±0.00%)    | 2.863mb         | 2.855mb    |
+------------------------------------------+--------------------+--------------------+-----------------+------------+

HydratorBench
=============

+-------------------------------+------------------+------------------+-----------------+------------+
|                               | time (kde mode)                     | memory                       |
+-------------------------------+------------------+------------------+-----------------+------------+
| subject                       | Tag: <current>   | Tag: base        | Tag: <current>  | Tag: base  |
+-------------------------------+------------------+------------------+-----------------+------------+
| benchHydrate1Object ()        | 3.600μs (±0.00%) | 3.600μs (±0.00%) | 2.771mb         | 2.814mb    |
| benchExtract1Object ()        | 5.400μs (±0.00%) | 4.000μs (±0.00%) | 2.771mb         | 2.814mb    |
| benchHydrate1000Objects ()    | 2.461ms (±0.00%) | 2.463ms (±0.00%) | 2.946mb         | 2.938mb    |
| benchExtract1000Objects ()    | 2.254ms (±0.00%) | 2.267ms (±0.00%) | 2.874mb         | 2.866mb    |
| benchHydrate1000000Objects () | 1.318s (±0.00%)  | 1.342s (±0.00%)  | 2.946mb         | 2.938mb    |
| benchExtract1000000Objects () | 1.429s (±0.00%)  | 1.410s (±0.00%)  | 2.874mb         | 2.866mb    |
+-------------------------------+------------------+------------------+-----------------+------------+

StackHydratorBench
==================

+-------------------------------+------------------+------------------+-----------------+------------+
|                               | time (kde mode)                     | memory                       |
+-------------------------------+------------------+------------------+-----------------+------------+
| subject                       | Tag: <current>   | Tag: base        | Tag: <current>  | Tag: base  |
+-------------------------------+------------------+------------------+-----------------+------------+
| benchHydrate1Object ()        | 5.400μs (±0.00%) | 3.400μs (±0.00%) | 2.771mb         | 2.814mb    |
| benchExtract1Object ()        | 4.000μs (±0.00%) | 3.800μs (±0.00%) | 2.771mb         | 2.814mb    |
| benchHydrate1000Objects ()    | 2.443ms (±0.00%) | 2.419ms (±0.00%) | 2.946mb         | 2.938mb    |
| benchExtract1000Objects ()    | 2.450ms (±0.00%) | 2.273ms (±0.00%) | 2.874mb         | 2.866mb    |
| benchHydrate1000000Objects () | 1.338s (±0.00%)  | 1.341s (±0.00%)  | 2.946mb         | 2.938mb    |
| benchExtract1000000Objects () | 1.421s (±0.00%)  | 1.446s (±0.00%)  | 2.875mb         | 2.866mb    |
+-------------------------------+------------------+------------------+-----------------+------------+

HydratorWithCryptographyBench
=============================

+-------------------------------+-------------------+-------------------+-----------------+------------+
|                               | time (kde mode)                       | memory                       |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| subject                       | Tag: <current>    | Tag: base         | Tag: <current>  | Tag: base  |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| benchHydrate1Object ()        | 8.000μs (±0.00%)  | 8.000μs (±0.00%)  | 2.843mb         | 2.791mb    |
| benchExtract1Object ()        | 17.600μs (±0.00%) | 17.200μs (±0.00%) | 2.843mb         | 2.791mb    |
| benchHydrate1000Objects ()    | 4.145ms (±0.00%)  | 4.199ms (±0.00%)  | 3.092mb         | 3.092mb    |
| benchExtract1000Objects ()    | 8.957ms (±0.00%)  | 9.113ms (±0.00%)  | 3.197mb         | 3.197mb    |
| benchHydrate1000000Objects () | 2.360s (±0.00%)   | 2.357s (±0.00%)   | 3.092mb         | 3.092mb    |
| benchExtract1000000Objects () | 6.660s (±0.00%)   | 6.682s (±0.00%)   | 3.197mb         | 3.197mb    |
+-------------------------------+-------------------+-------------------+-----------------+------------+

This comment gets update everytime a new commit comes in!

@DavidBadura
DavidBadura merged commit 73aee5f into 2.0.x Sep 23, 2026
15 of 16 checks passed
@DavidBadura
DavidBadura deleted the 1.24.x-merge-up-into-2.0.x_t5nuS5kt branch September 23, 2026 17:48
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

Successfully merging this pull request may close these issues.

1 participant