From 7cf82f318e5972bfc81f06c8f3efb9da7f2c5621 Mon Sep 17 00:00:00 2001 From: xuxiawei <48479214+xuxiawei@users.noreply.github.com> Date: Wed, 24 Nov 2021 12:02:20 +0800 Subject: [PATCH] Fix incorrect use of ReentrantLock in GRPCExporter (#8177) fix that an imse (IllegalMonitorStateException) exception will be thrown when finally releasing the lock when an exception occurs in lock() locking --- .../oap/server/exporter/provider/grpc/GRPCExporter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oap-server/exporter/src/main/java/org/apache/skywalking/oap/server/exporter/provider/grpc/GRPCExporter.java b/oap-server/exporter/src/main/java/org/apache/skywalking/oap/server/exporter/provider/grpc/GRPCExporter.java index 53fc7e9953..fd6d28e65c 100644 --- a/oap-server/exporter/src/main/java/org/apache/skywalking/oap/server/exporter/provider/grpc/GRPCExporter.java +++ b/oap-server/exporter/src/main/java/org/apache/skywalking/oap/server/exporter/provider/grpc/GRPCExporter.java @@ -104,8 +104,8 @@ public class GRPCExporter extends MetricFormatter implements MetricValuesExportS public void fetchSubscriptionList() { final long currentTimeMillis = System.currentTimeMillis(); if (currentTimeMillis - lastFetchTimestamp > FETCH_SUBSCRIPTION_PERIOD) { + fetchListLock.lock(); try { - fetchListLock.lock(); if (currentTimeMillis - lastFetchTimestamp > FETCH_SUBSCRIPTION_PERIOD) { lastFetchTimestamp = currentTimeMillis; SubscriptionsResp subscription = blockingStub.withDeadlineAfter(10, TimeUnit.SECONDS) -- GitLab