• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

zalando / skipper / 17432746864 / 1
78%
master: 78%

Build:
DEFAULT BRANCH: master
Ran 03 Sep 2025 12:18PM UTC
Files 282
Run time 12s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Sep 2025 12:01PM UTC coverage: 77.687% (+0.01%) from 77.675%
17432746864.1

push

github

web-flow
fix: jwt predicates with regexp cached on create. (#3611)

fix: jwt predicates with regexp cached on create
https://github.com/zalando/skipper/issues/3609.

Routing table updates are frequently in skipper. We assume every 3s a
rebuild of the routing tree. Therefore a leak in objects like predicate
creation can visibly leak memory. As written in
https://github.com/zalando/skipper/issues/3609 and mentioned in
https://github.com/zalando/skipper/pull/3600/files\#r2313466897 we
appended unbounded and never cleand up predicates in the registry Now we
use a map to also cache creation of the predicate to not grow unbounded
and this also speedsup predicate creation and reduces number of objects,
so allocations and memory if the same eskip.Predicate string would be
used often.


Implementation of course do not change the hot path:
```
% benchstat old.txt new.txt                                                                                                                                  fix/predicate-cache-clean
goos: linux
goarch: amd64
pkg: github.com/zalando/skipper/predicates/auth
cpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics
                        │   old.txt    │               new.txt               │
                        │    sec/op    │    sec/op     vs base               │
JWTPayloadAnyKVRegexp     88.05n ± 25%   87.00n ± 27%       ~ (p=0.726 n=10)
JWTPayloadAnyKVRegexp-2   66.28n ±  0%   66.61n ±  0%       ~ (p=0.093 n=10)
JWTPayloadAnyKVRegexp-4   66.52n ±  1%   66.41n ±  1%       ~ (p=0.325 n=10)
JWTPayloadAnyKVRegexp-8   66.56n ±  1%   66.71n ±  1%       ~ (p=0.956 n=10)
geomean                   71.30n         71.18n        -0.16%

                        │   old.txt    │               new.txt               │
                        │     B/op     │    B/op     vs base                 │
JWTPayloadAnyKVRegexp     0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
JWTPayloadAnyKVRegexp-2   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
JW... (continued)

23540 of 30301 relevant lines covered (77.69%)

100487.93 hits per line

Source Files on job 17432746864.1
  • Tree
  • List 282
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 17432746864
  • de9cde9f on github
  • Prev Job for on master (#17375616047.1)
  • Next Job for on master (#17443866373.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc