AngersZhuuuu commented on issue #26594: [SPARK-29957][TEST] Bump MiniKdc to 
3.2.0
URL: https://github.com/apache/spark/pull/26594#issuecomment-557878659
 
 
   @dongjoon-hyun 
   @wangyum fix this in 
https://github.com/apache/spark/pull/26533/commits/50a11ecc445bc0398b86193efc2ade7e22498a34
   
   And i checked the code , in `hadoop-2.7 MiniKdc`, after start all minikdc 
server, it will refresh Config which is related to kerberos.
   
https://github.com/apache/hadoop/blob/b165c4fe8a74265c792ce23f546c64604acf0e41/hadoop-common-project/hadoop-minikdc/src/main/java/org/apache/hadoop/minikdc/MiniKdc.java#L474-L480
   
   But in `Hadoop-3.2.0 's MiniKDC`, when start minikdc, it won't call 
`refresh()` method. 
   Since our all UT are tested in one process. So other UT about kerberos 
impact Kafka's UT about  Kerberos.
   
   We have two way to fix this.
   1. Add config to refresh Krb5Conf in jaas config `refreshKrb5Config`
   2. Call refresh method in `KafkaTestUtils.setUpMiniKdc()` like 
   ```
       // refresh the config
       val classRef: Class[_] = if 
(System.getProperty("java.vendor").contains("IBM")) {
         Utils.classForName("com.ibm.security.krb5.internal.Config")
       } else {
         Utils.classForName("sun.security.krb5.Config")
       }
       val refreshMethod = classRef.getMethod("refresh", Array.empty[Class[_]]: 
_*)
       refreshMethod.invoke(classRef, Array.empty[AnyRef]: _*)
   ```
   
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to