You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2018/08/27 18:29:37 UTC

[geode] branch feature/GEODE-5596 updated (996a0a9 -> 47dc37b)

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

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


    from 996a0a9  GEODE-5596 Client ends up with destroyed entry after invalidate()
     add 89a1fde  GEODE-5530 create geode-assembly-test for better dependency resolution
     add 74c6166  Revert "GEODE-5530 create geode-assembly-test for better dependency resolution"
     add 2be72bd  GEODE-5257: remove unnecessary assertion that introduced the flakiness. (#2265)
     add 6355672  GEODE-5531/GEODE-1507: Variable Substitution in GFSH (#2291)
     add 9000665  GEODE-5589: lastResultReceived set after msg sent (#2341)
     add f3f255a  GEODE-5593 Update test dependencies
     add 6fa2d3e  GEODE-5592: Release the lock in a finally block. (#2344)
     add d717fdb   GEODE-5530 create geode-assembly-test for better dependency resolution (#2345)
     add 20e059a  GEODE-5530: Cleanup javadoc warnings from test refactoring.
     add 976d332  GEODE-4384: fix test's argument captor type. (#2352)
     add 49e1c18  GEODE-5609: Extract validateRegionName and improve testing (#2353)
     add 2868c3c  GEODE-5585: Check that threads have been run (#2332)
     add 1883e81  GEODE-5204: add xml-file support to import/export cluster-config command  (#1986)
     add 291fae0  GEODE-5571: Added query to history before query execution
     add 8ae5808  GEODE-5505 Cache listener not invoked on a retried destroy() operation
     add 7fe2f18  GEODE-5612: Fix RVVExceptionB.writeReceived() (#2354)
     add 2e30373  GEODE-5613: Add winrm-cli utility to apachegeode-build image (#2355)
     add c1fd530  GEODE-5597: Adds more exhaustive verification of assembly content. (#2359)
     add 83ea1df  GEODE-5620: Adds project property to control test forking. (#2362)
     add 04ecdbb  GEODE-5505 Cache listener not invoked on a retried destroy() operation
     add 5602d02  GEODE-5615: Capturing more data in the case of hangs or OOMEs
     add a77905d  GEODE-5600: Add build property skipVersionFileRegeneration
     add 0e792a5  suggested feedback: pass revision as build parameter, only create version file when present (or file does not exist).  Remove input based on .git/index.
     add b02d3f7  0 -> unknown, specify sourceRepository also, auto-format adjusts whitespace.
     add c404191  Some stuff
     add be57a3b  Merge remote-tracking branch 'origin/develop' into geode-5602
     add 793335e  wip
     add 3598afd  Add SOURCE_REPOSITORY to Jinja template for script calls, and git rev-parse for revision info.
     add 926a0d6  Correct whitespace issue in jinja template
     add 2fadf46  Correct directory for git command.
     add b5e80b5  Merge remote-tracking branch 'origin/develop' into geode-5600
     add 98a0b7d  Merge pull request #2349 from smgoller/geode-5600
     add 114be74  GEODE-5547: cleanup RegionManagementDUnitTest
     add 6c2bc15  GEODE-5547: increase Await timeout
     add c435bc7  GEODE-5615: Removing gradle build scan plugin
     add 14a6a05  GEODE-3530: Deleting CliCommandTestBase
     add b6ba0fa  GEODE-5613: Add winrm-cli for Windows CI support (#2364)
     add 966852d  GEODE-5619: Change scanning for XSDRootElement to consider all packag… (#2361)
     add 9f13a5b  GEODE-5610: CI Failure: DiskRegionJUnitTest testAssertionErrorIfMissingOplog (#2357)
     add c7ca13d  GEODE-5460: Fixing a race condition in TestFunctionsDUNitTest
     add 6ee86d6  GEODE-5597 verify geode-dependency jar ClassPath (#2369)
     add 879b2cd  GEODE-5597: Fixes formatting.
     add a1f747c  GEODE-5440: when we need re-evaluate a entry in a index, we need to pass in the outer value key in the equiJoin. (#2338)
     add abb2702  GEODE-5630: fix use of Awaitility in BucketCreationCrashCompletesRegressionTest
     add 9be422c  GEODE-5617: FIxing a race in AutoBalancerJUnitTest
     add cfa7ca5  GEODE-5627: ConcurrencyRule passes when not used. (#2370)
     add 39b2236  GEODE-5597 let AssemblyContentsIntegrationTest pass on windows
     add 583d141  GEODE-5562 Reading the values of LocalRegion.memoryThresholdReached and DistributedRegion.memoryThresholdReachedMembers must be atomic (#2320)
     add 9de289d  GEODE-5632: import Assertions instead of AssertionsForClassTypes
     add b951146  GEODE-5142 new Thread Monitoring Mechanism
     add 123b8c4  GEODE-5614: rename DistributedTestRule as DistributedRule
     add 16d0f69  GEODE-5614: rename distributedTestRule field to distributedRule
     add f91c2df  GEODE-5614: update RegionManagementDUnitTest usage of DistributedRule
     add e719331  GEODE-5629: Changing GMSEncryptJUnitTest to use ConcurrencyRule
     new 7e068cc  GEODE-5596 Client ends up with destroyed entry after invalidate()
     new a113534  GEODE-5596 Client ends up with destroyed entry after invalidate()
     new 0bcb019  GEODE-5596 Client ends up with destroyed entry after invalidate()
     new 47dc37b  Merge branch 'feature/GEODE-5596' of ssh://github.com/apache/geode into feature/GEODE-5596

The 4 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:
 build.gradle                                       |    2 -
 ci/images/alpine-tools/Dockerfile                  |   11 +-
 ci/pipelines/geode-build/jinja.template.yml        |    3 +
 ci/pipelines/shared/shared_jinja.yml               |    2 +-
 ci/scripts/archive_results.sh                      |    1 +
 ci/scripts/build.sh                                |    3 +-
 ci/scripts/capture-call-stacks.sh                  |    4 +-
 ci/scripts/execute_tests.sh                        |    4 +-
 ci/scripts/rsync_code_down.sh                      |    2 +-
 ci/scripts/windows/test-run.sh                     |    2 +
 geode-assembly/build.gradle                        |   37 +-
 .../geode-assembly-test}/build.gradle              |   10 +-
 .../web/controllers/AddFreeItemToOrders.java       |    0
 .../rest/internal/web/controllers/Customer.java    |    0
 .../internal/web/controllers/DateTimeUtils.java    |    0
 .../rest/internal/web/controllers/Gender.java      |    0
 .../internal/web/controllers/GetAllEntries.java    |    0
 .../web/controllers/GetDeliveredOrders.java        |    0
 .../rest/internal/web/controllers/GetRegions.java  |    0
 .../internal/web/controllers/GetValueForKey.java   |    0
 .../geode/rest/internal/web/controllers/Item.java  |    0
 .../web/controllers/NoArgumentFunction.java        |    5 +
 .../geode/rest/internal/web/controllers/Order.java |    0
 .../rest/internal/web/controllers/Person.java      |    0
 .../internal/web/controllers/PutKeyFunction.java   |    0
 .../web/controllers/RedactingPostProcessor.java    |    0
 .../internal/web/controllers/RestTestUtils.java    |    1 -
 .../org/apache/geode/session/tests/Client.java     |    0
 .../geode/session/tests/ContainerInstall.java      |    0
 .../geode/session/tests/ContainerManager.java      |    0
 .../geode/session/tests/ServerContainer.java       |    0
 .../geode/session/tests/TomcatContainer.java       |    0
 .../apache/geode/session/tests/TomcatInstall.java  |    0
 .../geode/test/junit/rules/EmbeddedPulseRule.java  |    0
 .../geode/test/junit/rules/GeodeDevRestClient.java |    0
 .../geode/test/junit/rules/HttpResponseAssert.java |    0
 .../cli/commands/ImportClusterConfigTest.java      |    4 +-
 .../tests/GenericAppServerClientServerTest.java    |    3 +-
 .../geode/AssemblyContentsIntegrationTest.java     |   95 ++
 .../geode/GeodeDependencyJarIntegrationTest.java   |   94 ++
 .../tools/pulse/PulseSecurityIntegrationTest.java  |    3 +-
 .../integrationTest/resources/assembly_content.txt | 1245 ++++++++++++++++++
 .../resources/dependency_classpath.txt             |   67 +
 .../jdbc/JdbcAsyncWriterIntegrationTest.java       |    5 +-
 .../geode/connectors/jdbc/JdbcDistributedTest.java |    8 +-
 .../test/junit/rules/MySqlConnectionRule.java      |    4 +-
 .../junit/rules/SqlDatabaseConnectionRule.java     |    4 +-
 .../geode/connectors/jdbc/JdbcAsyncWriterTest.java |    4 +-
 .../geode/connectors/jdbc/JdbcWriterTest.java      |    2 +-
 .../internal/cli/AlterConnectionFunctionTest.java  |   10 +-
 .../internal/cli/AlterMappingFunctionTest.java     |   10 +-
 .../internal/cli/CreateMappingFunctionTest.java    |    5 +-
 geode-core/build.gradle                            |   77 +-
 .../CreateAndLocalDestroyInTXRegressionTest.java   |    7 +-
 .../PRCreationTotalNumBucketsDistributedTest.java  |    8 +-
 .../cache/RegionClearStatsDistributedTest.java     |    8 +-
 .../cache/RegionExpirationDistributedTest.java     |   14 +-
 .../ReplicateCacheListenerDistributedTest.java     |   18 +-
 .../internal/AutoConnectionSourceDUnitTest.java    |    4 +-
 .../management/MemoryThresholdsDUnitTest.java      |    2 +-
 .../MemoryThresholdsOffHeapDUnitTest.java          |   18 +-
 .../dunit/QueryDataInconsistencyDUnitTest.java     |   34 +-
 .../query/dunit/QueryIndexUsingXMLDUnitTest.java   |    2 +-
 .../InitializeIndexEntryDestroyQueryDUnitTest.java |   11 +-
 .../partitioned/PRColocatedEquiJoinDUnitTest.java  |   47 -
 .../query/partitioned/PRQueryDUnitHelper.java      |   86 +-
 .../geode/cache30/DiskRegionDistributedTest.java   |   11 +-
 .../cache30/PRBucketSynchronizationDUnitTest.java  |   53 +-
 .../geode/cache30/RRSynchronizationDUnitTest.java  |   53 +-
 .../geode/cache30/RegionReliabilityTestCase.java   |    6 +-
 .../ClusterDistributionManagerDUnitTest.java       |    9 +-
 ...lusterDistributionManagerForAdminDUnitTest.java |    6 +-
 .../internal/DistributionAdvisorDUnitTest.java     |    6 +-
 .../deadlock/GemFireDeadlockDetectorDUnitTest.java |    4 +-
 ...okenSerializationConsistencyRegressionTest.java |    8 +-
 .../cache/BucketCreationCrashRegressionTest.java   |   11 +-
 .../internal/cache/CacheAdvisorDUnitTest.java      |    3 +-
 ...eanupFailedInitWithDiskFilesRegressionTest.java |    2 +-
 .../ClearDuringNetSearchOplogRegressionTest.java   |    3 +-
 .../cache/ClientServerTransactionDUnitTest.java    |    8 +-
 ...ntServerTransactionFailoverDistributedTest.java |   35 +-
 ...overWithMixedVersionServersDistributedTest.java |   51 +-
 .../EntriesDoNotExpireDuringGiiRegressionTest.java |   17 +-
 ...FireAndForgetFunctionOnAllServersDUnitTest.java |   14 +-
 ...zedDiskRegionWithIoExceptionRegressionTest.java |   18 +-
 .../PRAccessorWithOverflowRegressionTest.java      |    2 +-
 .../cache/PRCustomPartitioningDistributedTest.java |   10 +-
 .../PREntryIdleExpirationDistributedTest.java      |   31 +-
 .../internal/cache/PRQueryDistributedTest.java     |    8 +-
 .../PRQueryWithIndexAndPdxDistributedTest.java     |    9 +-
 .../cache/PRQueryWithIndexDistributedTest.java     |    9 +-
 .../cache/PRQueryWithOrderByDistributedTest.java   |    9 +-
 ...RQueryWithPdxDuringRebalanceRegressionTest.java |    9 +-
 .../PRWithIndexAfterRebalanceRegressionTest.java   |    9 +-
 .../PartitionedRegionCacheCloseDUnitTest.java      |    2 +-
 .../PartitionedRegionCloseDistributedTest.java     |   19 +-
 .../cache/PartitionedRegionDestroyDUnitTest.java   |    2 +-
 ...itionedRegionHAFailureAndRecoveryDUnitTest.java |    2 +-
 ...edRegionLowBucketRedundancyDistributedTest.java |    4 +-
 .../cache/PartitionedRegionStatsDUnitTest.java     |    2 +-
 .../cache/PersistentRegionRecoveryDUnitTest.java   |   19 +-
 .../PersistentRegionTransactionDUnitTest.java      |    2 +-
 .../cache/RegionListenerDistributedTest.java       |   17 +-
 ...eplicateEntryIdleExpirationDistributedTest.java |   36 +-
 .../cache/backup/BackupDistributedTest.java        |   12 +-
 .../backup/IncrementalBackupDistributedTest.java   |   15 +-
 .../PrepareAndFinishBackupDistributedTest.java     |    8 +-
 .../ClientFunctionTimeoutRegressionTest.java       |   26 +-
 ...ctionExecutionWithExceptionDistributedTest.java |    9 +-
 ...ctionOnBehalfOfClientMemberDistributedTest.java |   14 +-
 .../cache/ha/HARQueueNewImplDUnitTest.java         |    4 +-
 .../internal/cache/ha/HARegionQueueDUnitTest.java  |    8 +-
 .../ha/HARegionQueueExpiryRegressionTest.java      |    2 +-
 .../cache/ha/HARegionQueueSizeRegressionTest.java  |   15 +-
 .../HARegionQueueThreadIdExpiryRegressionTest.java |   13 +-
 .../internal/cache/ha/HASlowReceiverDUnitTest.java |    4 +-
 .../ha/PreferSerializedHARegionQueueTest.java      |    4 +-
 ...BucketCreationCrashCompletesRegressionTest.java |   55 +-
 .../BucketRebalanceStatRegressionTest.java         |    4 +-
 ...RDiskConflictWithColocationDistributedTest.java |    5 +-
 ...sistentColocatedPartitionedRegionDUnitTest.java |   14 +-
 ...PersistentPartitionedRegionDistributedTest.java |   21 +-
 .../PersistentPartitionedRegionRegressionTest.java |    9 +-
 ...eueRemovalMessageProcessingDistributedTest.java |   87 +-
 .../RegisterInterestKeysValuesDistributedTest.java |   50 +-
 .../DeltaPropagationFailureRegressionTest.java     |   33 +-
 .../AcceptorImplClientQueueDistributedTest.java    |   42 +-
 ...entDestroyRegionNotificationRegressionTest.java |   31 +-
 ...troyRegionUnregisterInterestRegressionTest.java |   31 +-
 .../ClientProxyWithDeltaDistributedTest.java       |   34 +-
 .../ClientWithInterestFailoverDistributedTest.java |   34 +-
 .../DataSerializerPropagationDUnitTest.java        |    4 +-
 .../sockets/DurableClientQueueSizeDUnitTest.java   |    2 +-
 .../GetConnectedServerCountRegressionTest.java     |    8 +-
 .../HARegionQueueStatsCloseRegressionTest.java     |   27 +-
 .../sockets/HAStartupAndFailoverDUnitTest.java     |    2 +-
 .../MessageTrackingTimeoutRegressionTest.java      |   18 +-
 .../sockets/RegisterInterestDistributedTest.java   |   18 +-
 ...nterestOnServerWithoutRegionRegressionTest.java |   15 +-
 ...isterInterestServerMetaDataDistributedTest.java |   46 +-
 ...RootRegionsExcludesHARegionsRegressionTest.java |   24 +-
 .../tier/sockets/UpdatePropagationDUnitTest.java   |    2 +-
 .../AsyncEventListenerDistributedTest.java         |   13 +-
 ...ventListenerWithCacheLoaderDistributedTest.java |    9 +-
 ...syncEventListenerWithFilterDistributedTest.java |    8 +-
 ...oncurrentAsyncEventListenerDistributedTest.java |    8 +-
 .../ParallelAsyncEventListenerDistributedTest.java |   17 +-
 .../SerialEventListenerDistributedTest.java        |    8 +-
 .../ClientServerJTAFailoverDistributedTest.java    |   41 +-
 .../geode/management/CacheManagementDUnitTest.java |   16 +-
 .../geode/management/DLockManagementDUnitTest.java |   17 +-
 .../geode/management/DiskManagementDUnitTest.java  |    3 +-
 .../management/DistributedSystemDUnitTest.java     |   22 +-
 .../apache/geode/management/JMXMBeanDUnitTest.java |   59 +-
 .../management/JMXMBeanReconnectDUnitTest.java     |    2 +-
 .../management/LocatorManagementDUnitTest.java     |    8 +-
 .../geode/management/ManagementTestRule.java       |   83 +-
 .../management/MemberMBeanAttributesDUnitTest.java |    2 +-
 .../management/OffHeapManagementDUnitTest.java     |    2 +-
 .../geode/management/QueryDataDUnitTest.java       |   19 +-
 .../management/RegionManagementDUnitTest.java      | 1333 ++++++++++----------
 .../stats/DistributedSystemStatsDUnitTest.java     |    8 +-
 .../ExecuteFunctionCommandSecurityTest.java        |    2 +-
 ...ExportClusterConfigurationCommandDUnitTest.java |   89 ++
 ...ImportClusterConfigurationCommandDUnitTest.java |  152 +++
 .../cli/commands/ShowDeadlockDUnitTest.java        |   13 +-
 .../ClusterConfigImportDUnitTest.java              |   18 +-
 .../ClusterConfigLocatorRestartDUnitTest.java      |    4 +-
 .../ClusterConfigStartMemberDUnitTest.java         |    1 -
 .../ClusterConfigWithCallbacksDUnitTest.java       |    3 +-
 .../internal/pulse/TestClientIdsDUnitTest.java     |    4 +-
 .../internal/pulse/TestFunctionsDUnitTest.java     |   96 +-
 .../internal/security/MultiGfshDUnitTest.java      |    3 +
 .../geode/security/PDXPostProcessorDUnitTest.java  |    2 +-
 .../tests/GetCurrentVmNumDistributedTest.java      |    5 +-
 .../GetPidAndIdAfterBounceDistributedTest.java     |   11 +-
 .../dunit/tests/GetPidAndIdDistributedTest.java    |    9 +-
 .../ConcurrentRegionOperationIntegrationTest.java  |    2 +-
 .../cache/RegionExpirationIntegrationTest.java     |    2 +-
 ...ncEventQueueEvictionAndExpirationJUnitTest.java |   94 +-
 .../query/internal/IndexManagerJUnitTest.java      |   12 +-
 .../query/partitioned/PRColocatedEquiJoinTest.java |  110 ++
 .../ShorteningExpirationTimeRegressionTest.java    |   69 +-
 .../distributed/LauncherIntegrationTestCase.java   |    2 +-
 .../LauncherMemberMXBeanIntegrationTest.java       |    2 +-
 .../LocatorLauncherIntegrationTestCase.java        |    2 +-
 ...catorLauncherJmxManagerLocalRegressionTest.java |    2 +-
 .../LocatorLauncherRemoteIntegrationTestCase.java  |    4 +-
 .../ServerLauncherIntegrationTestCase.java         |    2 +-
 .../ServerLauncherRemoteIntegrationTestCase.java   |    4 +-
 .../gms/fd/GMSHealthMonitorJUnitTest.java          |    2 +-
 .../gms/messenger/GMSEncryptJUnitTest.java         |  122 +-
 ...edThreadPoolExecutorWithKeepAliveJUnitTest.java |    8 +-
 ...ionCreateNotBeforeRegionInitRegressionTest.java |    2 +-
 ...precatedCacheServerLauncherIntegrationTest.java |   15 +-
 .../internal/cache/DiskRegRecoveryJUnitTest.java   |    3 +-
 .../geode/internal/cache/DiskRegionJUnitTest.java  |   94 +-
 .../geode/internal/cache/OplogJUnitTest.java       |   12 +-
 .../cache/ha/HARQAddOperationJUnitTest.java        |    2 +-
 .../internal/cache/ha/HARegionQueueJUnitTest.java  |    7 +-
 .../CacheClientNotifierIntegrationTest.java        |    2 +-
 .../internal/net/SSLSocketIntegrationTest.java     |    2 +-
 .../geode/internal/offheap/OffHeapRegionBase.java  |    8 +-
 .../ControlFileWatchdogIntegrationTest.java        |   18 +-
 .../ControllableProcessIntegrationTest.java        |    2 +-
 .../FileProcessControllerIntegrationTest.java      |    8 +-
 .../process/NativeProcessUtilsIntegrationTest.java |    6 +-
 .../org/apache/geode/cache/AttributesFactory.java  |    2 +-
 .../cache/query/internal/DefaultQueryService.java  |   17 +-
 .../query/internal/IndexTrackingQueryObserver.java |    1 +
 .../geode/cache/query/internal/QueryUtils.java     |   10 +-
 .../cache/query/internal/index/IndexManager.java   |   30 +-
 .../cache/query/internal/index/RangeIndex.java     |    7 +-
 .../distributed/internal/DistributionAdvisor.java  |   19 +-
 .../InternalConfigurationPersistenceService.java   |   94 +-
 .../internal/cache/CacheDistributionAdvisor.java   |    2 +-
 .../geode/internal/cache/DistributedRegion.java    |   41 +-
 .../geode/internal/cache/GemFireCacheImpl.java     |    2 +-
 .../geode/internal/cache/InternalRegion.java       |    2 +
 .../apache/geode/internal/cache/LocalRegion.java   |  109 +-
 .../geode/internal/cache/MemoryThresholdInfo.java  |   53 +
 .../geode/internal/cache/PartitionedRegion.java    |   29 +-
 .../geode/internal/cache/RegionNameValidation.java |   78 ++
 .../apache/geode/internal/cache/TXManagerImpl.java |   11 +-
 .../internal/cache/control/HeapMemoryMonitor.java  |   70 +-
 .../internal/cache/control/ResourceAdvisor.java    |    2 +-
 .../execute/DistributedRegionFunctionExecutor.java |   16 +-
 .../cache/execute/MemberFunctionExecutor.java      |   19 +-
 .../cache/execute/MultiRegionFunctionExecutor.java |   32 +-
 .../execute/PartitionedRegionFunctionExecutor.java |   17 +-
 .../ServerToClientFunctionResultSender.java        |    8 +-
 .../ServerToClientFunctionResultSender65.java      |    4 +-
 .../geode/internal/cache/map/RegionMapDestroy.java |    3 -
 .../partitioned/PartitionedRegionRebalanceOp.java  |    2 +-
 .../internal/cache/partitioned/RegionAdvisor.java  |    4 +-
 .../tier/sockets/command/ExecuteFunction.java      |   19 +-
 .../tier/sockets/command/ExecuteFunction65.java    |   20 +-
 .../tier/sockets/command/ExecuteFunction66.java    |   23 +-
 .../internal/cache/versions/RVVExceptionB.java     |   17 +-
 .../monitoring/ThreadsMonitoringProcess.java       |    8 +-
 .../monitoring/executor/AbstractExecutor.java      |   24 +-
 .../apache/geode/management/cli/GfshCommand.java   |    8 +-
 .../ExportClusterConfigurationCommand.java         |  208 +++
 .../internal/cli/commands/ExportConfigCommand.java |    7 +-
 .../ExportImportClusterConfigurationCommands.java  |  288 -----
 .../ImportClusterConfigurationCommand.java         |  266 ++++
 .../internal/cli/commands/InternalGfshCommand.java |    7 +
 .../internal/cli/result/ModelCommandResult.java    |   13 +
 .../internal/cli/result/model/DataResultModel.java |    5 +
 .../internal/cli/result/model/FileResultModel.java |   25 +-
 .../internal/cli/result/model/InfoResultModel.java |    4 +
 .../internal/cli/result/model/ResultModel.java     |   33 +-
 .../geode/management/internal/cli/shell/Gfsh.java  |   15 +-
 .../internal/cli/util/ClasspathScanLoadHelper.java |   17 +-
 .../sanctioned-geode-core-serializables.txt        |    1 +
 .../geode/cache/RegionNameValidationJUnitTest.java |   89 --
 .../internal/QueueConnectionImplJUnitTest.java     |    6 +-
 ...pClientExecutorSubmitTaskWithExceptionTest.java |    2 +-
 .../cache/query/internal/QueryMonitorTest.java     |    2 +-
 ...nternalConfigurationPersistenceServiceTest.java |    2 +-
 .../internal/cache/DistributedRegionJUnitTest.java |   32 +
 .../geode/internal/cache/EntryEventImplTest.java   |   17 +-
 .../geode/internal/cache/GemFireCacheImplTest.java |    2 +-
 .../internal/cache/MemoryThresholdInfoTest.java    |   25 +-
 .../internal/cache/RegionNameValidationTest.java   |  212 ++++
 .../geode/internal/cache/TXManagerImplTest.java    |   25 +
 .../cache/control/HeapMemoryMonitorTest.java       |  325 +++++
 .../eviction/LRUListWithAsyncSortingTest.java      |    6 +-
 ...verToClientFunctionResultSender65JUnitTest.java |   19 +-
 ...erverToClientFunctionResultSenderJUnitTest.java |   69 +-
 .../internal/cache/map/RegionMapDestroyTest.java   |   35 -
 .../tier/sockets/ClientHealthMonitorJUnitTest.java |    2 +-
 .../sockets/command/ExecuteFunction66Test.java     |    4 +
 .../cache/versions/RVVExceptionJUnitTest.java      |   39 +
 .../GemFireBasicDataSourceJUnitTest.java           |   17 +-
 .../internal/offheap/MemoryBlockNodeJUnitTest.java |   10 +-
 .../offheap/OffHeapRegionEntryHelperJUnitTest.java |   10 +-
 .../offheap/ReferenceCountHelperImplTest.java      |    6 +-
 ...AbstractProcessStreamReaderIntegrationTest.java |    8 +-
 .../internal/process/lang/AvailablePidTest.java    |    4 +-
 ...ServerBridgeClientMembershipRegressionTest.java |    2 +-
 .../commands/DestroyJndiBindingCommandTest.java    |    5 +-
 .../ExportClusterConfigurationCommandTest.java     |  117 ++
 .../ImportClusterConfigurationCommandTest.java     |  192 +++
 .../internal/cli/shell/GfshAbstractUnitTest.java   |   96 ++
 .../cli/shell/GfshConsoleModeUnitTest.java         |   61 +
 .../cli/shell/GfshHeadlessModeUnitTest.java        |   58 +
 .../internal/cli/shell/GfshJunitTest.java          |  115 --
 .../RollingUpgrade2DUnitTestBase.java              |   14 +-
 .../rollingupgrade/RollingUpgradeClients.java      |    2 +-
 .../RollingUpgradeConcurrentPutsReplicated.java    |    2 +-
 .../rollingupgrade/RollingUpgradeDUnitTest.java    |    2 +-
 ...gradeHARegionNameOnDifferentServerVersions.java |    2 +-
 .../RollingUpgradeRollLocatorWithTwoServers.java   |    2 +-
 .../RollingUpgradeRollLocatorsWithOldServer.java   |    2 +-
 ...LocatorWithMultipleServersReplicatedRegion.java |    2 +-
 .../rollingupgrade/RollingUpgradeTracePRQuery.java |    4 +-
 .../RollingUpgradeVerifyXmlEntity.java             |    2 +-
 ...ientStatisticsPublicationSecurityDUnitTest.java |    2 +-
 .../geode/cache/query/cq/CQDistributedTest.java    |   10 +-
 .../query/cq/dunit/CqPerfUsingPoolDUnitTest.java   |    7 +-
 .../dunit/CqSecurityAuthorizedUserDUnitTest.java   |    6 +-
 ...SecurityPartitionedAuthorizedUserDUnitTest.java |    2 +-
 .../dunit/CqSecurityUnauthorizedUserDUnitTest.java |    2 +-
 .../geode/internal/cache/PutAllCSDUnitTest.java    |    2 +-
 .../tier/sockets/DurableClientSimpleDUnitTest.java |    2 +-
 .../commands/DurableClientCommandsDUnitTest.java   |    4 +-
 .../tier/sockets/ClientServerMiscBCDUnitTest.java  |    8 +-
 .../examples/AsyncInvokeCallableExampleTest.java   |   26 +-
 .../examples/AsyncInvokeRunnableExampleTest.java   |   12 +-
 .../CatchingUnexpectedExceptionExampleTest.java    |   13 +-
 ... => DistributedRuleAsClassRuleExampleTest.java} |   32 +-
 .../dunit/examples/InvokeRunnableExampleTest.java  |   13 +-
 .../examples/LocatorPortClusterExampleTest.java    |    7 +-
 .../examples/ReplaceTryFinallyExampleTest.java     |   14 +-
 .../tests/CacheRuleBuilderDistributedTest.java     |    9 +-
 .../rules/tests/CacheRuleDistributedTest.java      |    4 +-
 .../tests/ClientCacheRuleDistributedTest.java      |  114 ++
 ...utedRestoreSystemPropertiesDistributedTest.java |   14 +-
 ...st.java => DistributedRuleDistributedTest.java} |   11 +-
 .../tests/SharedCountersRuleDistributedTest.java   |   69 +-
 .../tests/SharedErrorCollectorDistributedTest.java |   45 +-
 .../geode/cache30/MultiVMRegionTestCase.java       |    2 +-
 .../internal/cache/functions/TestFunction.java     |  286 ++---
 .../sockets/ClientServerMiscDUnitTestBase.java     |   33 +-
 .../cache/wan/AsyncEventQueueTestBase.java         |    9 +-
 .../apache/geode/management/MXBeanAwaitility.java  |   17 +-
 .../internal/cli/commands/CliCommandTestBase.java  |  554 --------
 .../commands/QueryCommandIntegrationTestBase.java  |   10 +-
 .../RegionMembershipMBeanDUnitTestBase.java        |    2 +-
 .../internal/configuration/ClusterConfig.java      |    2 +-
 .../security/GfshCommandsSecurityTestBase.java     |    5 +
 .../main/java/org/apache/geode/test/dunit/VM.java  |    7 +
 .../dunit/internal/JUnit4DistributedTestCase.java  |    4 +-
 ...dTestRule.java => AbstractDistributedRule.java} |    8 +-
 .../apache/geode/test/dunit/rules/CacheRule.java   |   39 +-
 .../test/dunit/rules/CleanupDUnitVMsRule.java      |    2 +-
 .../geode/test/dunit/rules/ClientCacheRule.java    |   52 +-
 .../geode/test/dunit/rules/ClusterStartupRule.java |    8 +
 .../rules/DistributedRestoreSystemProperties.java  |    2 +-
 ...stributedTestRule.java => DistributedRule.java} |   95 +-
 .../geode/test/dunit/rules/SharedCountersRule.java |   57 +-
 .../test/dunit/rules/SharedErrorCollector.java     |   22 +-
 .../geode/test/junit/rules/GfshCommandRule.java    |    2 +-
 .../geode/test/junit/rules/LocatorStarterRule.java |    2 +-
 .../geode/test/junit/rules/MemberStarterRule.java  |    4 +-
 .../geode/test/junit/rules/ServerStarterRule.java  |   55 +-
 .../DoNotHandleUnexpectedExceptionExampleTest.java |    2 -
 .../rules/ExecutorServiceRuleIntegrationTest.java  |    3 +-
 .../internal/cache/TestObjectWithIdentifier.java   |    3 -
 .../cache/extension/mock/MockCacheExtension.java   |    2 +-
 .../internal/configuration/ConfigGroup.java        |    8 +-
 .../geode/test/junit/rules/ConcurrencyRule.java    |   51 +-
 .../test/junit/rules/ConcurrencyRuleTest.java      |   31 +
 .../test/junit/rules/ExecutorServiceRuleTest.java  |    3 +-
 .../geode/cache/lucene/EvictionDUnitTest.java      |    2 +-
 .../geode/cache/lucene/ExpirationDUnitTest.java    |    3 +-
 .../geode/cache/lucene/LuceneQueriesDUnitTest.java |    5 +-
 .../lucene/LuceneQueriesReindexDUnitTest.java      |    5 +-
 .../management/LuceneManagementDUnitTest.java      |    3 +-
 ...eneIndexCreationPersistenceIntegrationTest.java |    2 +-
 .../LuceneIndexMaintenanceIntegrationTest.java     |    7 +-
 .../internal/LuceneEventListenerJUnitTest.java     |    5 +-
 .../distributed/LuceneQueryFunctionJUnitTest.java  |    4 +-
 .../LuceneSearchWithRollingUpgradeDUnit.java       |    2 +-
 ...ultAfterTwoLocatorsWithTwoServersAreRolled.java |    4 +-
 ...tResultsAfterClientAndServersAreRolledOver.java |    2 +-
 ...ntAndServersAreRolledOverAllBucketsCreated.java |    2 +-
 ...ccessfulWhenAllServersRollToCurrentVersion.java |    2 +-
 .../v1/acceptance/LocatorConnectionDUnitTest.java  |    2 +-
 geode-pulse/build.gradle                           |    3 -
 geode-pulse/geode-pulse-test/build.gradle          |    4 +
 .../pulse/tests/rules/ScreenshotOnFailureRule.java |    0
 .../tools/pulse/tests/rules/WebDriverRule.java     |    0
 .../tools/pulse/tests/ui/PulseTestConstants.java   |    0
 .../controllers/PulseControllerJUnitTest.java      |  100 +-
 .../internal/controllers/PulseController.java      |   67 +-
 .../scripts/pulsescript/pages/DataBrowserQuery.js  |    4 +-
 .../geode/cache/util/AutoBalancerJUnitTest.java    |    6 +-
 ...ueueOverflowMBeanAttributesDistributedTest.java |    4 +-
 .../GatewayLegacyAuthenticationRegressionTest.java |   28 +-
 .../cache/wan/GatewayReceiverMBeanDUnitTest.java   |    2 +-
 ...nderOverflowMBeanAttributesDistributedTest.java |    4 +-
 .../geode/internal/cache/wan/WANTestBase.java      |   63 +-
 .../ConcurrentParallelGatewaySenderDUnitTest.java  |    4 +-
 ...ParallelGatewaySenderOperation_2_DUnitTest.java |   17 +-
 .../wan/misc/NewWanAuthenticationDUnitTest.java    |    4 +-
 .../cache/wan/misc/PDXNewWanDUnitTest.java         |    9 +-
 ...arallelGatewaySenderQueueOverflowDUnitTest.java |    2 +-
 .../parallel/ParallelWANConflationDUnitTest.java   |    2 +-
 .../wan/parallel/ParallelWANStatsDUnitTest.java    |    4 +-
 .../SerialGatewaySenderEventListenerDUnitTest.java |    2 +-
 .../cache/wan/serial/SerialWANStatsDUnitTest.java  |    2 +-
 .../wancommand/ListGatewaysCommandDUnitTest.java   |    5 +-
 .../cache/wan/wancommand/WANCommandUtils.java      |    4 +-
 .../geode/management/WANManagementDUnitTest.java   |    2 +-
 .../WANClusterConfigurationDUnitTest.java          |    2 +-
 ...ateGatewaySenderMixedSiteOneCurrentSiteTwo.java |    2 +-
 ...eEventProcessingMixedSiteOneCurrentSiteTwo.java |    2 +-
 ...gradeEventProcessingMixedSiteOneOldSiteTwo.java |    4 +-
 ...adeEventProcessingOldSiteOneCurrentSiteTwo.java |    2 +-
 ...ipleReceiversDefinedInClusterConfiguration.java |    2 +-
 ...tReprocessedAfterCurrentSiteMemberFailover.java |    2 +-
 ...fterCurrentSiteMemberFailoverWithOldClient.java |    2 +-
 ...tsNotReprocessedAfterOldSiteMemberFailover.java |    2 +-
 ...eCacheServerProfileToMembersOlderThan1dot5.java |    2 +-
 ...ANRollingUpgradeVerifyGatewaySenderProfile.java |    2 +-
 gradle.properties                                  |    8 +-
 gradle/dependency-versions.properties              |   34 +-
 gradle/test-by-category.gradle                     |   53 +-
 gradle/test.gradle                                 |   10 +-
 settings.gradle                                    |    1 +
 412 files changed, 7232 insertions(+), 4405 deletions(-)
 copy {geode-pulse/geode-pulse-test => geode-assembly/geode-assembly-test}/build.gradle (60%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/AddFreeItemToOrders.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/Customer.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/DateTimeUtils.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/Gender.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/GetAllEntries.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/GetDeliveredOrders.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/GetRegions.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/GetValueForKey.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/Item.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/NoArgumentFunction.java (93%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/Order.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/Person.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/PutKeyFunction.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/RedactingPostProcessor.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/rest/internal/web/controllers/RestTestUtils.java (98%)
 rename geode-assembly/{src/distributedTest => geode-assembly-test/src/main}/java/org/apache/geode/session/tests/Client.java (100%)
 rename geode-assembly/{src/distributedTest => geode-assembly-test/src/main}/java/org/apache/geode/session/tests/ContainerInstall.java (100%)
 rename geode-assembly/{src/distributedTest => geode-assembly-test/src/main}/java/org/apache/geode/session/tests/ContainerManager.java (100%)
 rename geode-assembly/{src/distributedTest => geode-assembly-test/src/main}/java/org/apache/geode/session/tests/ServerContainer.java (100%)
 rename geode-assembly/{src/distributedTest => geode-assembly-test/src/main}/java/org/apache/geode/session/tests/TomcatContainer.java (100%)
 rename geode-assembly/{src/distributedTest => geode-assembly-test/src/main}/java/org/apache/geode/session/tests/TomcatInstall.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/test/junit/rules/EmbeddedPulseRule.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/test/junit/rules/GeodeDevRestClient.java (100%)
 rename geode-assembly/{src/integrationTest => geode-assembly-test/src/main}/java/org/apache/geode/test/junit/rules/HttpResponseAssert.java (100%)
 create mode 100644 geode-assembly/src/integrationTest/java/org/apache/geode/AssemblyContentsIntegrationTest.java
 create mode 100644 geode-assembly/src/integrationTest/java/org/apache/geode/GeodeDependencyJarIntegrationTest.java
 create mode 100644 geode-assembly/src/integrationTest/resources/assembly_content.txt
 create mode 100644 geode-assembly/src/integrationTest/resources/dependency_classpath.txt
 create mode 100644 geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ExportClusterConfigurationCommandDUnitTest.java
 create mode 100644 geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ImportClusterConfigurationCommandDUnitTest.java
 create mode 100644 geode-core/src/integrationTest/java/org/apache/geode/cache/query/partitioned/PRColocatedEquiJoinTest.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/MemoryThresholdInfo.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/RegionNameValidation.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportClusterConfigurationCommand.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportImportClusterConfigurationCommands.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ImportClusterConfigurationCommand.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/cache/RegionNameValidationJUnitTest.java
 copy geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/DistributedTestRuleExampleTest.java => geode-core/src/test/java/org/apache/geode/internal/cache/MemoryThresholdInfoTest.java (58%)
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/RegionNameValidationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/control/HeapMemoryMonitorTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportClusterConfigurationCommandTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ImportClusterConfigurationCommandTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshAbstractUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshConsoleModeUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshHeadlessModeUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshJunitTest.java
 rename geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/{DistributedTestRuleExampleTest.java => DistributedRuleAsClassRuleExampleTest.java} (50%)
 create mode 100644 geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/ClientCacheRuleDistributedTest.java
 rename geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/{DistributedTestRuleDistributedTest.java => DistributedRuleDistributedTest.java} (76%)
 delete mode 100644 geode-dunit/src/main/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
 rename geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/{AbstractDistributedTestRule.java => AbstractDistributedRule.java} (90%)
 rename geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/{DistributedTestRule.java => DistributedRule.java} (71%)
 rename geode-pulse/{src/uiTest => geode-pulse-test/src/main}/java/org/apache/geode/tools/pulse/tests/rules/ScreenshotOnFailureRule.java (100%)
 rename geode-pulse/{src/uiTest => geode-pulse-test/src/main}/java/org/apache/geode/tools/pulse/tests/rules/WebDriverRule.java (100%)
 rename geode-pulse/{src/uiTest => geode-pulse-test/src/main}/java/org/apache/geode/tools/pulse/tests/ui/PulseTestConstants.java (100%)


[geode] 04/04: Merge branch 'feature/GEODE-5596' of ssh://github.com/apache/geode into feature/GEODE-5596

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

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

commit 47dc37b4b318b050c3e1356c947d10a8f582763d
Merge: 0bcb019 996a0a9
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Mon Aug 27 11:28:47 2018 -0700

    Merge branch 'feature/GEODE-5596' of ssh://github.com/apache/geode into feature/GEODE-5596



[geode] 02/04: GEODE-5596 Client ends up with destroyed entry after invalidate()

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

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

commit a1135349e6cd1f934399346481ff62de806f33b3
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Fri Aug 17 13:54:34 2018 -0700

    GEODE-5596 Client ends up with destroyed entry after invalidate()
    
    Undoing a couple of unnecessary test changes.
---
 .../java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java      | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
index f9fc941..08a7edb 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
@@ -675,9 +675,7 @@ public class ClientServerCCEDUnitTest extends JUnit4CacheTestCase {
   private void unregisterInterest(VM vm) {
     vm.invoke(new SerializableRunnable("unregister interest in all keys") {
       public void run() {
-        // TestRegion.dumpBackingMap();
         TestRegion.unregisterInterestRegex(".*");
-        // TestRegion.dumpBackingMap();
       }
     });
   }
@@ -886,8 +884,7 @@ public class ClientServerCCEDUnitTest extends JUnit4CacheTestCase {
         for (int i = 0; i < 10; i++) {
           TestRegion.invalidate("Object" + i, Integer.valueOf(i));
         }
-        TestRegion.dumpBackingMap();
-        // assertEquals(10, TestRegion.size());
+        assertEquals(10, TestRegion.size());
         return null;
       }
     });


[geode] 01/04: GEODE-5596 Client ends up with destroyed entry after invalidate()

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

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

commit 7e068cc11c2d5c58fbb64c9e7aef93e4e3cd4463
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Fri Aug 17 10:51:44 2018 -0700

    GEODE-5596 Client ends up with destroyed entry after invalidate()
    
    Modifying client cache behavior to create an Invalid entry when an application
    invokes invalid() and the entry is currently in Destroyed state on the client
    but not on servers.
---
 .../geode/cache30/ClientServerCCEDUnitTest.java    | 73 +++++++++++++++++++++-
 .../geode/internal/cache/AbstractRegionMap.java    |  7 +--
 .../apache/geode/internal/cache/LocalRegion.java   |  4 +-
 3 files changed, 76 insertions(+), 8 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
index 1878aa0..f9fc941 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
@@ -45,6 +45,7 @@ import org.apache.geode.cache.EntryEvent;
 import org.apache.geode.cache.ExpirationAction;
 import org.apache.geode.cache.ExpirationAttributes;
 import org.apache.geode.cache.InterestResultPolicy;
+import org.apache.geode.cache.Operation;
 import org.apache.geode.cache.PartitionAttributesFactory;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.Scope;
@@ -63,7 +64,12 @@ import org.apache.geode.internal.AvailablePortHelper;
 import org.apache.geode.internal.cache.CachePerfStats;
 import org.apache.geode.internal.cache.DistributedRegion;
 import org.apache.geode.internal.cache.DistributedTombstoneOperation.TombstoneMessage;
+import org.apache.geode.internal.cache.EntryEventImpl;
+import org.apache.geode.internal.cache.EventID;
+import org.apache.geode.internal.cache.KeyInfo;
 import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionMap;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
 import org.apache.geode.internal.cache.ha.HARegionQueue;
 import org.apache.geode.internal.cache.partitioned.PRTombstoneMessage;
@@ -567,6 +573,69 @@ public class ClientServerCCEDUnitTest extends JUnit4CacheTestCase {
   }
 
   @Test
+  public void testClientInvalidateAfterDestroyLeavesInvalidEntryRR() throws Exception {
+    clientInvalidateAfterDestroyLeavesInvalidEntryTest(getUniqueName(), true);
+  }
+
+  @Test
+  public void testClientInvalidateAfterDestroyLeavesInvalidEntryPR() throws Exception {
+    clientInvalidateAfterDestroyLeavesInvalidEntryTest(getUniqueName(), false);
+  }
+
+  private void clientInvalidateAfterDestroyLeavesInvalidEntryTest(String uniqueName,
+      boolean useReplicateRegion) {
+    Host host = Host.getHost(0);
+    VM serverVM = host.getVM(0);
+    VM clientVM = host.getVM(1);
+    final String name = uniqueName + "Region";
+
+
+    int port = createServerRegion(serverVM, name, useReplicateRegion);
+
+    createClientRegion(clientVM, name, port, true, ClientRegionShortcut.CACHING_PROXY, false);
+    final String key = "Object0";
+
+    // use the client cache to create and destroy an entry
+    clientVM.invoke(() -> {
+      TestRegion.put(key, "some value"); // v1
+      TestRegion.destroy(key); // v2
+      RegionMap map = TestRegion.getRegionMap();
+      AbstractRegionEntry regionEntry = (AbstractRegionEntry) map.getEntry(key);
+      assertEquals(Token.TOMBSTONE, regionEntry.getValueAsToken());
+    });
+
+    // use the server cache to recreate the entry, but don't let the client cache know about it
+    serverVM.invoke(() -> {
+      TestRegion.put(key, "new value"); // v3 - not known by client cache
+    });
+
+    // now invalidate the entry in the client cache and show that it holds an INVALID entry
+    clientVM.invoke(() -> {
+      RegionMap map = TestRegion.getRegionMap();
+      AbstractRegionEntry regionEntry = (AbstractRegionEntry) map.getEntry(key);
+
+      EntryEventImpl invalidateEvent = new EntryEventImpl();
+      invalidateEvent.setRegion(TestRegion);
+      invalidateEvent.setKeyInfo(new KeyInfo(key, Token.INVALID, null));
+      invalidateEvent.setOperation(Operation.INVALIDATE);
+      invalidateEvent.setEventId(new EventID(TestRegion.getCache().getDistributedSystem()));
+
+      // invoke invalidate() with forceNewEntry=true to have it create an INVALID entry
+      map.invalidate(invalidateEvent, true, true, false);
+
+      assertEquals(Token.INVALID, regionEntry.getValueAsToken());
+      System.out.println("entry=" + regionEntry);
+      assertEquals(4, regionEntry.getVersionStamp().getEntryVersion());
+    });
+
+    serverVM.invoke(() -> {
+      assertTrue(TestRegion.containsKey(key));
+      assertNull(TestRegion.get(key));
+    });
+
+  }
+
+  @Test
   public void testClientCacheListenerDoesNotSeeTombstones() throws Exception {
     Host host = Host.getHost(0);
     VM vm0 = host.getVM(0);
@@ -817,7 +886,8 @@ public class ClientServerCCEDUnitTest extends JUnit4CacheTestCase {
         for (int i = 0; i < 10; i++) {
           TestRegion.invalidate("Object" + i, Integer.valueOf(i));
         }
-        assertEquals(10, TestRegion.size());
+        TestRegion.dumpBackingMap();
+        // assertEquals(10, TestRegion.size());
         return null;
       }
     });
@@ -940,6 +1010,7 @@ public class ClientServerCCEDUnitTest extends JUnit4CacheTestCase {
           af.setPartitionAttributes(
               (new PartitionAttributesFactory()).setTotalNumBuckets(2).create());
         }
+        af.setConcurrencyChecksEnabled(true);
         TestRegion = (LocalRegion) createRootRegion(regionName, af.create());
 
         CacheServer server = getCache().addCacheServer();
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java
index eefa190..9a10106 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java
@@ -1331,6 +1331,7 @@ public abstract class AbstractRegionMap
       Assert.assertTrue(false, "The owner for RegionMap " + this + " is null for event " + event);
 
     }
+    logger.debug("ARM.invalidate invoked for key {}", event.getKey());
     boolean didInvalidate = false;
     RegionEntry invalidatedRe = null;
     boolean clearOccured = false;
@@ -1577,12 +1578,6 @@ public abstract class AbstractRegionMap
                       } else if (tombstone != null) {
                         processVersionTag(tombstone, event);
                         try {
-                          if (!tombstone.isTombstone()) {
-                            if (isDebugEnabled) {
-                              logger.debug("tombstone is no longer a tombstone. {}:event={}",
-                                  tombstone, event);
-                            }
-                          }
                           tombstone.setValue(owner, Token.TOMBSTONE);
                         } catch (RegionClearedException e) {
                           // that's okay - when writing a tombstone into a disk, the
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
index 92c2e3c..b5250f3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
@@ -4954,7 +4954,9 @@ public class LocalRegion extends AbstractRegion implements LoaderHelperFactory,
    */
   private void basicInvalidate(final EntryEventImpl event, boolean invokeCallbacks)
       throws EntryNotFoundException {
-    basicInvalidate(event, invokeCallbacks, false);
+    final boolean forceNewEntryInClientCache = this.serverRegionProxy != null
+        && getConcurrencyChecksEnabled();
+    basicInvalidate(event, invokeCallbacks, forceNewEntryInClientCache);
   }
 
   /**


[geode] 03/04: GEODE-5596 Client ends up with destroyed entry after invalidate()

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

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

commit 0bcb01992ce4e0d20e285541b0975965106efe10
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Mon Aug 27 11:23:56 2018 -0700

    GEODE-5596 Client ends up with destroyed entry after invalidate()
    
    Fixing failing tests.  The behavior in clients has changed now - if
    there is no entry or a tombstone entry in the client and it does an
    invalidate() we now expect it to create an entry if concurrency-checks
    are enabled.
    
    I also changed the AttributesFactory javadoc for
    concurrency-checks-enabled because it was saying it is turned off by
    default but that is not the case.
---
 .../org/apache/geode/cache/AttributesFactory.java  |  2 +-
 .../sockets/ClientServerMiscDUnitTestBase.java     | 31 ++++++++--------------
 2 files changed, 12 insertions(+), 21 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/cache/AttributesFactory.java b/geode-core/src/main/java/org/apache/geode/cache/AttributesFactory.java
index 2017cf2..93d9a99 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/AttributesFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/AttributesFactory.java
@@ -193,7 +193,7 @@ import org.apache.geode.internal.i18n.LocalizedStrings;
  * others will only read. <br>
  * {@link #setConcurrencyLevel} {@link RegionAttributes#getConcurrencyLevel}</dd>
  *
- * <dt>ConcurrencyChecksEnabled [<em>default:</em> {@code false}]</dt>
+ * <dt>ConcurrencyChecksEnabled [<em>default:</em> {@code true}]</dt>
  * <dd>Enables a distributed versioning algorithm that detects concurrency conflicts in regions and
  * ensures that changes to an entry are not applied in a different order in other members. This can
  * cause operations to be conflated, so that some cache listeners may see an event while others do
diff --git a/geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTestBase.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTestBase.java
index 20d10ea..3bd42ca 100755
--- a/geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTestBase.java
+++ b/geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTestBase.java
@@ -16,6 +16,7 @@ package org.apache.geode.internal.cache.tier.sockets;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -45,6 +46,7 @@ import org.apache.geode.cache.CacheException;
 import org.apache.geode.cache.CacheWriterException;
 import org.apache.geode.cache.DataPolicy;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.cache.InterestResultPolicy;
 import org.apache.geode.cache.PartitionAttributesFactory;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.RegionAttributes;
@@ -554,27 +556,16 @@ public class ClientServerMiscDUnitTestBase extends JUnit4CacheTestCase {
     Region region = static_cache.getRegion(REGION_NAME1);
     populateCache();
     region.put("invalidationKey", "invalidationValue");
+
     region.localDestroy("invalidationKey");
-    if (region.containsKey("invalidationKey")) {
-      fail("region still contains invalidationKey");
-    }
+    assertThat(region.containsKey("invalidationKey")).isFalse();
+
     region.invalidate("invalidationKey");
-    if (region.containsKey("invalidationKey")) {
-      fail(
-          "this test expects the entry is not created on invalidate() if not there before the operation");
-    }
+    assertThat(region.containsKey("invalidationKey")).isTrue();
+
     Object value = region.get("invalidationKey");
-    if (value != null) {
-      fail("this test expected a null response to get('invalidationKey')");
-    }
-    if (!region.containsKeyOnServer("invalidationKey")) {
-      fail("expected an entry on the server after invalidation");
-    }
-    // bug 43407 asserts that there should be an entry, but the product does not
-    // do this. This verifies that the product does not behave as asserted in that bug
-    if (region.containsKey("invalidationKey")) {
-      fail("expected no entry after invalidation when entry was not in client but was on server");
-    }
+    assertThat(value).isNull();
+    assertThat(region.containsKeyOnServer("invalidationKey")).isTrue();
   }
 
   /**
@@ -986,8 +977,8 @@ public class ClientServerMiscDUnitTestBase extends JUnit4CacheTestCase {
       assertNotNull(r1);
       Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
       assertNotNull(r2);
-      r1.registerInterest("ALL_KEYS", false, false);
-      r2.registerInterest("ALL_KEYS", false, false);
+      r1.registerInterestForAllKeys(InterestResultPolicy.KEYS, false, false);
+      r2.registerInterestForAllKeys(InterestResultPolicy.KEYS, false, false);
     } catch (CacheWriterException e) {
       e.printStackTrace();
       fail("Test failed due to CacheWriterException during registerInterestnBothRegions" + e);