You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Alexander Murmann (Jira)" <ji...@apache.org> on 2020/08/04 21:21:00 UTC

[jira] [Resolved] (GEODE-5318) create defined index does not update cluster config if methods are invoked in the from clause

     [ https://issues.apache.org/jira/browse/GEODE-5318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexander Murmann resolved GEODE-5318.
--------------------------------------
    Resolution: Fixed

Looks like a fix was merged over 2 years ago

> create defined index does not update cluster config if methods are invoked in the from clause
> ---------------------------------------------------------------------------------------------
>
>                 Key: GEODE-5318
>                 URL: https://issues.apache.org/jira/browse/GEODE-5318
>             Project: Geode
>          Issue Type: Bug
>          Components: querying
>            Reporter: Nabarun Nag
>            Assignee: Nabarun Nag
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> +*Steps to reproduce the issue.*+
>  # start locator
>  # start server
>  # create region
>  # define index as "define index --name=index --region="Member.entrySet" --expression="value.getId" "
>  # create defined indexes
> This is will result in a failure causing no updates to the cluster config for the newly created indexes, even though the indexes are created. +_*So when a server is restarted , it won't recreate these indexes.*_+
> +*Cause of the problem:*+
> We try to extract the region name to update the cluster config from the index's "from clause".
> We end up getting <region_name>.entrySet . But there are no region named as such so no updates to the cluster config.
>  
> +*Solution*+ 
>  Use the fix for GEODE-2764 where we can extract the proper region name from the "from clause"
> *problematic code:*
> {code:java}
> RegionConfig region = config.findRegionConfiguration(index.getFromClause());{code}
> *fix:*
> {code:java}
> String regionPath = getValidRegionName(index.getFromClause(), config);
> RegionConfig regionConfig = config.findRegionConfiguration(regionPath);{code}
> +*Example:*+
> Below we can see an complete execution in gfsh which leads to this failure. Including the failure to update the config and inability of the server to recreate the index after being restarted.
> {noformat}
> _________________________ __
>  / _____/ ______/ ______/ /____/ /
>  / / __/ /___ /_____ / _____ / 
>  / /__/ / ____/ _____/ / / / / 
> /______/_/ /______/_/ /_/ 1.8.0-SNAPSHOT
> Monitor and Manage Apache Geode
> gfsh>start locator
> Starting a Geode Locator in /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/bin/untie-happy-can...
> ....
> Locator in /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/bin/untie-happy-can on 10.0.0.40[10334] as untie-happy-can is currently online.
> Process ID: 29310
> Uptime: 4 seconds
> Geode Version: 1.8.0-SNAPSHOT
> Java Version: 1.8.0_161
> Log File: /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/bin/untie-happy-can/untie-happy-can.log
> JVM Arguments: -Dgemfire.enable-cluster-configuration=true -Dgemfire.load-cluster-configuration-from-dir=false -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
> Class-Path: /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/lib/geode-core-1.8.0-SNAPSHOT.jar:/home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/lib/geode-dependencies.jar
> Successfully connected to: JMX Manager [host=10.0.0.40, port=1099]
> Cluster configuration service is up and running.
> gfsh>start server
> Starting a Geode Server in /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/bin/fix-vast-kilo...
> ...
> Server in /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/bin/fix-vast-kilo on 10.0.0.40[40404] as fix-vast-kilo is currently online.
> Process ID: 29498
> Uptime: 2 seconds
> Geode Version: 1.8.0-SNAPSHOT
> Java Version: 1.8.0_161
> Log File: /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/bin/fix-vast-kilo/fix-vast-kilo.log
> JVM Arguments: -Dgemfire.default.locators=10.0.0.40[10334] -Dgemfire.start-dev-rest-api=false -Dgemfire.use-cluster-configuration=true -XX:OnOutOfMemoryError=kill -KILL %p -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
> Class-Path: /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/lib/geode-core-1.8.0-SNAPSHOT.jar:/home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/lib/geode-dependencies.jar
> gfsh>create region --name=Member --type=PARTITION
>  Member | Status
> ------------- | -------------------------------------------
> fix-vast-kilo | Region "/Member" created on "fix-vast-kilo"
> gfsh>define index --name=memberPartyIdIndex --expression="value.getPartyId" --region="/Member.entrySet"
> Index successfully defined with following details
> Name : memberPartyIdIndex
> Expression : value.getPartyId
> RegionPath : /Member.entrySet
> gfsh>create defined indexes
>  Member | Status | Message
> --------------------------------------- | ------ | --------------------------------
> 10.0.0.40(fix-vast-kilo:29498)<v1>:1025 | OK | Created index memberPartyIdIndex
> failed to update cluster config for cluster. Reason: RegionConfig is null
> gfsh>list indexes
>  Member Name | Member ID | Region Path | Name | Type | Indexed Expression | From Clause | Valid Index
> ------------- | --------------------------------------- | ----------- | ------------------ | ----- | ------------------ | ---------------- | -----------
> fix-vast-kilo | 10.0.0.40(fix-vast-kilo:29498)<v1>:1025 | /Member | memberPartyIdIndex | RANGE | value.getPartyId | /Member.entrySet | true
> gfsh>stop server --name
> optional --name: Member name or ID of the Cache Server in the Geode cluster.; no default value
> gfsh>stop server --name=fix-vast-kilo
> Stopping Cache Server running in /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/bin/fix-vast-kilo on 10.0.0.40[40404] as fix-vast-kilo...
> Process ID: 29498
> Log File: /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/bin/fix-vast-kilo/fix-vast-kilo.log
> ...
> gfsh>start server --name
> optional --name: The member name to give this Cache Server in the Geode cluster.; no default value
> gfsh>start server --name
> optional --name: The member name to give this Cache Server in the Geode cluster.; no default value
> gfsh>start server --name=fix-vast-kilo
> Starting a Geode Server in /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/bin/fix-vast-kilo...
> ...
> Server in /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/bin/fix-vast-kilo on 10.0.0.40[40404] as fix-vast-kilo is currently online.
> Process ID: 29893
> Uptime: 2 seconds
> Geode Version: 1.8.0-SNAPSHOT
> Java Version: 1.8.0_161
> Log File: /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/bin/fix-vast-kilo/fix-vast-kilo.log
> JVM Arguments: -Dgemfire.default.locators=10.0.0.40[10334] -Dgemfire.start-dev-rest-api=false -Dgemfire.use-cluster-configuration=true -XX:OnOutOfMemoryError=kill -KILL %p -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
> Class-Path: /home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/lib/geode-core-1.8.0-SNAPSHOT.jar:/home/nabarun/Documents/codeWork/dev2/gemfire/open/geode-assembly/build/install/apache-geode/lib/geode-dependencies.jar
> gfsh>list region
> List of regions
> ---------------
> Member
> gfsh>list indexes
> No Indexes Found
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)