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

zalando / skipper / 17432746864
78%

Build:
DEFAULT BRANCH: master
Ran 03 Sep 2025 12:18PM UTC
Jobs 1
Files 282
Run time 7min
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

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)

24 of 27 new or added lines in 1 file covered. (88.89%)

2 existing lines in 1 file now uncovered.

23540 of 30301 relevant lines covered (77.69%)

100487.93 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
3
90.23
0.03% predicates/auth/jwt.go

Uncovered Existing Lines

Lines Coverage ∆ File
2
95.54
-1.79% eskipfile/watch.go
Jobs
ID Job ID Ran Files Coverage
1 17432746864.1 03 Sep 2025 12:18PM UTC 282
77.69
GitHub Action Run
Source Files on build 17432746864
  • Tree
  • List 282
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #17432746864
  • de9cde9f on github
  • Prev Build on master (#17375616047)
  • Next Build on master (#17443866373)
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