You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by zh...@apache.org on 2018/04/24 00:31:37 UTC

[geode] branch feature/GEODE-4624 updated (77e90cb -> f0225ad)

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

zhouxj pushed a change to branch feature/GEODE-4624
in repository https://gitbox.apache.org/repos/asf/geode.git.


 discard 77e90cb  GEODE-4624: add a stats to trace total event removed by PQRM
     add e358ce0  GEODE-5095: Fix output for create gateway-receiver (port number) (#1816)
     add 8ec0c53  GEODE-5110: Remove use of subSections in CompositeResultData structures (#1826)
     add 36204d1  GEODE-5038: Improve human-readable formatting of arrays in PdxInstance.toString(). (#1793)
     add 2c96f1a  GEODE-4858: move the utility methods out of ClusterConfigurationService (#1822)
     add 65da520  GEDOE-4919 Make WAN region creation restrictions more prominent (#1829)
     add 2b6a6d9  GEODE_2121: add categories to tests
     add 4c2f9e8  GEODE-5078: provide API that does not allow access to internal regions (#1815)
     add 179fc13  GEODE-5119 - add spruce to ci docker image.
     add 07d6a74  Change keyserver back to mit because reasons.
     add 09ddd56  Remove unused Ziputil from test source
     add d658722  GEODE-5089: Removed test recoverRepoInANewNode (#1810)
     add 5536886  GEODE-5082: Reindex not allowed on mixed server versions. (#1803)
     add 47ae5e7  GEODE-5102: Lucene rolling test with REINDEX (#1818)
     add af5d6ee  GEODE-1279: Rename HARegionQueueSizeRegressionTest
     add 7cc9e8f  GEODE-5020: Move HARegionQueue system properties to SystemPropertyHelper
     add 83dd8fc  GEODE-5058: Delete redundant DUnit tests with JUnit4 prefix
     add 3849147  GEODE-5033: Improve TearDown of DistributedTestRule
     add 34acd5c  GEODE-4876: Remove additional uses of DUnit Host and cleanup
     add f144fb4  GEODE-5060: Delete DistributedDisconnectRule
     add 46b8dde  GEODE-5033: Use DistributedTestRule as non-static Rule
     add 0ac5587  GEODE-1279: Rename BucketCreationCrash RegressionTests
     add b5fc48c  GEODE-1279: Delete useless test Bug51400DUnitTest
     add fcc9436  GEODE-1279: Rename RegisterInterestKeysValuesDistributedTest
     add 2e22ab1  GEODE-1279: Rename DeltaPropagationFailureRegressionTest
     add 130a13d  GEODE-1279: Rename QueueRemovalMessageProcessingDistributedTest
     add d66fd4f  GEODE-5033: Fixup OverridingGetPropertiesDisconnectsAllDistributedTest
     add 8962935  GEODE-2668: Add new command class for destroy gateway-receivers (#1764)
     add 3f6cda6  GEODE-5114: Archive UITest results (#1830)
     add 90665b2  GEODE-3523 AutoConnectionSourceDUnitTest: testDynamicallyFindLocators failed
     add 7972a9e  GEODE-4858: use FastPathScanner to register all the bind classes when c… (#1838)
     new f0225ad  GEODE-4624: add a stats to trace total event removed by PQRM

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (77e90cb)
            \
             N -- N -- N   refs/heads/feature/GEODE-4624 (f0225ad)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

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:
 ci/docker/Dockerfile                               |   91 +-
 ci/docker/docker.list                              |    2 +-
 ci/pipelines/develop.yml                           |   20 +
 .../internal/web/RestFunctionExecuteDUnitTest.java |    3 +-
 .../RestAPIOnRegionFunctionExecutionDUnitTest.java |    3 +-
 .../internal/web/controllers/RestAPITestBase.java  |    3 +-
 .../controllers/RestAPIsAndInterOpsDUnitTest.java  |   13 +-
 ...RestAPIsOnGroupsFunctionExecutionDUnitTest.java |    3 +-
 ...estAPIsOnMembersFunctionExecutionDUnitTest.java |    3 +-
 .../web/controllers/RestAPIsWithSSLDUnitTest.java  |   32 +-
 .../jdbc/internal/cli/AlterConnectionCommand.java  |    5 +-
 .../jdbc/internal/cli/AlterMappingCommand.java     |    5 +-
 .../internal/cli/DescribeConnectionCommand.java    |    3 +-
 .../jdbc/internal/cli/DescribeMappingCommand.java  |    3 +-
 .../internal/cli/DestroyConnectionCommand.java     |    4 +-
 .../jdbc/internal/cli/DestroyMappingCommand.java   |    3 +-
 .../internal/configuration/ConnectorService.java   |    6 +-
 .../AnalyzeConnectorsSerializablesJUnitTest.java   |    3 +-
 .../internal/cli/AlterConnectionCommandTest.java   |   19 +-
 .../jdbc/internal/cli/AlterMappingCommandTest.java |   18 +-
 .../cli/DescribeConnectionCommandTest.java         |   10 +-
 .../internal/cli/DescribeMappingCommandTest.java   |    6 +-
 .../configuration/ConnectorServiceTest.java        |    4 +-
 .../asyncqueue/internal/AsyncEventQueueStats.java  |   10 +-
 .../geode/cache/configuration/CacheConfig.java     |    4 +-
 .../geode/cache/configuration/CacheElement.java    |   53 +
 .../{CacheElement.java => XSDRootElement.java}     |   15 +-
 .../distributed/ClusterConfigurationService.java   |   82 +-
 .../InternalClusterConfigurationService.java       |   27 +-
 .../internal/cache/AbstractBucketRegionQueue.java  |    4 +-
 .../geode/internal/cache/BucketRegionQueue.java    |    2 +-
 .../geode/internal/cache/GemFireCacheImpl.java     |   91 +-
 .../apache/geode/internal/cache/InternalCache.java |    7 +
 .../cache/InternalCacheForClientAccess.java        | 1189 ++++++++++++++++++++
 .../geode/internal/cache/InternalRegion.java       |    2 +
 .../geode/internal/cache/ha/HARegionQueue.java     |   67 +-
 .../internal/cache/wan/AbstractGatewaySender.java  |    6 +-
 .../wan/AbstractGatewaySenderEventProcessor.java   |    2 +-
 .../internal/cache/wan/GatewaySenderStats.java     |   75 +-
 .../wan/parallel/ParallelQueueRemovalMessage.java  |   11 +-
 .../internal/cache/xmlcache/CacheCreation.java     |    5 +
 .../apache/geode/internal/config/JAXBService.java  |   93 +-
 .../geode/internal/lang/SystemPropertyHelper.java  |    4 +
 .../cli/commands/CommandAvailabilityIndicator.java |    1 +
 .../cli/commands/CompactDiskStoreCommand.java      |   12 +-
 .../cli/commands/CreateJndiBindingCommand.java     |    3 +-
 .../cli/commands/DescribeConfigCommand.java        |   20 +-
 .../cli/commands/DescribeRegionCommand.java        |    4 +-
 .../commands/DestroyGatewayReceiverCommand.java    |   91 ++
 .../cli/commands/DestroyJndiBindingCommand.java    |    3 +-
 .../functions/DestroyGatewayReceiverFunction.java  |   76 ++
 .../functions/GatewayReceiverCreateFunction.java   |   32 +-
 .../internal/cli/result/CompositeResultData.java   |  113 --
 .../internal/cli/util/ClasspathScanLoadHelper.java |    9 +
 .../apache/geode/pdx/internal/PdxInstanceImpl.java |   27 +-
 .../pdx/internal/WritablePdxInstanceImpl.java      |   16 +-
 .../sanctioned-geode-core-serializables.txt        |    1 +
 .../java/org/apache/geode/DataSerializerTest.java  |    3 +-
 .../java/org/apache/geode/LonerDMJUnitTest.java    |    3 +-
 .../org/apache/geode/SystemFailureJUnitTest.java   |    3 +-
 .../SerialAsyncEventQueueImplJUnitTest.java        |   10 +-
 .../cache/client/internal/AbstractOpTest.java      |    3 +-
 .../internal/AutoConnectionSourceDUnitTest.java    |  585 ++++------
 .../internal/LocatorLoadBalancingDUnitTest.java    |   81 +-
 .../cache/client/internal/LocatorTestBase.java     |  140 +--
 ...pClientExecutorSubmitTaskWithExceptionTest.java |    3 +-
 .../locator/LocatorStatusResponseJUnitTest.java    |    3 +-
 .../apache/geode/cache30/ReconnectDUnitTest.java   |    3 +-
 .../cache30/RegionMembershipListenerDUnitTest.java |    3 +-
 .../geode/cache30/RequiredRolesDUnitTest.java      |    3 +-
 .../org/apache/geode/cache30/SlowRecDUnitTest.java |    3 +-
 .../AnalyzeSerializablesJUnitTest.java             |    3 +-
 .../distributed/DistributedMemberDUnitTest.java    |    3 +-
 .../internal/CacheConfigIntegrationTest.java       |    2 +-
 .../internal/DistributionMessageTest.java          |    3 +-
 .../InternalClusterConfigurationServiceTest.java   |   12 +-
 .../LocatorLoadSnapshotIntegrationTest.java        |    3 +-
 .../internal/LocatorLoadSnapshotJUnitTest.java     |    3 +-
 .../distributed/internal/ReplyProcessor21Test.java |    3 +-
 .../internal/locks/DLockServiceLeakTest.java       |    3 +-
 .../internal/membership/InternalRoleJUnitTest.java |    3 +-
 ...ackwardCompatibilitySerializationDUnitTest.java |    3 +-
 .../internal/ClassNotFoundExceptionDUnitTest.java  |    3 +-
 .../java/org/apache/geode/internal/DSCODETest.java |    3 +-
 .../geode/internal/DataSerializableJUnitTest.java  |   28 +-
 .../internal/HeapDataOutputStreamJUnitTest.java    |    3 +-
 .../geode/internal/HeapDataOutputStreamTest.java   |    3 +-
 .../internal/InternalDataSerializerJUnitTest.java  |    3 +-
 ...InternalDataSerializerQuickcheckStringTest.java |    3 +-
 ...alDataSerializerSerializationWhitelistTest.java |    3 +-
 .../geode/internal/PdxDeleteFieldDUnitTest.java    |    3 +-
 .../geode/internal/PdxDeleteFieldJUnitTest.java    |    3 +-
 .../apache/geode/internal/PdxRenameDUnitTest.java  |    3 +-
 .../apache/geode/internal/PdxRenameJUnitTest.java  |    3 +-
 .../internal/SSLConfigIntegrationJUnitTest.java    |    3 +-
 .../SystemFailureThreadCleanupRegressionTest.java  |    3 +-
 ...java => BucketCreationCrashRegressionTest.java} |   46 +-
 .../ClientTxCommitShouldNotHangRegressionTest.java |    8 +-
 ...FireAndForgetFunctionOnAllServersDUnitTest.java |    8 +-
 .../cache/InternalCacheForClientAccessTest.java    |  332 ++++++
 .../cache/P2PDeltaPropagationDUnitTest.java        |    3 +-
 .../internal/cache/SingleHopStatsDUnitTest.java    |    3 +-
 .../internal/cache/SystemFailureDUnitTest.java     |    3 +-
 .../org/apache/geode/internal/cache/UnzipUtil.java |   76 --
 .../geode/internal/cache/ha/Bug48571DUnitTest.java |  290 -----
 .../geode/internal/cache/ha/Bug48879DUnitTest.java |  227 ----
 ...java => HARegionQueueExpiryRegressionTest.java} |    6 +-
 .../internal/cache/ha/HARegionQueueJUnitTest.java  |    4 +-
 .../cache/ha/HARegionQueueSizeRegressionTest.java  |  245 ++++
 .../geode/internal/cache/ha/HARegionQueueTest.java |    3 +-
 .../HARegionQueueThreadIdExpiryRegressionTest.java |  198 ++++
 ...BucketCreationCrashCompletesRegressionTest.java |  248 ++++
 .../cache/partitioned/Bug39356DUnitTest.java       |  233 ----
 .../cache/partitioned/Bug43684DUnitTest.java       |  359 ------
 .../cache/partitioned/Bug47388DUnitTest.java       |  265 -----
 .../cache/partitioned/Bug51400DUnitTest.java       |  181 ---
 ...eueRemovalMessageProcessingDistributedTest.java |  269 +++++
 .../RegisterInterestKeysValuesDistributedTest.java |  394 +++++++
 .../internal/cache/tier/Bug40396DUnitTest.java     |  217 ----
 .../DeltaPropagationFailureRegressionTest.java     |  155 +++
 .../AcceptorImplClientQueueDistributedTest.java    |    3 +-
 .../cache/tier/sockets/AcceptorImplDUnitTest.java  |    3 +-
 .../internal/cache/tier/sockets/CCUStatsTest.java  |    3 +-
 .../tier/sockets/ClientHealthMonitorJUnitTest.java |    3 +-
 .../ClientProxyWithDeltaDistributedTest.java       |    3 +-
 .../ClientWithInterestFailoverDistributedTest.java |    3 +-
 .../internal/cache/tier/sockets/HandshakeTest.java |    3 +-
 .../cache/tier/sockets/MessageIdExtractorTest.java |    3 +-
 .../internal/cache/tier/sockets/PartTest.java      |    3 +-
 .../tier/sockets/RedundancyLevelTestBase.java      |    3 +-
 .../tier/sockets/ServerConnectionFactoryTest.java  |    3 +-
 .../sockets/ServerConnectionIntegrationTest.java   |    3 +-
 .../cache/tier/sockets/ServerConnectionTest.java   |    3 +-
 .../cache/tier/sockets/TcpServerFactoryTest.java   |    3 +-
 .../tier/sockets/command/CommitCommandTest.java    |    3 +-
 .../tier/sockets/command/ContainsKey66Test.java    |    3 +-
 .../tier/sockets/command/ContainsKeyTest.java      |    3 +-
 .../tier/sockets/command/CreateRegionTest.java     |    3 +-
 .../cache/tier/sockets/command/Destroy65Test.java  |    3 +-
 .../tier/sockets/command/DestroyRegionTest.java    |    3 +-
 .../cache/tier/sockets/command/DestroyTest.java    |    3 +-
 .../sockets/command/ExecuteFunction65Test.java     |    3 +-
 .../sockets/command/ExecuteFunction66Test.java     |    3 +-
 .../tier/sockets/command/ExecuteFunctionTest.java  |    3 +-
 .../cache/tier/sockets/command/Get70Test.java      |    3 +-
 .../cache/tier/sockets/command/GetAll651Test.java  |    3 +-
 .../cache/tier/sockets/command/GetAll70Test.java   |    3 +-
 .../cache/tier/sockets/command/GetAllTest.java     |    3 +-
 .../sockets/command/GetAllWithCallbackTest.java    |    3 +-
 .../GetClientPartitionAttributesCommand66Test.java |    3 +-
 .../GetClientPartitionAttributesCommandTest.java   |    3 +-
 .../cache/tier/sockets/command/InvalidateTest.java |    3 +-
 .../cache/tier/sockets/command/KeySetTest.java     |    3 +-
 .../cache/tier/sockets/command/Put61Test.java      |    3 +-
 .../cache/tier/sockets/command/Put65Test.java      |    3 +-
 .../cache/tier/sockets/command/PutTest.java        |    3 +-
 .../sockets/command/RegisterInterest61Test.java    |    3 +-
 .../command/RegisterInterestList61Test.java        |    3 +-
 .../command/RegisterInterestList66Test.java        |    3 +-
 .../sockets/command/RegisterInterestListTest.java  |    3 +-
 .../tier/sockets/command/RegisterInterestTest.java |    3 +-
 .../cache/tier/sockets/command/RemoveAllTest.java  |    3 +-
 .../cache/tier/sockets/command/RequestTest.java    |    3 +-
 .../sockets/command/TXFailoverCommandTest.java     |    3 +-
 .../sockets/command/UnregisterInterestTest.java    |    3 +-
 .../cache/wan/AsyncEventQueueTestBase.java         |    6 +-
 .../ParallelQueueRemovalMessageJUnitTest.java      |   10 +-
 .../geode/internal/config/JAXBServiceTest.java     |   18 +-
 .../geode/internal/net/SocketCloserJUnitTest.java  |    3 +-
 .../net/SocketCloserWithWaitJUnitTest.java         |    3 +-
 .../net/SocketCreatorFactoryJUnitTest.java         |    3 +-
 .../geode/internal/net/SocketCreatorJUnitTest.java |    3 +-
 .../geode/internal/net/SocketUtilsJUnitTest.java   |    3 +-
 .../geode/internal/tcp/ConnectionTableTest.java    |    3 +-
 .../apache/geode/internal/tcp/ConnectionTest.java  |    3 +-
 .../bean/stats/AsyncEventQueueStatsJUnitTest.java  |    8 +-
 .../cli/commands/CreateJndiBindingCommandTest.java |   25 +-
 .../cli/commands/DescribeRegionDUnitTest.java      |   14 +-
 .../cli/commands/DescribeRegionJUnitTest.java      |   12 +-
 .../DestroyGatewayReceiverCommandTest.java         |  103 ++
 .../commands/DestroyJndiBindingCommandTest.java    |    9 -
 .../cli/commands/DiskStoreCommandsDUnitTest.java   |   39 +-
 .../DestroyGatewayReceiverFunctionTest.java        |   95 ++
 .../GatewayReceiverCreateFunctionTest.java         |   73 ++
 .../geode/pdx/DistributedSystemIdDUnitTest.java    |    3 +-
 .../geode/pdx/JSONFormatterBasicJUnitTest.java     |    3 +-
 .../geode/pdx/JSONPdxClientServerDUnitTest.java    |    3 +-
 .../geode/pdx/internal/PdxInstanceImplTest.java    |  202 ++++
 .../java/org/apache/geode/redis/AuthJUnitTest.java |    3 +-
 .../apache/geode/redis/ConcurrentStartTest.java    |    3 +-
 .../org/apache/geode/redis/HashesJUnitTest.java    |    3 +-
 .../org/apache/geode/redis/ListsJUnitTest.java     |    3 +-
 .../org/apache/geode/redis/RedisDistDUnitTest.java |    3 +-
 .../org/apache/geode/redis/RedisServerTest.java    |    3 +-
 .../java/org/apache/geode/redis/SetsJUnitTest.java |    3 +-
 .../apache/geode/redis/SortedSetsJUnitTest.java    |    3 +-
 .../org/apache/geode/redis/StringsJunitTest.java   |    3 +-
 .../executor/AbstractScanExecutorTest.java         |    3 +-
 .../geode/test/dunit/DistributedTestUtils.java     |    3 +-
 .../dunit/cache/internal/JUnit4CacheTestCase.java  |    5 +
 .../CatchingUnexpectedExceptionExampleTest.java    |   14 +-
 .../examples/LocatorPortClusterExampleTest.java    |    8 +-
 .../dunit/internal/JUnit4DistributedTestCase.java  |   62 +-
 .../dunit/rules/AbstractDistributedTestRule.java   |   94 ++
 .../apache/geode/test/dunit/rules/CacheRule.java   |  105 +-
 .../test/dunit/rules/CleanupDUnitVMsRule.java      |   12 +-
 .../geode/test/dunit/rules/ClientCacheRule.java    |    6 +-
 .../dunit/rules/DistributedDisconnectRule.java     |  138 ---
 .../test/dunit/rules/DistributedDiskDirRule.java   |    2 +
 .../dunit/rules/DistributedExternalResource.java   |    2 +-
 .../rules/DistributedRestoreSystemProperties.java  |   37 +-
 .../test/dunit/rules/DistributedTestRule.java      |  172 ++-
 .../DistributedUseJacksonForJsonPathRule.java      |   20 +-
 .../geode/test/dunit/rules/SharedCountersRule.java |   13 +-
 .../test/dunit/rules/SharedErrorCollector.java     |   46 +-
 .../tests/CacheRuleBuilderDistributedTest.java     |    5 +-
 .../rules/tests/CacheRuleDistributedTest.java      |    5 +-
 ...edDisconnectRuleAsClassRuleDistributedTest.java |  172 ---
 .../DistributedDisconnectRuleDistributedTest.java  |  187 ---
 ...utedRestoreSystemPropertiesDistributedTest.java |   39 +-
 .../DistributedRestoreSystemPropertiesTest.java    |   56 -
 .../tests/DistributedTestRuleDistributedTest.java  |    9 +-
 .../tests/SharedCountersRuleDistributedTest.java   |    5 +-
 .../tests/SharedErrorCollectorDistributedTest.java |   12 +-
 ...sicDUnitTest.java => BasicDistributedTest.java} |   76 +-
 .../tests/GetCurrentVmNumDistributedTest.java      |    6 +-
 ...=> GetDefaultDiskStoreNameDistributedTest.java} |   13 +-
 .../GetPidAndIdAfterBounceDistributedTest.java     |    6 +-
 .../dunit/tests/GetPidAndIdDistributedTest.java    |    6 +-
 ....java => GetTestMethodNameDistributedTest.java} |   12 +-
 .../test/dunit/tests/JUnit4BasicDUnitTest.java     |  243 ----
 .../JUnit4GetDefaultDiskStoreNameDUnitTest.java    |   67 --
 .../tests/JUnit4GetTestMethodNameDUnitTest.java    |   53 -
 ...ridingGetPropertiesDisconnectsAllDUnitTest.java |   60 -
 .../geode/test/dunit/tests/JUnit4VMDUnitTest.java  |  205 ----
 ...etPropertiesDisconnectsAllDistributedTest.java} |   30 +-
 .../{VMDUnitTest.java => VMDistributedTest.java}   |   24 +-
 .../AnalyzeCQSerializablesJUnitTest.java           |    3 +-
 .../setting_up_a_multisite_system.html.md.erb      |   22 +-
 .../experimental/driver/AuthenticationTest.java    |    3 +-
 .../experimental/driver/DriverConnectionTest.java  |    3 +-
 .../driver/FunctionServiceIntegrationTest.java     |    3 +-
 .../driver/QueryServiceIntegrationTest.java        |    3 +-
 .../experimental/driver/RegionIntegrationTest.java |    3 +-
 .../apache/geode/experimental/driver/SSLTest.java  |    3 +-
 .../experimental/driver/ValueEncoderTest.java      |    3 +-
 .../driver/ValueSerializerIntegrationTest.java     |    3 +-
 .../geode/test/junit/categories/RedisTest.java     |   17 +-
 .../cache/lucene/internal/LuceneServiceImpl.java   |   49 +-
 .../LuceneSearchWithRollingUpgradeDUnit.java       |  151 ++-
 ...hRollingUpgradeReindexFlagEnabledDUnitTest.java |   31 +-
 .../LuceneIndexRecoveryHAIntegrationTest.java      |  126 ---
 .../internal/LuceneServiceImplJUnitTest.java       |    5 +
 .../apache/geode/OldClientSupportDUnitTest.java    |    3 +-
 .../dunit/standalone/VersionManagerJUnitTest.java  |    3 +-
 .../OutputCapturingServerConnectionTest.java       |    3 +-
 .../tier/sockets/ProtobufServerConnectionTest.java |    3 +-
 .../protobuf/ProtobufStreamProcessorTest.java      |    3 +-
 .../protobuf/v1/AuthenticationIntegrationTest.java |    3 +-
 .../protobuf/v1/AuthorizationIntegrationTest.java  |    3 +-
 .../v1/DisconnectClientIntegrationTest.java        |    3 +-
 .../v1/ExecuteFunctionOnGroupIntegrationTest.java  |    3 +-
 .../v1/ExecuteFunctionOnMemberIntegrationTest.java |    3 +-
 .../v1/ExecuteFunctionOnRegionIntegrationTest.java |    3 +-
 .../v1/ProtobufProtocolServiceJUnitTest.java       |    3 +-
 .../v1/ProtocolVersionIntegrationTest.java         |    3 +-
 .../v1/ValueSerializerIntegrationTest.java         |    3 +-
 .../v1/acceptance/CacheConnectionJUnitTest.java    |    5 +-
 .../CacheConnectionTimeoutJUnitTest.java           |    5 +-
 .../v1/acceptance/CacheMaxConnectionJUnitTest.java |    6 +-
 .../v1/acceptance/CacheOperationsJUnitTest.java    |    5 +-
 .../LocatorConnectionAuthenticationDUnitTest.java  |    4 +-
 .../v1/acceptance/LocatorConnectionDUnitTest.java  |    4 +-
 .../authentication/AuthorizingCacheImplTest.java   |    3 +-
 .../AuthorizingFunctionServiceImplTest.java        |    3 +-
 .../ClearRequestOperationHandlerJUnitTest.java     |    3 +-
 ...ionOnGroupRequestOperationHandlerJUnitTest.java |    3 +-
 ...onOnMemberRequestOperationHandlerJUnitTest.java |    3 +-
 ...onOnRegionRequestOperationHandlerJUnitTest.java |    3 +-
 .../GetAllRequestOperationHandlerJUnitTest.java    |    3 +-
 .../GetAndPutJsonDocumentsDUnitTest.java           |    3 +-
 ...egionNamesRequestOperationHandlerJUnitTest.java |    3 +-
 .../GetRequestOperationHandlerJUnitTest.java       |    3 +-
 .../GetServerOperationHandlerJUnitTest.java        |    3 +-
 .../GetSizeRequestOperationHandlerJUnitTest.java   |    3 +-
 .../KeySetOperationHandlerJUnitTest.java           |    3 +-
 .../v1/operations/OperationHandlerJUnitTest.java   |    3 +-
 ...ueryRequestOperationHandlerIntegrationTest.java |    3 +-
 .../OqlQueryRequestOperationHandlerJUnitTest.java  |    3 +-
 .../ProtocolVersionHandlerJUnitTest.java           |    3 +-
 .../PutAllRequestOperationHandlerJUnitTest.java    |    3 +-
 .../PutIfAbsentRequestIntegrationTest.java         |    3 +-
 ...utIfAbsentRequestOperationHandlerJUnitTest.java |    3 +-
 .../PutRequestOperationHandlerJUnitTest.java       |    3 +-
 .../RemoveRequestOperationHandlerJUnitTest.java    |    3 +-
 .../v1/operations/VersionValidatorJUnitTest.java   |    3 +-
 .../codec/JsonPdxConverterJUnitTest.java           |    3 +-
 .../ProtobufProtocolSerializerJUnitTest.java       |    3 +-
 .../v1/utilities/ProtobufUtilitiesJUnitTest.java   |    3 +-
 ...tewayReceiverAutoConnectionSourceDUnitTest.java |    7 +-
 .../geode/internal/cache/wan/WANTestBase.java      |   14 +-
 .../parallel/ParallelWANConflationDUnitTest.java   |   62 +-
 .../DestroyGatewayReceiverCommandDUnitTest.java    |  427 +++++++
 .../cache/wan/wancommand/WANCommandUtils.java      |    5 +
 .../AnalyzeWebApiSerializablesJUnitTest.java       |    3 +-
 .../AbstractBaseControllerJUnitTest.java           |    3 +-
 .../web/controllers/support/RegionDataTest.java    |    3 +-
 gradle/test.gradle                                 |   12 +
 308 files changed, 6212 insertions(+), 4886 deletions(-)
 copy geode-core/src/main/java/org/apache/geode/cache/configuration/{CacheElement.java => XSDRootElement.java} (71%)
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/InternalCacheForClientAccess.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyGatewayReceiverCommand.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyGatewayReceiverFunction.java
 rename geode-core/src/test/java/org/apache/geode/internal/cache/{BucketCreationRequesterCrashHARegressionTest.java => BucketCreationCrashRegressionTest.java} (88%)
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/InternalCacheForClientAccessTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/UnzipUtil.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/ha/Bug48571DUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/ha/Bug48879DUnitTest.java
 rename geode-core/src/test/java/org/apache/geode/internal/cache/ha/{ClientSubscriptionExpiryDataLossRegressionTest.java => HARegionQueueExpiryRegressionTest.java} (95%)
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/ha/HARegionQueueSizeRegressionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/ha/HARegionQueueThreadIdExpiryRegressionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/BucketCreationCrashCompletesRegressionTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/Bug39356DUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/Bug43684DUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/Bug47388DUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/Bug51400DUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/QueueRemovalMessageProcessingDistributedTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/RegisterInterestKeysValuesDistributedTest.java
 delete mode 100755 geode-core/src/test/java/org/apache/geode/internal/cache/tier/Bug40396DUnitTest.java
 create mode 100755 geode-core/src/test/java/org/apache/geode/internal/cache/tier/DeltaPropagationFailureRegressionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DestroyGatewayReceiverCommandTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/DestroyGatewayReceiverFunctionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunctionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/pdx/internal/PdxInstanceImplTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/rules/AbstractDistributedTestRule.java
 delete mode 100755 geode-core/src/test/java/org/apache/geode/test/dunit/rules/DistributedDisconnectRule.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/rules/tests/DistributedDisconnectRuleAsClassRuleDistributedTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/rules/tests/DistributedDisconnectRuleDistributedTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/rules/tests/DistributedRestoreSystemPropertiesTest.java
 rename geode-core/src/test/java/org/apache/geode/test/dunit/tests/{BasicDUnitTest.java => BasicDistributedTest.java} (70%)
 rename geode-core/src/test/java/org/apache/geode/test/dunit/tests/{GetDefaultDiskStoreNameDUnitTest.java => GetDefaultDiskStoreNameDistributedTest.java} (83%)
 rename geode-core/src/test/java/org/apache/geode/test/dunit/tests/{GetTestMethodNameDUnitTest.java => GetTestMethodNameDistributedTest.java} (79%)
 delete mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/tests/JUnit4BasicDUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/tests/JUnit4GetDefaultDiskStoreNameDUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/tests/JUnit4GetTestMethodNameDUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/tests/JUnit4OverridingGetPropertiesDisconnectsAllDUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/tests/JUnit4VMDUnitTest.java
 rename geode-core/src/test/java/org/apache/geode/test/dunit/tests/{OverridingGetPropertiesDisconnectsAllDUnitTest.java => OverridingGetPropertiesDisconnectsAllDistributedTest.java} (69%)
 rename geode-core/src/test/java/org/apache/geode/test/dunit/tests/{VMDUnitTest.java => VMDistributedTest.java} (92%)
 copy geode-cq/src/test/java/org/apache/geode/codeAnalysis/AnalyzeCQSerializablesJUnitTest.java => geode-junit/src/main/java/org/apache/geode/test/junit/categories/RedisTest.java (69%)
 copy geode-core/src/test/java/org/apache/geode/test/dunit/rules/tests/DistributedTestRuleDistributedTest.java => geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneSearchWithRollingUpgradeReindexFlagEnabledDUnitTest.java (50%)
 delete mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexRecoveryHAIntegrationTest.java
 create mode 100644 geode-wan/src/test/java/org/apache/geode/internal/cache/wan/wancommand/DestroyGatewayReceiverCommandDUnitTest.java

-- 
To stop receiving notification emails like this one, please contact
zhouxj@apache.org.

[geode] 01/01: GEODE-4624: add a stats to trace total event removed by PQRM

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

zhouxj pushed a commit to branch feature/GEODE-4624
in repository https://gitbox.apache.org/repos/asf/geode.git

commit f0225ad7b37335efbe1e97f783a1e4b73291dc24
Author: zhouxh <gz...@pivotal.io>
AuthorDate: Wed Apr 18 22:12:40 2018 -0700

    GEODE-4624: add a stats to trace total event removed by PQRM
---
 .../asyncqueue/internal/AsyncEventQueueStats.java  |  7 +-
 .../internal/cache/AbstractBucketRegionQueue.java  |  4 ++
 .../geode/internal/cache/BucketRegionQueue.java    |  2 +-
 .../internal/cache/wan/AbstractGatewaySender.java  |  5 +-
 .../wan/AbstractGatewaySenderEventProcessor.java   |  2 +-
 .../internal/cache/wan/GatewaySenderStats.java     | 78 +++++++++++++++-------
 .../wan/parallel/ParallelQueueRemovalMessage.java  | 10 +++
 .../SerialAsyncEventQueueImplJUnitTest.java        |  7 +-
 .../cache/wan/AsyncEventQueueTestBase.java         |  6 +-
 .../ParallelQueueRemovalMessageJUnitTest.java      | 10 +--
 .../bean/stats/AsyncEventQueueStatsJUnitTest.java  |  5 ++
 .../geode/internal/cache/wan/WANTestBase.java      | 13 ++--
 .../parallel/ParallelWANConflationDUnitTest.java   | 53 +++++++++++----
 13 files changed, 142 insertions(+), 60 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/cache/asyncqueue/internal/AsyncEventQueueStats.java b/geode-core/src/main/java/org/apache/geode/cache/asyncqueue/internal/AsyncEventQueueStats.java
index 8d68cee..8275395 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/asyncqueue/internal/AsyncEventQueueStats.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/asyncqueue/internal/AsyncEventQueueStats.java
@@ -42,8 +42,10 @@ public class AsyncEventQueueStats extends GatewaySenderStats {
             f.createLongCounter(EVENT_QUEUE_TIME, "Total time spent queueing events.",
                 "nanoseconds"),
             f.createIntGauge(EVENT_QUEUE_SIZE, "Size of the event queue.", "operations", false),
-            f.createIntGauge(EVENT_SECONDARY_QUEUE_SIZE, "Size of the secondary event queue.",
+            f.createIntGauge(SECONDARY_EVENT_QUEUE_SIZE, "Size of the secondary event queue.",
                 "operations", false),
+            f.createIntGauge(EVENTS_PROCESSED_BY_PQRM,
+                "Total number of events processed by Parallel Queue Removal Message(PQRM).", "operations", false),
             f.createIntGauge(TMP_EVENT_QUEUE_SIZE, "Size of the temporary events queue.",
                 "operations", false),
             f.createIntCounter(EVENTS_NOT_QUEUED_CONFLATED,
@@ -110,7 +112,8 @@ public class AsyncEventQueueStats extends GatewaySenderStats {
     eventsNotQueuedConflatedId = type.nameToId(EVENTS_NOT_QUEUED_CONFLATED);
     eventQueueTimeId = type.nameToId(EVENT_QUEUE_TIME);
     eventQueueSizeId = type.nameToId(EVENT_QUEUE_SIZE);
-    eventSecondaryQueueSizeId = type.nameToId(EVENT_SECONDARY_QUEUE_SIZE);
+    secondaryEventQueueSizeId = type.nameToId(SECONDARY_EVENT_QUEUE_SIZE);
+    eventsProcessedByPQRMId = type.nameToId(EVENTS_PROCESSED_BY_PQRM);
     eventTmpQueueSizeId = type.nameToId(TMP_EVENT_QUEUE_SIZE);
     eventsDistributedId = type.nameToId(EVENTS_DISTRIBUTED);
     eventsExceedingAlertThresholdId = type.nameToId(EVENTS_EXCEEDING_ALERT_THRESHOLD);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractBucketRegionQueue.java b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractBucketRegionQueue.java
index 2406b18..be0eb88 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractBucketRegionQueue.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractBucketRegionQueue.java
@@ -236,6 +236,10 @@ public abstract class AbstractBucketRegionQueue extends BucketRegion {
     this.gatewaySenderStats.incSecondaryQueueSize(size);
   }
 
+  public void incEventsProcessedByPQRM(int size) {
+    this.gatewaySenderStats.incEventsProcessedByPQRM(size);
+  }
+
   public void incQueueSize() {
     this.gatewaySenderStats.incQueueSize();
   }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegionQueue.java b/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegionQueue.java
index afc1544..26309a3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegionQueue.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegionQueue.java
@@ -292,7 +292,7 @@ public class BucketRegionQueue extends AbstractBucketRegionQueue {
       Long previousTailKey = (Long) latestIndexesForRegion.put(keyToConflate, tailKey);
       if (previousTailKey != null) {
         if (logger.isDebugEnabled()) {
-          logger.debug("{}: Conflating {} at queue index={} and previousTailKey: ", this, object,
+          logger.debug("{}: Conflating {} at queue index={} and previousTailKey={} ", this, object,
               tailKey, previousTailKey);
         }
         AbstractGatewaySenderEventProcessor ep =
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
index 59547b2..1027582 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
@@ -1099,6 +1099,7 @@ public abstract class AbstractGatewaySender implements GatewaySender, Distributi
 
     statistics.setQueueSize(0);
     statistics.setSecondaryQueueSize(0);
+    statistics.setEventsProcessedByPQRM(0);
     statistics.setTempQueueSize(0);
   }
 
@@ -1252,9 +1253,9 @@ public abstract class AbstractGatewaySender implements GatewaySender, Distributi
     return localProcessor == null ? 0 : localProcessor.eventQueueSize();
   }
 
-  public int getEventSecondaryQueueSize() {
+  public int getSecondaryEventQueueSize() {
     AbstractGatewaySenderEventProcessor localProcessor = this.eventProcessor;
-    return localProcessor == null ? 0 : localProcessor.eventSecondaryQueueSize();
+    return localProcessor == null ? 0 : localProcessor.secondaryEventQueueSize();
   }
 
   public void setEnqueuedAllTempQueueEvents(boolean enqueuedAllTempQueueEvents) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySenderEventProcessor.java b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySenderEventProcessor.java
index baaabd0..cdf6125 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySenderEventProcessor.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySenderEventProcessor.java
@@ -265,7 +265,7 @@ public abstract class AbstractGatewaySenderEventProcessor extends Thread {
     return this.queue.size();
   }
 
-  public int eventSecondaryQueueSize() {
+  public int secondaryEventQueueSize() {
     if (queue == null) {
       return 0;
     }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderStats.java b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderStats.java
index 15ff18e..6715dda 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderStats.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderStats.java
@@ -46,8 +46,10 @@ public class GatewaySenderStats {
   protected static final String EVENT_QUEUE_TIME = "eventQueueTime";
   /** Name of the event queue size statistic */
   protected static final String EVENT_QUEUE_SIZE = "eventQueueSize";
-  /** Name of the event secondary queue size statistic */
-  protected static final String EVENT_SECONDARY_QUEUE_SIZE = "eventSecondaryQueueSize";
+  /** Name of the secondary event queue size statistic */
+  protected static final String SECONDARY_EVENT_QUEUE_SIZE = "secondaryEventQueueSize";
+  /** Total number of events processed by queue removal message statistic */
+  protected static final String EVENTS_PROCESSED_BY_PQRM = "eventsProcessedByPQRM";
   /** Name of the event temporary queue size statistic */
   protected static final String TMP_EVENT_QUEUE_SIZE = "tempQueueSize";
   /** Name of the events distributed statistic */
@@ -107,7 +109,9 @@ public class GatewaySenderStats {
   /** Id of the event queue size statistic */
   protected static int eventQueueSizeId;
   /** Id of the event in secondary queue size statistic */
-  protected static int eventSecondaryQueueSizeId;
+  protected static int secondaryEventQueueSizeId;
+  /** Id of the events processed by Parallel Queue Removal Message(PQRM) statistic */
+  protected static int eventsProcessedByPQRMId;
   /** Id of the temp event queue size statistic */
   protected static int eventTmpQueueSizeId;
   /** Id of the events distributed statistic */
@@ -172,8 +176,10 @@ public class GatewaySenderStats {
             f.createLongCounter(EVENT_QUEUE_TIME, "Total time spent queueing events.",
                 "nanoseconds"),
             f.createIntGauge(EVENT_QUEUE_SIZE, "Size of the event queue.", "operations", false),
-            f.createIntGauge(EVENT_SECONDARY_QUEUE_SIZE, "Size of secondary event queue.",
+            f.createIntGauge(SECONDARY_EVENT_QUEUE_SIZE, "Size of secondary event queue.",
                 "operations", false),
+            f.createIntGauge(EVENTS_PROCESSED_BY_PQRM,
+                "Total number of events processed by Parallel Queue Removal Message(PQRM).", "operations", false),
             f.createIntGauge(TMP_EVENT_QUEUE_SIZE, "Size of the temporary events.", "operations",
                 false),
             f.createIntCounter(EVENTS_NOT_QUEUED_CONFLATED,
@@ -244,7 +250,8 @@ public class GatewaySenderStats {
     eventsNotQueuedConflatedId = type.nameToId(EVENTS_NOT_QUEUED_CONFLATED);
     eventQueueTimeId = type.nameToId(EVENT_QUEUE_TIME);
     eventQueueSizeId = type.nameToId(EVENT_QUEUE_SIZE);
-    eventSecondaryQueueSizeId = type.nameToId(EVENT_SECONDARY_QUEUE_SIZE);
+    secondaryEventQueueSizeId = type.nameToId(SECONDARY_EVENT_QUEUE_SIZE);
+    eventsProcessedByPQRMId = type.nameToId(EVENTS_PROCESSED_BY_PQRM);
     eventTmpQueueSizeId = type.nameToId(TMP_EVENT_QUEUE_SIZE);
     eventsDistributedId = type.nameToId(EVENTS_DISTRIBUTED);
     eventsExceedingAlertThresholdId = type.nameToId(EVENTS_EXCEEDING_ALERT_THRESHOLD);
@@ -365,12 +372,21 @@ public class GatewaySenderStats {
   }
 
   /**
-   * Returns the current value of the "eventSecondaryQueueSize" stat.
+   * Returns the current value of the "secondaryEventQueueSize" stat.
    *
-   * @return the current value of the "eventSecondaryQueueSize" stat
+   * @return the current value of the "secondaryEventQueueSize" stat
    */
-  public int getEventSecondaryQueueSize() {
-    return this.stats.getInt(eventSecondaryQueueSizeId);
+  public int getSecondaryEventQueueSize() {
+    return this.stats.getInt(secondaryEventQueueSizeId);
+  }
+
+  /**
+   * Returns the current value of the "eventsProcessedByPQRM" stat.
+   *
+   * @return the current value of the "eventsProcessedByPQRM" stat
+   */
+  public int getEventsProcessedByPQRM() {
+    return this.stats.getInt(eventsProcessedByPQRMId);
   }
 
   /**
@@ -478,12 +494,21 @@ public class GatewaySenderStats {
   }
 
   /**
-   * Sets the "eventSecondaryQueueSize" stat.
+   * Sets the "secondaryEventQueueSize" stat.
    *
    * @param size The size of the secondary queue
    */
   public void setSecondaryQueueSize(int size) {
-    this.stats.setInt(eventSecondaryQueueSizeId, size);
+    this.stats.setInt(secondaryEventQueueSizeId, size);
+  }
+
+  /**
+   * Sets the "eventsProcessedByPQRM" stat.
+   *
+   * @param size The total number of the events processed by queue removal message
+   */
+  public void setEventsProcessedByPQRM(int size) {
+    this.stats.setInt(eventsProcessedByPQRMId, size);
   }
 
   /**
@@ -504,11 +529,10 @@ public class GatewaySenderStats {
   }
 
   /**
-   * Increments the "eventSecondaryQueueSize" stat by 1.
+   * Increments the "secondaryEventQueueSize" stat by 1.
    */
   public void incSecondaryQueueSize() {
-    this.stats.incInt(eventSecondaryQueueSizeId, 1);
-    assert this.stats.getInt(eventSecondaryQueueSizeId) >= 0;
+    this.stats.incInt(secondaryEventQueueSizeId, 1);
   }
 
   /**
@@ -528,13 +552,21 @@ public class GatewaySenderStats {
   }
 
   /**
-   * Increments the "eventSecondaryQueueSize" stat by given delta.
+   * Increments the "secondaryEventQueueSize" stat by given delta.
    *
-   * @param delta an integer by which secondary queue size to be increased
+   * @param delta an integer by which secondary event queue size to be increased
    */
   public void incSecondaryQueueSize(int delta) {
-    this.stats.incInt(eventSecondaryQueueSizeId, delta);
-    assert this.stats.getInt(eventSecondaryQueueSizeId) >= 0;
+    this.stats.incInt(secondaryEventQueueSizeId, delta);
+  }
+
+  /**
+   * Increments the "eventsProcessedByPQRM" stat by given delta.
+   *
+   * @param delta an integer by which events are processed by queue removal message
+   */
+  public void incEventsProcessedByPQRM(int delta) {
+    this.stats.incInt(eventsProcessedByPQRMId, delta);
   }
 
   /**
@@ -554,11 +586,10 @@ public class GatewaySenderStats {
   }
 
   /**
-   * Decrements the "eventSecondaryQueueSize" stat by 1.
+   * Decrements the "secondaryEventQueueSize" stat by 1.
    */
   public void decSecondaryQueueSize() {
-    this.stats.incInt(eventSecondaryQueueSizeId, -1);
-    assert this.stats.getInt(eventSecondaryQueueSizeId) >= 0;
+    this.stats.incInt(secondaryEventQueueSizeId, -1);
   }
 
   /**
@@ -578,13 +609,12 @@ public class GatewaySenderStats {
   }
 
   /**
-   * Decrements the "eventSecondaryQueueSize" stat by given delta.
+   * Decrements the "secondaryEventQueueSize" stat by given delta.
    *
    * @param delta an integer by which secondary queue size to be increased
    */
   public void decSecondaryQueueSize(int delta) {
-    this.stats.incInt(eventSecondaryQueueSizeId, -delta);
-    assert this.stats.getInt(eventSecondaryQueueSizeId) >= 0;
+    this.stats.incInt(secondaryEventQueueSizeId, -delta);
   }
 
   /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessage.java
index df89e36..6d47266 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessage.java
@@ -70,6 +70,15 @@ public class ParallelQueueRemovalMessage extends PooledDistributionMessage {
   }
 
   @Override
+  public String toString() {
+    String cname = getShortClassName();
+    final StringBuilder sb = new StringBuilder(cname);
+    sb.append("regionToDispatchedKeysMap=" + regionToDispatchedKeysMap);
+    sb.append(" sender=").append(getSender());
+    return sb.toString();
+  }
+
+  @Override
   protected void process(ClusterDistributionManager dm) {
     final boolean isDebugEnabled = logger.isDebugEnabled();
     final InternalCache cache = dm.getCache();
@@ -185,6 +194,7 @@ public class ParallelQueueRemovalMessage extends PooledDistributionMessage {
       brq.destroyKey(key);
       if (!brq.getBucketAdvisor().isPrimary()) {
         prQ.getParallelGatewaySender().getStatistics().decSecondaryQueueSize();
+        prQ.getParallelGatewaySender().getStatistics().incEventsProcessedByPQRM(1);
       }
       if (isDebugEnabled) {
         logger.debug("Destroyed the key {} for shadowPR {} for bucket {}", key, prQ.getName(),
diff --git a/geode-core/src/test/java/org/apache/geode/cache/asyncqueue/internal/SerialAsyncEventQueueImplJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/asyncqueue/internal/SerialAsyncEventQueueImplJUnitTest.java
index 4c5caa2..666a0e8 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/asyncqueue/internal/SerialAsyncEventQueueImplJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/asyncqueue/internal/SerialAsyncEventQueueImplJUnitTest.java
@@ -52,16 +52,19 @@ public class SerialAsyncEventQueueImplJUnitTest {
     queue.getStatistics().incQueueSize(5);
     queue.getStatistics().incSecondaryQueueSize(6);
     queue.getStatistics().incTempQueueSize(10);
+    queue.getStatistics().incEventsProcessedByPQRM(3);
 
     assertEquals(5, queue.getStatistics().getEventQueueSize());
-    assertEquals(6, queue.getStatistics().getEventSecondaryQueueSize());
+    assertEquals(6, queue.getStatistics().getSecondaryEventQueueSize());
     assertEquals(10, queue.getStatistics().getTempEventQueueSize());
+    assertEquals(3, queue.getStatistics().getEventsProcessedByPQRM());
 
     queue.stop();
 
     assertEquals(0, queue.getStatistics().getEventQueueSize());
-    assertEquals(0, queue.getStatistics().getEventSecondaryQueueSize());
+    assertEquals(0, queue.getStatistics().getSecondaryEventQueueSize());
     assertEquals(0, queue.getStatistics().getTempEventQueueSize());
+    assertEquals(0, queue.getStatistics().getEventsProcessedByPQRM());
   }
 
 }
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
index 2074e9e..2ff8886 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
@@ -738,12 +738,12 @@ public class AsyncEventQueueTestBase extends JUnit4DistributedTestCase {
       Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
         assertEquals(
             "Expected events in the secondary queue is " + secondaryQueueSize + ", but actual is "
-                + statistics.getEventSecondaryQueueSize(),
-            secondaryQueueSize, statistics.getEventSecondaryQueueSize());
+                + statistics.getSecondaryEventQueueSize(),
+            secondaryQueueSize, statistics.getSecondaryEventQueueSize());
       });
     } else {
       // for serial queue, evenvSecondaryQueueSize is not used
-      assertEquals(0, statistics.getEventSecondaryQueueSize());
+      assertEquals(0, statistics.getSecondaryEventQueueSize());
     }
     assertEquals(queueSize, statistics.getEventQueueSize());
     assertEquals(eventsReceived, statistics.getEventsReceived());
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessageJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessageJUnitTest.java
index d1ea59f..578c030 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessageJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessageJUnitTest.java
@@ -197,7 +197,7 @@ public class ParallelQueueRemovalMessageJUnitTest {
     // Validate BucketRegionQueue after processing ParallelQueueRemovalMessage
     assertEquals(1, this.bucketRegionQueue.getFailedBatchRemovalMessageKeys().size());
     // failed BatchRemovalMessage will not modify stats
-    assertEquals(1, stats.getEventSecondaryQueueSize());
+    assertEquals(1, stats.getSecondaryEventQueueSize());
   }
 
   @Test
@@ -209,7 +209,7 @@ public class ParallelQueueRemovalMessageJUnitTest {
     // Add an event to the BucketRegionQueue and verify BucketRegionQueue state
     this.bucketRegionQueueHelper.addEvent(KEY);
     assertEquals(1, this.bucketRegionQueue.size());
-    assertEquals(1, stats.getEventSecondaryQueueSize());
+    assertEquals(1, stats.getSecondaryEventQueueSize());
 
     // Create and process a ParallelQueueRemovalMessage (causes the value of the entry to be set to
     // DESTROYED)
@@ -219,7 +219,7 @@ public class ParallelQueueRemovalMessageJUnitTest {
     // Clean up destroyed tokens and validate BucketRegionQueue
     this.bucketRegionQueueHelper.cleanUpDestroyedTokensAndMarkGIIComplete();
     assertEquals(0, this.bucketRegionQueue.size());
-    assertEquals(0, stats.getEventSecondaryQueueSize());
+    assertEquals(0, stats.getSecondaryEventQueueSize());
   }
 
   @Test
@@ -257,7 +257,7 @@ public class ParallelQueueRemovalMessageJUnitTest {
     // Add an event to the BucketRegionQueue and verify BucketRegionQueue state
     GatewaySenderEventImpl event = this.bucketRegionQueueHelper.addEvent(KEY);
     assertEquals(1, this.bucketRegionQueue.size());
-    assertEquals(1, stats.getEventSecondaryQueueSize());
+    assertEquals(1, stats.getSecondaryEventQueueSize());
 
     // Add a mock GatewaySenderEventImpl to the temp queue
     BlockingQueue<GatewaySenderEventImpl> tempQueue = createTempQueueAndAddEvent(processor, event);
@@ -270,7 +270,7 @@ public class ParallelQueueRemovalMessageJUnitTest {
 
     // Validate temp queue is empty after processing ParallelQueueRemovalMessage
     assertEquals(0, tempQueue.size());
-    assertEquals(0, stats.getEventSecondaryQueueSize());
+    assertEquals(0, stats.getSecondaryEventQueueSize());
 
     // Clean up destroyed tokens
     this.bucketRegionQueueHelper.cleanUpDestroyedTokensAndMarkGIIComplete();
diff --git a/geode-core/src/test/java/org/apache/geode/management/bean/stats/AsyncEventQueueStatsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/bean/stats/AsyncEventQueueStatsJUnitTest.java
index 7c485be..c475d4e 100644
--- a/geode-core/src/test/java/org/apache/geode/management/bean/stats/AsyncEventQueueStatsJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/bean/stats/AsyncEventQueueStatsJUnitTest.java
@@ -60,6 +60,7 @@ public class AsyncEventQueueStatsJUnitTest extends MBeanStatsTestCase {
     StatisticDescriptor[] sds = asyncEventQueueStats.type.getStatistics();
     int notQueueEvents = 0;
     int notQueueToPrimary = 0;
+    int eventsProcessedByPQRM = 0;
     for (StatisticDescriptor s : sds) {
       if (s.getName().equals("notQueuedEvent")) {
         notQueueEvents++;
@@ -67,9 +68,13 @@ public class AsyncEventQueueStatsJUnitTest extends MBeanStatsTestCase {
       if (s.getName().equals("notQueuedEventAtYetRunningPrimarySender")) {
         notQueueToPrimary++;
       }
+      if (s.getName().equals("eventsProcessedByPQRM")) {
+        eventsProcessedByPQRM++;
+      }
     }
     assertEquals(1, notQueueEvents);
     assertEquals(1, notQueueToPrimary);
+    assertEquals(1, eventsProcessedByPQRM);
   }
 
 }
diff --git a/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/WANTestBase.java b/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/WANTestBase.java
index f989405..f429919 100644
--- a/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/WANTestBase.java
+++ b/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/WANTestBase.java
@@ -1170,7 +1170,7 @@ public class WANTestBase extends DistributedTestCase {
   public static int getSecondaryQueueSizeInStats(String senderId) {
     AbstractGatewaySender sender = (AbstractGatewaySender) cache.getGatewaySender(senderId);
     GatewaySenderStats statistics = sender.getStatistics();
-    return statistics.getEventSecondaryQueueSize();
+    return statistics.getSecondaryEventQueueSize();
   }
 
   public static List<Integer> getSenderStats(String senderId, final int expectedQueueSize) {
@@ -1201,7 +1201,8 @@ public class WANTestBase extends DistributedTestCase {
     stats.add(statistics.getEventsNotQueuedConflated());
     stats.add(statistics.getEventsConflatedFromBatches());
     stats.add(statistics.getConflationIndexesMapSize());
-    stats.add(statistics.getEventSecondaryQueueSize());
+    stats.add(statistics.getSecondaryEventQueueSize());
+    stats.add(statistics.getEventsProcessedByPQRM());
     return stats;
   }
 
@@ -3154,7 +3155,7 @@ public class WANTestBase extends DistributedTestCase {
       }
     }
     AbstractGatewaySender abstractSender = (AbstractGatewaySender) sender;
-    int size = abstractSender.getEventSecondaryQueueSize();
+    int size = abstractSender.getSecondaryEventQueueSize();
     return size;
   }
 
@@ -3256,11 +3257,11 @@ public class WANTestBase extends DistributedTestCase {
           abstractSender.getEventQueueSize());
       Awaitility.await().atMost(120, TimeUnit.SECONDS).until(() -> {
         assertEquals("Expected events in all secondary queues are drained but actual is "
-            + abstractSender.getEventSecondaryQueueSize() + ". Queue content is: "
-            + displayQueueContent(queue), 0, abstractSender.getEventSecondaryQueueSize());
+            + abstractSender.getSecondaryEventQueueSize() + ". Queue content is: "
+            + displayQueueContent(queue), 0, abstractSender.getSecondaryEventQueueSize());
       });
       assertEquals("Except events in all secondary queues after drain is 0", 0,
-          abstractSender.getEventSecondaryQueueSize());
+          abstractSender.getSecondaryEventQueueSize());
     } finally {
       exp.remove();
       exp1.remove();
diff --git a/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANConflationDUnitTest.java b/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANConflationDUnitTest.java
index 41cd89a..acff9bf 100644
--- a/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANConflationDUnitTest.java
+++ b/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANConflationDUnitTest.java
@@ -75,7 +75,6 @@ public class ParallelWANConflationDUnitTest extends WANTestBase {
 
     keyValues.putAll(updateKeyValues);
     validateReceiverRegionSize(keyValues);
-
   }
 
   /**
@@ -138,11 +137,12 @@ public class ParallelWANConflationDUnitTest extends WANTestBase {
     assertTrue("No events conflated in batch",
         (v4List.get(8) + v5List.get(8) + v6List.get(8) + v7List.get(8)) > 0);
 
-    verifyEventSecondaryQueuesDrained("ln");
+    verifySecondaryEventQueuesDrained("ln");
     vm2.invoke(() -> validateRegionSize(getTestMethodName(), 10));
+    validateEventsProcessedByPQRM(100, 1);
   }
 
-  private void verifyEventSecondaryQueuesDrained(final String senderId) {
+  private void verifySecondaryEventQueuesDrained(final String senderId) {
     Awaitility.await().atMost(120, TimeUnit.SECONDS).until(() -> {
       int vm4SecondarySize = vm4.invoke(() -> getSecondaryQueueSizeInStats("ln"));
       int vm5SecondarySize = vm5.invoke(() -> getSecondaryQueueSizeInStats("ln"));
@@ -185,14 +185,19 @@ public class ParallelWANConflationDUnitTest extends WANTestBase {
     vm4.invoke(() -> checkQueueSize("ln", keyValues.size() + updateKeyValues.size())); // creates
                                                                                        // aren't
                                                                                        // conflated
-    validateEventSecondaryQueueSize(keyValues.size() + updateKeyValues.size(), redundancy);
+    validateSecondaryEventQueueSize(keyValues.size() + updateKeyValues.size(), redundancy);
 
     vm4.invoke(() -> putGivenKeyValue(getTestMethodName(), updateKeyValues));
 
     int expectedEventNumAfterConflation = keyValues.size() + updateKeyValues.size();
+
+    // ParallelQueueRemovalMessage will send for each event conflated at primary to secondary queues
+    int totalEventsProcessedByPQRM =
+        expectedEventNumAfterConflation + updateKeyValues.size();
+
     vm4.invoke(() -> checkQueueSize("ln", expectedEventNumAfterConflation));
 
-    validateEventSecondaryQueueSize(expectedEventNumAfterConflation, redundancy);
+    validateSecondaryEventQueueSize(expectedEventNumAfterConflation, redundancy);
 
     vm2.invoke(() -> validateRegionSize(getTestMethodName(), 0));
 
@@ -203,21 +208,41 @@ public class ParallelWANConflationDUnitTest extends WANTestBase {
 
     // after dispatch, both primary and secondary queues are empty
     vm4.invoke(() -> checkQueueSize("ln", 0));
-    verifyEventSecondaryQueuesDrained("ln");
-    validateEventSecondaryQueueSize(0, redundancy);
+    verifySecondaryEventQueuesDrained("ln");
+    validateSecondaryEventQueueSize(0, redundancy);
+    validateEventsProcessedByPQRM(totalEventsProcessedByPQRM,
+        redundancy);
   }
 
-  private void validateEventSecondaryQueueSize(int expectedNum, int redundancy) {
-    ArrayList<Integer> v4List =
+  private void validateSecondaryEventQueueSize(int expectedNum, int redundancy) {
+    ArrayList<Integer> vm4List =
         (ArrayList<Integer>) vm4.invoke(() -> WANTestBase.getSenderStats("ln", expectedNum));
-    ArrayList<Integer> v5List =
+    ArrayList<Integer> vm5List =
         (ArrayList<Integer>) vm5.invoke(() -> WANTestBase.getSenderStats("ln", expectedNum));
-    ArrayList<Integer> v6List =
+    ArrayList<Integer> vm6List =
         (ArrayList<Integer>) vm6.invoke(() -> WANTestBase.getSenderStats("ln", expectedNum));
-    ArrayList<Integer> v7List =
+    ArrayList<Integer> vm7List =
         (ArrayList<Integer>) vm7.invoke(() -> WANTestBase.getSenderStats("ln", expectedNum));
-    assertTrue("Event in secondary queue should be 100",
-        (v4List.get(10) + v5List.get(10) + v6List.get(10) + v7List.get(10)) == expectedNum
+    assertTrue(
+        "Event in secondary queue should be " + (expectedNum * redundancy) + ", but is "
+            + (vm4List.get(10) + vm5List.get(10) + vm6List.get(10) + vm7List.get(10)),
+        (vm4List.get(10) + vm5List.get(10) + vm6List.get(10) + vm7List.get(10)) == expectedNum
+            * redundancy);
+  }
+
+  private void validateEventsProcessedByPQRM(int expectedNum, int redundancy) {
+    ArrayList<Integer> vm4List =
+        (ArrayList<Integer>) vm4.invoke(() -> WANTestBase.getSenderStats("ln", 0));
+    ArrayList<Integer> vm5List =
+        (ArrayList<Integer>) vm5.invoke(() -> WANTestBase.getSenderStats("ln", 0));
+    ArrayList<Integer> vm6List =
+        (ArrayList<Integer>) vm6.invoke(() -> WANTestBase.getSenderStats("ln", 0));
+    ArrayList<Integer> vm7List =
+        (ArrayList<Integer>) vm7.invoke(() -> WANTestBase.getSenderStats("ln", 0));
+    assertTrue(
+        "Event processed by queue removal message should be " + (expectedNum * redundancy)
+            + ", but is " + (vm4List.get(11) + vm5List.get(11) + vm6List.get(11) + vm7List.get(11)),
+        (vm4List.get(11) + vm5List.get(11) + vm6List.get(11) + vm7List.get(11)) == expectedNum
             * redundancy);
   }
 

-- 
To stop receiving notification emails like this one, please contact
zhouxj@apache.org.