Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-5321

Overseer.updateState tries to use router name from message but none is sent

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 4.5
    • Fix Version/s: 4.6, 6.0
    • Component/s: SolrCloud
    • Labels:
      None

      Description

      Overseer.updateSlice method has the following code:

      String router = message.getStr(OverseerCollectionProcessor.ROUTER,DocRouter.DEFAULT_NAME);
              List<String> shardNames  = new ArrayList<String>();
      
              //collection does not yet exist, create placeholders if num shards is specified
              boolean collectionExists = state.getCollections().contains(collection);
              if (!collectionExists && numShards!=null) {
                if(ImplicitDocRouter.NAME.equals(router)){
                  getShardNames(shardNames, message.getStr("shards",null));
                  numShards = shardNames.size();
                }else {
                  getShardNames(numShards, shardNames);
                }
                state = createCollection(state, collection, shardNames, message);
              }
      

      Here it tries to read the router name from the message. Even if we ignore that the key to lookup the router is wrong here, the router name is never sent in a state message.

      Considering that we don't even support creating a collection with "implicit" router from command line, we should stop expecting the parameter.

        Attachments

          Activity

            People

            • Assignee:
              shalinmangar Shalin Shekhar Mangar
              Reporter:
              shalinmangar Shalin Shekhar Mangar
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: