From 7de392af65e90df6457e3afbf6eac7393e2d0dc4 Mon Sep 17 00:00:00 2001 From: mrproliu <741550557@qq.com> Date: Tue, 21 Apr 2020 18:59:17 +0800 Subject: [PATCH] fix cache update timer exception when disable profile in the backend (#4682) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix cache update timer exception when disable profile in the backend * add comment Co-authored-by: Mrproliu Co-authored-by: 吴晟 Wu Sheng --- .../skywalking/oap/server/core/cache/CacheUpdateTimer.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/CacheUpdateTimer.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/CacheUpdateTimer.java index 1a3033abc..fb0e4876e 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/CacheUpdateTimer.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/CacheUpdateTimer.java @@ -26,8 +26,10 @@ import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; import org.apache.skywalking.apm.util.RunnableWithExceptionProtection; import org.apache.skywalking.oap.server.core.CoreModule; +import org.apache.skywalking.oap.server.core.analysis.DisableRegister; import org.apache.skywalking.oap.server.core.analysis.TimeBucket; import org.apache.skywalking.oap.server.core.analysis.manual.networkalias.NetworkAddressAlias; +import org.apache.skywalking.oap.server.core.profile.ProfileTaskRecord; import org.apache.skywalking.oap.server.core.query.type.ProfileTask; import org.apache.skywalking.oap.server.core.storage.StorageModule; import org.apache.skywalking.oap.server.core.storage.cache.INetworkAddressAliasDAO; @@ -55,7 +57,10 @@ public enum CacheUpdateTimer { private void update(ModuleDefineHolder moduleDefineHolder) { updateNetAddressAliasCache(moduleDefineHolder); - updateProfileTask(moduleDefineHolder); + // Profile could be disabled by the OAL script. Only load the task when it is activated. + if (!DisableRegister.INSTANCE.include(ProfileTaskRecord.INDEX_NAME)) { + updateProfileTask(moduleDefineHolder); + } } /**