You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2023/02/16 06:18:05 UTC

[dubbo] branch 3.2 updated (7a774d21a6 -> 6c062586b4)

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

albumenj pushed a change to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git


    from 7a774d21a6 Fix conflict
     add 1dfd06b381 Fix concurrent issue in scope model (#11525)
     add 08d278f3f5 Fix synchronized in ModelEnvironment (#11584)
     new 6c062586b4 Merge branch 'apache-3.1' into apache-3.2

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/dubbo/common/config/Environment.java    |   2 +-
 .../dubbo/common/config/ModuleEnvironment.java     |   2 +-
 .../apache/dubbo/rpc/model/ApplicationModel.java   | 415 +++++++++++----------
 .../org/apache/dubbo/rpc/model/FrameworkModel.java | 161 ++++----
 .../org/apache/dubbo/rpc/model/ModuleModel.java    | 137 +++----
 .../org/apache/dubbo/rpc/model/ScopeModel.java     |  66 ++--
 .../common/CommonScopeModelInitializerTest.java    |   6 +-
 .../common/config/ConfigurationUtilsTest.java      |   6 +-
 .../dubbo/common/config/EnvironmentTest.java       |   4 +-
 .../common/extension/ExtensionDirectorTest.java    |  24 +-
 .../inject/AdaptiveExtensionInjectorTest.java      |   2 +-
 .../reporter/FrameworkStatusReportServiceTest.java |   4 +-
 .../dubbo/rpc/model/ApplicationModelTest.java      |   8 +-
 .../apache/dubbo/rpc/model/FrameworkModelTest.java |   2 +-
 .../rpc/model/FrameworkServiceRepositoryTest.java  |   6 +-
 .../apache/dubbo/rpc/model/ModuleModelTest.java    |  14 +-
 .../rpc/model/ModuleServiceRepositoryTest.java     |   6 +-
 .../rpc/model/ReflectionServiceDescriptorTest.java |   2 +-
 .../ScopeModelAwareExtensionProcessorTest.java     |   6 +-
 .../org/apache/dubbo/rpc/model/ScopeModelTest.java |   2 +-
 .../apache/dubbo/rpc/model/ScopeModelUtilTest.java |   6 +-
 .../dubbo/rpc/model/ServiceRepositoryTest.java     |   6 +-
 .../config/ConfigScopeModelInitializerTest.java    |   6 +-
 .../apache/dubbo/config/ReferenceConfigTest.java   |   8 +-
 .../dubbo/config/bootstrap/MultiInstanceTest.java  |   2 +-
 .../customize/DubboSpringInitCustomizerTest.java   |   2 +-
 .../dubbo/qos/command/impl/InvokeTelnetTest.java   |   4 +-
 .../apache/dubbo/qos/command/impl/LiveTest.java    |   2 +-
 .../org/apache/dubbo/qos/command/impl/LsTest.java  |   2 +-
 .../apache/dubbo/qos/command/impl/OfflineTest.java |   2 +-
 .../apache/dubbo/qos/command/impl/OnlineTest.java  |   2 +-
 .../qos/command/impl/PublishMetadataTest.java      |   2 +-
 .../qos/command/impl/SerializeCheckStatusTest.java |   1 +
 .../command/impl/SerializeWarnedClassesTest.java   |   1 +
 .../qos/command/util/SerializeCheckUtilsTest.java  |   1 +
 .../metadata/MetadataServiceNameMappingTest.java   |   4 +-
 .../dubbo/DecodeableRpcInvocationTest.java         |   2 +-
 .../rpc/protocol/injvm/InjvmClassLoaderTest.java   |   5 +-
 .../rpc/protocol/injvm/InjvmDeepCopyTest.java      |   3 +-
 .../tri/service/TriBuiltinServiceTest.java         |   4 +-
 40 files changed, 487 insertions(+), 453 deletions(-)


[dubbo] 01/01: Merge branch 'apache-3.1' into apache-3.2

Posted by al...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 6c062586b4347f0e75a5be246c2278c52544f23b
Merge: 7a774d21a6 08d278f3f5
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Thu Feb 16 14:16:12 2023 +0800

    Merge branch 'apache-3.1' into apache-3.2
    
    # Conflicts:
    #       dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java
    #       dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java
    #       dubbo-common/src/test/java/org/apache/dubbo/rpc/model/ApplicationModelTest.java

 .../apache/dubbo/common/config/Environment.java    |   2 +-
 .../dubbo/common/config/ModuleEnvironment.java     |   2 +-
 .../apache/dubbo/rpc/model/ApplicationModel.java   | 415 +++++++++++----------
 .../org/apache/dubbo/rpc/model/FrameworkModel.java | 161 ++++----
 .../org/apache/dubbo/rpc/model/ModuleModel.java    | 137 +++----
 .../org/apache/dubbo/rpc/model/ScopeModel.java     |  66 ++--
 .../common/CommonScopeModelInitializerTest.java    |   6 +-
 .../common/config/ConfigurationUtilsTest.java      |   6 +-
 .../dubbo/common/config/EnvironmentTest.java       |   4 +-
 .../common/extension/ExtensionDirectorTest.java    |  24 +-
 .../inject/AdaptiveExtensionInjectorTest.java      |   2 +-
 .../reporter/FrameworkStatusReportServiceTest.java |   4 +-
 .../dubbo/rpc/model/ApplicationModelTest.java      |   8 +-
 .../apache/dubbo/rpc/model/FrameworkModelTest.java |   2 +-
 .../rpc/model/FrameworkServiceRepositoryTest.java  |   6 +-
 .../apache/dubbo/rpc/model/ModuleModelTest.java    |  14 +-
 .../rpc/model/ModuleServiceRepositoryTest.java     |   6 +-
 .../rpc/model/ReflectionServiceDescriptorTest.java |   2 +-
 .../ScopeModelAwareExtensionProcessorTest.java     |   6 +-
 .../org/apache/dubbo/rpc/model/ScopeModelTest.java |   2 +-
 .../apache/dubbo/rpc/model/ScopeModelUtilTest.java |   6 +-
 .../dubbo/rpc/model/ServiceRepositoryTest.java     |   6 +-
 .../config/ConfigScopeModelInitializerTest.java    |   6 +-
 .../apache/dubbo/config/ReferenceConfigTest.java   |   8 +-
 .../dubbo/config/bootstrap/MultiInstanceTest.java  |   2 +-
 .../customize/DubboSpringInitCustomizerTest.java   |   2 +-
 .../dubbo/qos/command/impl/InvokeTelnetTest.java   |   4 +-
 .../apache/dubbo/qos/command/impl/LiveTest.java    |   2 +-
 .../org/apache/dubbo/qos/command/impl/LsTest.java  |   2 +-
 .../apache/dubbo/qos/command/impl/OfflineTest.java |   2 +-
 .../apache/dubbo/qos/command/impl/OnlineTest.java  |   2 +-
 .../qos/command/impl/PublishMetadataTest.java      |   2 +-
 .../qos/command/impl/SerializeCheckStatusTest.java |   1 +
 .../command/impl/SerializeWarnedClassesTest.java   |   1 +
 .../qos/command/util/SerializeCheckUtilsTest.java  |   1 +
 .../metadata/MetadataServiceNameMappingTest.java   |   4 +-
 .../dubbo/DecodeableRpcInvocationTest.java         |   2 +-
 .../rpc/protocol/injvm/InjvmClassLoaderTest.java   |   5 +-
 .../rpc/protocol/injvm/InjvmDeepCopyTest.java      |   3 +-
 .../tri/service/TriBuiltinServiceTest.java         |   4 +-
 40 files changed, 487 insertions(+), 453 deletions(-)

diff --cc dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java
index 1a10209931,31c11f6aca..00b589402a
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java
@@@ -237,50 -141,52 +140,52 @@@ public class ApplicationModel extends S
  
      @Override
      protected void onDestroy() {
-         // 1. remove from frameworkModel
-         frameworkModel.removeApplication(this);
+         synchronized (instLock) {
+             // 1. remove from frameworkModel
+             frameworkModel.removeApplication(this);
+ 
+             // 2. pre-destroy, set stopping
+             if (deployer != null) {
+                 // destroy registries and unregister services from registries first to notify consumers to stop consuming this instance.
+                 deployer.preDestroy();
+             }
  
-         // 2. pre-destroy, set stopping
-         if (deployer != null) {
-             // destroy registries and unregister services from registries first to notify consumers to stop consuming this instance.
-             deployer.preDestroy();
-         }
+             // 3. Try to destroy protocols to stop this instance from receiving new requests from connections
+             frameworkModel.tryDestroyProtocols();
  
-         // 3. Try to destroy protocols to stop this instance from receiving new requests from connections
-         frameworkModel.tryDestroyProtocols();
+             // 4. destroy application resources
 -            for (ModuleModel moduleModel : new ArrayList<>(moduleModels)) {
++            for (ModuleModel moduleModel : moduleModels) {
+                 if (moduleModel != internalModule) {
+                     moduleModel.destroy();
+                 }
+             }
+             // 5. destroy internal module later
+             internalModule.destroy();
  
-         // 4. destroy application resources
-         for (ModuleModel moduleModel : moduleModels) {
-             if (moduleModel != internalModule) {
-                 moduleModel.destroy();
+             // 6. post-destroy, release registry resources
+             if (deployer != null) {
+                 deployer.postDestroy();
              }
-         }
-         // 5. destroy internal module later
-         internalModule.destroy();
  
-         // 6. post-destroy, release registry resources
-         if (deployer != null) {
-             deployer.postDestroy();
-         }
+             // 7. destroy other resources (e.g. ZookeeperTransporter )
+             notifyDestroy();
  
-         // 7. destroy other resources (e.g. ZookeeperTransporter )
-         notifyDestroy();
+             if (environment != null) {
+                 environment.destroy();
+                 environment = null;
+             }
+             if (configManager != null) {
+                 configManager.destroy();
+                 configManager = null;
+             }
+             if (serviceRepository != null) {
+                 serviceRepository.destroy();
+                 serviceRepository = null;
+             }
  
-         if (environment != null) {
-             environment.destroy();
-             environment = null;
-         }
-         if (configManager != null) {
-             configManager.destroy();
-             configManager = null;
+             // 8. destroy framework if none application
+             frameworkModel.tryDestroy();
          }
-         if (serviceRepository != null) {
-             serviceRepository.destroy();
-             serviceRepository = null;
-         }
- 
-         // 8. destroy framework if none application
-         frameworkModel.tryDestroy();
      }
  
      public FrameworkModel getFrameworkModel() {
diff --cc dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java
index 1af68750f8,c06e3d075d..d11ebc9a0b
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java
@@@ -42,13 -42,12 +42,13 @@@ public class ModuleModel extends ScopeM
      public static final String NAME = "ModuleModel";
  
      private final ApplicationModel applicationModel;
-     private ModuleEnvironment moduleEnvironment;
-     private ModuleServiceRepository serviceRepository;
-     private ModuleConfigManager moduleConfigManager;
-     private ModuleDeployer deployer;
+     private volatile ModuleServiceRepository serviceRepository;
+     private volatile ModuleEnvironment moduleEnvironment;
+     private volatile ModuleConfigManager moduleConfigManager;
+     private volatile ModuleDeployer deployer;
 +    private boolean lifeCycleManagedExternally = false;
  
-     public ModuleModel(ApplicationModel applicationModel) {
+     protected ModuleModel(ApplicationModel applicationModel) {
          this(applicationModel, false);
      }