Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-14603 Über-JIRA: HDFS RBF stabilization phase II
  3. HDFS-15723

RBF: invokeConcurrent may run unexpected when enable standby read

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Patch Available
    • Major
    • Resolution: Unresolved
    • None
    • None
    • rbf
    • None

    Description

      My colleague report that the following code segment has wrong parameter passed when create RemoteLocation instance at RouterRpcClient#invokeConcurrent (Collection<T>, RemoteMethod, boolean, long, Class<R>).

            if (standby) {
              // Call the objectGetter to all NNs (including standby)
              for (final FederationNamenodeContext nn : namenodes) {
                String nnId = nn.getNamenodeId();
                final List<FederationNamenodeContext> nnList =
                    Collections.singletonList(nn);
                T nnLocation = location;
                if (location instanceof RemoteLocation) {
                  nnLocation = (T)new RemoteLocation(nsId, nnId, location.getDest()); <-- wrong parameter passed.
                }
                orderedLocations.add(nnLocation);
                callables.add(
                    () -> {
                      transferThreadLocalContext(originCall, originContext);
                      return invokeMethod(ugi, nnList, proto, m, paramList);
                    });
              }
            }
      

      Attachments

        1. HDFS-15723.001.patch
          1 kB
          Xiaoqiao He

        Activity

          People

            hexiaoqiao Xiaoqiao He
            hexiaoqiao Xiaoqiao He
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: