Alexey Kuznetsov created IGNITE-8777:
----------------------------------------

             Summary: REST: metadata command failed on cluster of size 1.
                 Key: IGNITE-8777
                 URL: https://issues.apache.org/jira/browse/IGNITE-8777
             Project: Ignite
          Issue Type: Improvement
          Components: rest
    Affects Versions: 2.5
            Reporter: Alexey Kuznetsov


Start *only one *node.
Execute REST command: 
http://localhost:8080/ignite?cmd=getorcreate&cacheName=myNewPartionedCache&backups=2
Cache will be created.

Execute http://localhost:8080/ignite?cmd=metadata&cacheName=myNewPartionedCache
Error will be returned:  {“successStatus”:1,“error”:“Failed to handle request: 
[req=CACHE_METADATA, err=Failed to request meta data. myNewPartionedCache is 
not found]“,”response”:null,“sessionToken”:null}

After some debug, I see in code GridCacheCommandHandler.MetadataTask#map:
{code}
...
for (int i = 1; i < subgrid.size(); i++) {
 ....
}

if (map.isEmpty())
                    throw new IgniteException("Failed to request meta data. " + 
cacheName + " is not found");
...
{code}

So, in case of cluster with only one node this code will throw exception.

I guess the fix should be - just replace "int i = 1" with "int i = 0".



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to