Uploaded image for project: 'AMQ Streams'
  1. AMQ Streams
  2. ENTMQST-4784

[QE] MiniKdc is not working on Java 17 in Kafka systemtest

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Done
    • Icon: Undefined Undefined
    • 2.5.0.GA
    • None
    • None
    • None

      Kafka system tests with Java version 17 are failing on this issue:

      TimeoutError("MiniKdc didn't finish startup",)
      Traceback (most recent call last):
        File "/usr/local/lib/python3.6/site-packages/ducktape/tests/runner_client.py", line 186, in _do_run
          data = self.run_test()
        File "/usr/local/lib/python3.6/site-packages/ducktape/tests/runner_client.py", line 246, in run_test
          return self.test_context.function(self.test)
        File "/usr/local/lib/python3.6/site-packages/ducktape/mark/_mark.py", line 433, in wrapper
          return functools.partial(f, *args, **kwargs)(*w_args, **w_kwargs)
        File "/opt/kafka-dev/tests/kafkatest/sanity_checks/test_verifiable_producer.py", line 74, in test_simple_run
          self.kafka.start()
        File "/opt/kafka-dev/tests/kafkatest/services/kafka/kafka.py", line 635, in start
          self.start_minikdc_if_necessary(add_principals)
        File "/opt/kafka-dev/tests/kafkatest/services/kafka/kafka.py", line 596, in start_minikdc_if_necessary
          self.minikdc.start()
        File "/usr/local/lib/python3.6/site-packages/ducktape/services/service.py", line 265, in start
          self.start_node(node, **kwargs)
        File "/opt/kafka-dev/tests/kafkatest/services/security/minikdc.py", line 114, in start_node
          monitor.wait_until("MiniKdc Running", timeout_sec=60, backoff_sec=1, err_msg="MiniKdc didn't finish startup")
        File "/usr/local/lib/python3.6/site-packages/ducktape/cluster/remoteaccount.py", line 754, in wait_until
          allow_fail=True) == 0, **kwargs)
        File "/usr/local/lib/python3.6/site-packages/ducktape/utils/util.py", line 58, in wait_until
          raise TimeoutError(err_msg() if callable(err_msg) else err_msg) from last_exception
      ducktape.errors.TimeoutError: MiniKdc didn't finish startup
      

      Specifically, when one runs the test cases and look at the logs of the MiniKdc:

      Exception in thread "main" java.lang.IllegalAccessException: class kafka.security.minikdc.MiniKdc cannot access class sun.security.krb5.Config (in module java.security.jgss) because module java.security.jgss does not export sun.security.krb5 to unnamed module @24959ca4
          at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392)
          at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674)
          at java.base/java.lang.reflect.Method.invoke(Method.java:560)
          at kafka.security.minikdc.MiniKdc.refreshJvmKerberosConfig(MiniKdc.scala:268)
          at kafka.security.minikdc.MiniKdc.initJvmKerberosConfig(MiniKdc.scala:245)
          at kafka.security.minikdc.MiniKdc.start(MiniKdc.scala:123)
          at kafka.security.minikdc.MiniKdc$.start(MiniKdc.scala:375)
          at kafka.security.minikdc.MiniKdc$.main(MiniKdc.scala:366)
          at kafka.security.minikdc.MiniKdc.main(MiniKdc.scala)
      

      This error is caused by the fact that sun.security module is no longer supported in Java 16 and higher. Related to the [1].

      We should solve this issue as soon as possible.

      [1] - https://openjdk.org/jeps/396

              morsak Maros Orsak
              morsak Maros Orsak
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: