The GitHub Actions job "CI" on 
rocketmq-dashboard.git/fix/settings-datasource-cache-scope-v2 has failed.
Run started by GitHub user zjncs (triggered by zjncs).

Head commit for run:
d556b9ecd762b6f2d4376f9e5b328276f352d641 / Zhao Jianing <[email protected]>
fix(settings): stop caching the parameterized data-source query

The @Cacheable(DATA_SOURCE_CACHE) on the parameterised, paginated
listDataSources overload contradicts the cache's documented scope.
SettingsService.java:211-222 documents the cache as a cache of the
FULL list; CacheConfig.java:50-51 backs it with a bare
ConcurrentMapCacheManager (no TTL, no size bound, no eviction); and
GET /api/settings/datasources/page is not in
AuthInterceptor.isAdminOnlyGetPath, so any authenticated reader can
pin one permanent PageResult per distinct search term — each metric
tab's search box is a slow memory leak with no upper bound.

The overload keeps its validation and repository call; it simply stops
participating in the cache. The full-list cache (the documented scope,
served once per eviction generation) is untouched, and every write path
still evicts it via allEntries.

The regression test runs inside a real application context that
registers the production CacheConfig: the control proves the full-list
cache works (repository hit exactly once), the failing case sends 50
distinct searches and asserts zero permanent entries. Mutated back
(@Cacheable restored on the overload), the bound test reddens with 50
entries.

Resubmission of #5606 against the rocketmq-studio branch per review,
with the review feedback applied: test method names end with Test,
trailing newlines verified, severity framing corrected (the cached
DataSourceVO carries no credential fields — the argument is the
unbounded heap alone), and @Configuration/@Bean imported rather than
fully qualified.

Signed-off-by: zjncs <[email protected]>

Report URL: 
https://github.com/apache/rocketmq-dashboard/actions/runs/37909868337

With regards,
GitHub Actions via GitBox

Reply via email to