[hadoop]MAPREDUCE-5117 Report

1. Symptom

Early termination

With security enabled HS delegation token renewer fails

1.1 Severity

Blocker

1.2 Was there exception thrown?

Yes

java.lang.IllegalArgumentException: not a proxy instance

1.2.1 Were there multiple exceptions?

Yes

1.3 Scope of the failure

Users who enabled security

2. How to reproduce this failure

2.0 Version

2.0.4-alpha

2.1 Configuration

1 HS

2.2 Reproduction procedure

1. Enable security (config change)

2. Client request a HS token (feature start)

2.2.1 Timing order

Yes

2.2.2 Events order externally controllable?

Yes

2.3 Can the logs tell how to reproduce the failure?

Yes

2.4 How many machines needed?

2 (HS node+MRClient node)

3. Diagnosis procedure

3.1 Detailed Symptom (where you start)

MRClient throws exception when it is requesting a HS token.

3.2 Backward inference

The wrong implementation of MRClientProtocol makes the function call stopHistoryProxy

failed and throws exception.

4. Root cause

MRClientProtocol is not correctly implemented. MR will not regard it as a proxy in the JobClient.

4.1 Category:

The error handling is wrong:

MRClientProtocol histProxy = instantiateHistoryProxy(conf,
       SecurityUtil.getTokenServiceAddr(token));
   
try {
     RenewDelegationTokenRequest request = Records
         .newRecord(RenewDelegationTokenRequest.class);
     request.setDelegationToken(dToken);
     
return histProxy.renewDelegationToken(request).getNextExpirationTime();
   }
finally {
     stopHistoryProxy(histProxy);
   }

  --- the finally clause, once triggered, will expose the failure...