This is an automated email from the ASF dual-hosted git repository.

pengys pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 07e799e  Fix bugs  (#1854)
07e799e is described below

commit 07e799e422c2d4705b5b0a1182896287a1e2487e
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Wed Oct 31 23:11:52 2018 +0800

    Fix bugs  (#1854)
    
    * Avoid service inventory object concurrency situation.
    
    * Fix concurrency for minute persistence and others
    
    * Fix document todo.
    
    * Update license. Fix package with dirty agent plugin jar files.
    
    * Fixed not combine error in persistence register worker.
---
 apm-dist/release-docs/LICENSE                              |  8 ++++----
 apm-sniffer/apm-agent/pom.xml                              |  1 +
 docs/en/setup/backend/backend-cluster.md                   |  4 ----
 .../server/core/analysis/worker/IndicatorTransWorker.java  | 10 +++++++---
 .../oap/server/core/register/ServiceInventory.java         | 14 ++++++++++++++
 .../core/register/service/ServiceInventoryRegister.java    |  1 +
 .../core/register/worker/RegisterPersistentWorker.java     |  4 +++-
 7 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/apm-dist/release-docs/LICENSE b/apm-dist/release-docs/LICENSE
index c7c4cf5..9dc3f53 100644
--- a/apm-dist/release-docs/LICENSE
+++ b/apm-dist/release-docs/LICENSE
@@ -225,15 +225,15 @@ Apache 2.0 licenses
 The following components are provided under the Apache License. See project 
link for details.
 The text of each license is the standard Apache 2.0 license.
 
-    raphw (byte-buddy) 1.7.9: http://bytebuddy.net/ , Apache 2.0
-    Google: grpc 1.8.0: https://grpc.io/ , Apache 2.0
-    Google: gprc-java 1.8.0: https://github.com/grpc/grpc-java, Apache 2.0
+    raphw (byte-buddy) 1.9.2: http://bytebuddy.net/ , Apache 2.0
+    Google: grpc 1.10.0: https://grpc.io/ , Apache 2.0
+    Google: gprc-java 1.10.0: https://github.com/grpc/grpc-java, Apache 2.0
     Google: guava 19.0: https://github.com/google/guava , Apache 2.0
     Google: gson 2.8.1: https://github.com/google/gson , Apache 2.0
     Google: opencensus-java 0.8.0: 
https://github.com/census-instrumentation/opencensus-java , Apache 2.0
     Google: proto-google-common-protos 0.1.9: 
https://github.com/googleapis/googleapis , Apache 2.0
     Google: jsr305 3.0.0: 
http://central.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.0/jsr305-3.0.0.pom
 , Apache 2.0
-    Elasticsearch BV (Elasticsearch) 5.5.0: 
https://www.elastic.co/products/elasticsearch , Apache 2.0
+    Elasticsearch BV (Elasticsearch) 6.3.2: 
https://www.elastic.co/products/elasticsearch , Apache 2.0
     lang-mustache-client 5.5.0: 
https://github.com/elastic/elasticsearch/tree/master/modules/lang-mustache , 
Apache 2.0
     parent-join-client 5.5.0: 
https://github.com/elastic/elasticsearch/tree/master/modules/parent-join , 
Apache 2.0
     reindex-client 5.5.0: 
https://github.com/elastic/elasticsearch/tree/master/modules/reindex , Apache 
2.0
diff --git a/apm-sniffer/apm-agent/pom.xml b/apm-sniffer/apm-agent/pom.xml
index e92d933..9094e3e 100644
--- a/apm-sniffer/apm-agent/pom.xml
+++ b/apm-sniffer/apm-agent/pom.xml
@@ -103,6 +103,7 @@
                         </goals>
                         <configuration>
                             <tasks>
+                                <delete 
dir="${project.basedir}/../../skywalking-agent" />
                                 <mkdir 
dir="${project.basedir}/../../skywalking-agent" />
                                 <copy 
file="${project.build.directory}/skywalking-agent.jar" 
tofile="${project.basedir}/../../skywalking-agent/skywalking-agent.jar" 
overwrite="true" />
                                 <mkdir 
dir="${project.basedir}/../../skywalking-agent/config" />
diff --git a/docs/en/setup/backend/backend-cluster.md 
b/docs/en/setup/backend/backend-cluster.md
index cf4cd60..8d7d006 100644
--- a/docs/en/setup/backend/backend-cluster.md
+++ b/docs/en/setup/backend/backend-cluster.md
@@ -38,7 +38,3 @@ cluster:
     labelSelector: app=collector,release=skywalking
     uidEnvName: SKYWALKING_COLLECTOR_UID
 ```
-
-TODO @hanahmily
-
-settings descriptions.
\ No newline at end of file
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/IndicatorTransWorker.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/IndicatorTransWorker.java
index b49814c..537d6a4 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/IndicatorTransWorker.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/IndicatorTransWorker.java
@@ -48,9 +48,6 @@ public class IndicatorTransWorker extends 
AbstractWorker<Indicator> {
     }
 
     @Override public void in(Indicator indicator) {
-        if (Objects.nonNull(minutePersistenceWorker)) {
-            minutePersistenceWorker.in(indicator);
-        }
         if (Objects.nonNull(hourPersistenceWorker)) {
             hourPersistenceWorker.in(indicator.toHour());
         }
@@ -60,5 +57,12 @@ public class IndicatorTransWorker extends 
AbstractWorker<Indicator> {
         if (Objects.nonNull(monthPersistenceWorker)) {
             monthPersistenceWorker.in(indicator.toMonth());
         }
+        /**
+         * Minute persistent must be at the end of all time dimensionalities
+         * Because #toHour, #toDay, #toMonth include clone inside, which could 
avoid concurrency situation.
+         */
+        if (Objects.nonNull(minutePersistenceWorker)) {
+            minutePersistenceWorker.in(indicator);
+        }
     }
 }
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java
index c2c2199..8e75fbd 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java
@@ -76,6 +76,20 @@ public class ServiceInventory extends RegisterSource {
         return result;
     }
 
+    public ServiceInventory getClone() {
+        ServiceInventory inventory = new ServiceInventory();
+        inventory.setSequence(getSequence());
+        inventory.setRegisterTime(getRegisterTime());
+        inventory.setHeartbeatTime(getHeartbeatTime());
+        inventory.setName(name);
+        inventory.setIsAddress(isAddress);
+        inventory.setAddressId(addressId);
+        inventory.setMappingLastUpdateTime(mappingLastUpdateTime);
+        inventory.setMappingServiceId(mappingServiceId);
+
+        return inventory;
+    }
+
     @Override public boolean equals(Object obj) {
         if (this == obj)
             return true;
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/ServiceInventoryRegister.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/ServiceInventoryRegister.java
index 531d3f1..24d0c92 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/ServiceInventoryRegister.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/ServiceInventoryRegister.java
@@ -103,6 +103,7 @@ public class ServiceInventoryRegister implements 
IServiceInventoryRegister {
     @Override public void updateMapping(int serviceId, int mappingServiceId) {
         ServiceInventory serviceInventory = 
getServiceInventoryCache().get(serviceId);
         if (Objects.nonNull(serviceInventory)) {
+            serviceInventory = serviceInventory.getClone();
             serviceInventory.setMappingServiceId(mappingServiceId);
             
serviceInventory.setMappingLastUpdateTime(System.currentTimeMillis());
 
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
index dc6a6a7..57c663d 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
@@ -22,7 +22,7 @@ import java.util.*;
 import org.apache.skywalking.apm.commons.datacarrier.DataCarrier;
 import org.apache.skywalking.apm.commons.datacarrier.consumer.IConsumer;
 import org.apache.skywalking.oap.server.core.analysis.data.EndOfBatchContext;
-import org.apache.skywalking.oap.server.core.register.*;
+import org.apache.skywalking.oap.server.core.register.RegisterSource;
 import org.apache.skywalking.oap.server.core.source.Scope;
 import org.apache.skywalking.oap.server.core.storage.*;
 import org.apache.skywalking.oap.server.core.worker.AbstractWorker;
@@ -63,6 +63,8 @@ public class RegisterPersistentWorker extends 
AbstractWorker<RegisterSource> {
     private void onWork(RegisterSource registerSource) {
         if (!sources.containsKey(registerSource)) {
             sources.put(registerSource, registerSource);
+        } else {
+            sources.get(registerSource).combine(registerSource);
         }
 
         if (registerSource.getEndOfBatchContext().isEndOfBatch()) {

Reply via email to