Skip to content

Commit ec659a9

Browse files
authored
Remove logging of trusted system classes to not risk causing ClassCircularityError. (#134431) (#134444)
We've seen this previously (and predictably) in #131539 due to logging Exceptions in isTriviallyAllowed. #133269 shows exactly the same symptoms. Fixes #133269 Fixes #133267 Fixes #133268
1 parent 2520a96 commit ec659a9

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/PolicyManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -369,15 +369,15 @@ private ModuleEntitlements getModuleScopeEntitlements(
369369
boolean isTriviallyAllowed(Class<?> requestingClass) {
370370
// note: do not log exceptions in here, this could interfere with loading of additionally necessary classes such as ThrowableProxy
371371
if (requestingClass == null) {
372-
generalLogger.debug("Entitlement trivially allowed: no caller frames outside the entitlement library");
372+
generalLogger.trace("Entitlement trivially allowed: no caller frames outside the entitlement library");
373373
return true;
374374
}
375375
if (requestingClass == NO_CLASS) {
376-
generalLogger.debug("Entitlement trivially allowed from outermost frame");
376+
generalLogger.trace("Entitlement trivially allowed from outermost frame");
377377
return true;
378378
}
379379
if (isTrustedSystemClass(requestingClass)) {
380-
generalLogger.debug("Entitlement trivially allowed from system module [{}]", requestingClass.getModule().getName());
380+
// note: no logging here, this has caused ClassCircularityErrors in certain cases
381381
return true;
382382
}
383383
generalLogger.trace("Entitlement not trivially allowed");

server/src/internalClusterTest/java/org/elasticsearch/cluster/settings/ClusterSettingsIT.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -574,16 +574,16 @@ private void testLoggerLevelUpdate(final BiConsumer<Settings.Builder, ClusterUpd
574574
assertEquals("Unknown level constant [BOOM].", e.getMessage());
575575

576576
try {
577-
final Settings.Builder testSettings = Settings.builder().put("logger.test", "TRACE").put("logger._root", "trace");
577+
final Settings.Builder testSettings = Settings.builder().put("logger.test", "DEBUG").put("logger._root", "debug");
578578
ClusterUpdateSettingsRequestBuilder updateBuilder = clusterAdmin().prepareUpdateSettings(
579579
TEST_REQUEST_TIMEOUT,
580580
TEST_REQUEST_TIMEOUT
581581
);
582582
consumer.accept(testSettings, updateBuilder);
583583

584584
updateBuilder.get();
585-
assertEquals(Level.TRACE, LogManager.getLogger("test").getLevel());
586-
assertEquals(Level.TRACE, LogManager.getRootLogger().getLevel());
585+
assertEquals(Level.DEBUG, LogManager.getLogger("test").getLevel());
586+
assertEquals(Level.DEBUG, LogManager.getRootLogger().getLevel());
587587
} finally {
588588
ClusterUpdateSettingsRequestBuilder undoBuilder = clusterAdmin().prepareUpdateSettings(
589589
TEST_REQUEST_TIMEOUT,

0 commit comments

Comments
 (0)