[ https://issues.apache.org/jira/browse/GEODE-8079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17102890#comment-17102890 ]
ASF subversion and git services commented on GEODE-8079: -------------------------------------------------------- Commit 78a4fb9bf1643aaf72c120b0f378ca8730e16719 in geode's branch refs/heads/mass-test-run from Juan José Ramos [ https://gitbox.apache.org/repos/asf?p=geode.git;h=78a4fb9 ] GEODE-8079: Fix DistributedRegion Validations (#5070) Attaching a parallel gateway-sender or async-event-queue to a Replicate Region through the AttributesMutator class now throws an exception instead of wrongly assigning the dispatcher to the region. - Fixed several warnings. - Added unit and distributed tests. - Refactored WanValidationsDUnitTest. - Replaced usages of 'junit.Assert' by 'assertj'. - Changed test methods to use more meaningful names. - Removed references to old ids used by another ticketing system. > AttributesMutator Should Validate AsyncEventQueue/GatewaySender Type > -------------------------------------------------------------------- > > Key: GEODE-8079 > URL: https://issues.apache.org/jira/browse/GEODE-8079 > Project: Geode > Issue Type: Bug > Components: configuration, gfsh, wan > Affects Versions: 1.12.0 > Reporter: Juan Ramos > Assignee: Juan Ramos > Priority: Major > Labels: caching-applications > Fix For: 1.14.0 > > > By design, a parallel {{gateway-sender}} can't be attached to a {{REPLICATE}} > region. > While working on on GEODE-8029 I've found that the above fact is correctly > validated when creating or initialising the region, but totally ignored when > updating the region through the {{AttributesMutator}} class. > Altering a {{REPLICATE}} region to dispatch events through a parallel > {{gateway-sender}} results in cryptic errors while putting entries into the > region afterwards: > {noformat} > [vm1] [warn 2020/05/06 10:34:09.638 IST <RMI TCP Connection(1)-127.0.0.1> > tid=0x13] GatewaySender: Not queuing the event > GatewaySenderEventImpl[id=EventID[id=18 > bytes;threadID=0x10062|2;sequenceID=91;bucketId=98];action=0;operation=CREATE;region=/TestRegion;key=Key90;value=Value90;valueIsObject=1;numberOfParts=9;callbackArgument=GatewaySenderEventCallbackArgument > > [originalCallbackArg=null;originatingSenderId=1;recipientGatewayReceivers={2}];possibleDuplicate=false;creationTime=1588757649638;shadowKey=-1;timeStamp=1588757649638;acked=false;dispatched=false;bucketId=98;isConcurrencyConflict=false], > as the region for which this event originated is not yet configured in the > GatewaySender > [vm1] [warn 2020/05/06 10:34:09.638 IST <RMI TCP Connection(1)-127.0.0.1> > tid=0x13] GatewaySender: Not queuing the event > GatewaySenderEventImpl[id=EventID[id=18 > bytes;threadID=0x10063|2;sequenceID=92;bucketId=99];action=0;operation=CREATE;region=/TestRegion;key=Key91;value=Value91;valueIsObject=1;numberOfParts=9;callbackArgument=GatewaySenderEventCallbackArgument > > [originalCallbackArg=null;originatingSenderId=1;recipientGatewayReceivers={2}];possibleDuplicate=false;creationTime=1588757649638;shadowKey=-1;timeStamp=1588757649638;acked=false;dispatched=false;bucketId=99;isConcurrencyConflict=false], > as the region for which this event originated is not yet configured in the > GatewaySender > [vm1] [warn 2020/05/06 10:34:09.639 IST <RMI TCP Connection(1)-127.0.0.1> > tid=0x13] GatewaySender: Not queuing the event > GatewaySenderEventImpl[id=EventID[id=18 > bytes;threadID=0x10064|2;sequenceID=93;bucketId=100];action=0;operation=CREATE;region=/TestRegion;key=Key92;value=Value92;valueIsObject=1;numberOfParts=9;callbackArgument=GatewaySenderEventCallbackArgument > > [originalCallbackArg=null;originatingSenderId=1;recipientGatewayReceivers={2}];possibleDuplicate=false;creationTime=1588757649638;shadowKey=-1;timeStamp=1588757649638;acked=false;dispatched=false;bucketId=100;isConcurrencyConflict=false], > as the region for which this event originated is not yet configured in the > GatewaySender > [vm1] [warn 2020/05/06 10:34:09.639 IST <RMI TCP Connection(1)-127.0.0.1> > tid=0x13] GatewaySender: Not queuing the event > GatewaySenderEventImpl[id=EventID[id=18 > bytes;threadID=0x10065|2;sequenceID=94;bucketId=101];action=0;operation=CREATE;region=/TestRegion;key=Key93;value=Value93;valueIsObject=1;numberOfParts=9;callbackArgument=GatewaySenderEventCallbackArgument > > [originalCallbackArg=null;originatingSenderId=1;recipientGatewayReceivers={2}];possibleDuplicate=false;creationTime=1588757649639;shadowKey=-1;timeStamp=1588757649639;acked=false;dispatched=false;bucketId=101;isConcurrencyConflict=false], > as the region for which this event originated is not yet configured in the > GatewaySender > {noformat} > When done from {{GFSH}}, on the other hand, the server doesn't even start up > after altering the region as the {{cluster-configuration}} is invalid: > {noformat} > gfsh -e "connect" -e "create region --name=TestRegion --type=REPLICATE" > Member | Status | Message > --------------- | ------ | ------------------------------------------------- > cluster1-server | OK | Region "/TestRegion" created on "cluster1-server" > Cluster configuration for group 'cluster' is updated. > gfsh -e "connect" -e "create gateway-sender --id=MyGateway > --remote-distributed-system-id=2 --parallel=true" > Member | Status | Message > --------------- | ------ | > ------------------------------------------------------ > cluster1-server | OK | GatewaySender "MyGateway" created on > "cluster1-server" > Cluster configuration for group 'cluster' is updated. > gfsh -e "connect" -e "alter region --name=/TestRegion > -–gateway-sender-id=MyGateway" > Member | Status | Message > --------------- | ------ | ------------------------- > cluster1-server | OK | Region TestRegion altered > Cluster configuration for group 'cluster' is updated. > ////// Restart Cluster > [warn 2020/05/06 10:09:07.385 IST <main> tid=0x1] Initialization failed for > Region /TestRegion > org.apache.geode.internal.cache.wan.GatewaySenderConfigurationException: > Parallel gateway sender MyGateway can not be used with replicated region > /TestRegion > at > org.apache.geode.internal.cache.DistributedRegion.preInitialize(DistributedRegion.java:1035) > at > org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:2996) > at > org.apache.geode.internal.cache.GemFireCacheImpl.basicCreateRegion(GemFireCacheImpl.java:2891) > at > org.apache.geode.internal.cache.xmlcache.RegionCreation.createRoot(RegionCreation.java:237) > at > org.apache.geode.internal.cache.xmlcache.CacheCreation.initializeRegions(CacheCreation.java:658) > at > org.apache.geode.internal.cache.xmlcache.CacheCreation.create(CacheCreation.java:592) > at > org.apache.geode.internal.cache.xmlcache.CacheXmlParser.create(CacheXmlParser.java:339) > at > org.apache.geode.internal.cache.GemFireCacheImpl.loadCacheXml(GemFireCacheImpl.java:4096) > at > org.apache.geode.internal.cache.ClusterConfigurationLoader.applyClusterXmlConfiguration(ClusterConfigurationLoader.java:208) > at > org.apache.geode.internal.cache.GemFireCacheImpl.applyJarAndXmlFromClusterConfig(GemFireCacheImpl.java:1409) > at > org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1374) > at > org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191) > at > org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:158) > at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142) > at > org.apache.geode.distributed.internal.DefaultServerLauncherCacheProvider.createCache(DefaultServerLauncherCacheProvider.java:52) > at > org.apache.geode.distributed.ServerLauncher.createCache(ServerLauncher.java:892) > at > org.apache.geode.distributed.ServerLauncher.start(ServerLauncher.java:807) > at > org.apache.geode.distributed.ServerLauncher.run(ServerLauncher.java:737) > at > org.apache.geode.distributed.ServerLauncher.main(ServerLauncher.java:256) > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)