From 3704567b21facf811a3122b89f39f3d7e6af7aef Mon Sep 17 00:00:00 2001 From: Ax1an Date: Wed, 21 Jul 2021 20:48:52 +0800 Subject: [PATCH] Fix possible version_conflict_engine_exception in bulk execution. (#7354) --- CHANGES.md | 1 + .../endpoint/EndpointRelationServerSideMetrics.java | 7 +++---- .../instance/ServiceInstanceRelationClientSideMetrics.java | 4 +++- .../instance/ServiceInstanceRelationServerSideMetrics.java | 4 +++- .../relation/service/ServiceRelationClientSideMetrics.java | 4 +++- .../relation/service/ServiceRelationServerSideMetrics.java | 4 +++- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 80da75371..9262598c7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -112,6 +112,7 @@ Release Notes. * Enhance persistent session timeout mechanism. Because the enhanced session could cache the metadata metrics forever, new timeout mechanism is designed for avoiding this specific case. * Fix Kafka transport topics are created duplicated with and without namespace issue +* Fix possible version_conflict_engine_exception in bulk execution. #### UI diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java index abde69045..1feb1af84 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java @@ -102,10 +102,9 @@ public class EndpointRelationServerSideMetrics extends Metrics { @Override public int remoteHashCode() { - int result = 17; - result = 31 * result + entityId.hashCode(); - result = (int) (31 * result + getTimeBucket()); - return result; + int n = 17; + n = 31 * n + this.entityId.hashCode(); + return n; } @Override diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java index e8c396cda..1a49b9894 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java @@ -114,7 +114,9 @@ public class ServiceInstanceRelationClientSideMetrics extends Metrics { @Override public int remoteHashCode() { - return hashCode(); + int n = 17; + n = 31 * n + this.entityId.hashCode(); + return n; } @Override diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java index 480c1cc0b..97fc99db7 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java @@ -114,7 +114,9 @@ public class ServiceInstanceRelationServerSideMetrics extends Metrics { @Override public int remoteHashCode() { - return hashCode(); + int n = 17; + n = 31 * n + this.entityId.hashCode(); + return n; } @Override diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java index d9205fc1d..1fa938c1a 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java @@ -100,7 +100,9 @@ public class ServiceRelationClientSideMetrics extends Metrics { @Override public int remoteHashCode() { - return this.hashCode(); + int n = 17; + n = 31 * n + this.entityId.hashCode(); + return n; } @Override diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java index ac5ed4336..5e66b0079 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java @@ -100,7 +100,9 @@ public class ServiceRelationServerSideMetrics extends Metrics { @Override public int remoteHashCode() { - return this.hashCode(); + int n = 17; + n = 31 * n + this.entityId.hashCode(); + return n; } @Override