While building some demos for Kafka Support in NiFi I noticed the Publish
Kafka Processor is eating errors related to Kerberos and never returning the
error to NiFi making it never stop. Not sure what my actual error is but I'm
assuming we would actually want to fail on this error instead of retrying
forever in the background. This is on the HDF 3.1.2 release of NiFi 1.5 so I'm
not sure if it's been fixed in later releases or not.
2018-09-25 07:56:02,473 INFO [kafka-producer-network-thread | producer-1]
o.a.k.common.network.SaslChannelBuilder Failed to create channel due to
org.apache.kafka.common.errors.SaslAuthenticationException: Failed to configure
SaslClientAuthenticator
Caused by: org.apache.kafka.common.errors.SaslAuthenticationException: Failed
to create SaslClient with mechanism GSSAPI
Caused by: javax.security.sasl.SaslException: Failure to initialize security
context
at
com.sun.security.sasl.gsskerb.GssKrb5Client.<init>(GssKrb5Client.java:149)
at
com.sun.security.sasl.gsskerb.FactoryImpl.createSaslClient(FactoryImpl.java:63)
at javax.security.sasl.Sasl.createSaslClient(Sasl.java:384)
at
org.apache.kafka.common.security.authenticator.SaslClientAuthenticator$1.run(SaslClientAuthenticator.java:152)
at
org.apache.kafka.common.security.authenticator.SaslClientAuthenticator$1.run(SaslClientAuthenticator.java:147)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at
org.apache.kafka.common.security.authenticator.SaslClientAuthenticator.createSaslClient(SaslClientAuthenticator.java:147)
at
org.apache.kafka.common.security.authenticator.SaslClientAuthenticator.<init>(SaslClientAuthenticator.java:139)
at
org.apache.kafka.common.network.SaslChannelBuilder.buildClientAuthenticator(SaslChannelBuilder.java:162)
at
org.apache.kafka.common.network.SaslChannelBuilder.buildChannel(SaslChannelBuilder.java:126)
at
org.apache.kafka.common.network.Selector.buildChannel(Selector.java:260)
at org.apache.kafka.common.network.Selector.connect(Selector.java:223)
at
org.apache.kafka.clients.NetworkClient.initiateConnect(NetworkClient.java:793)
at
org.apache.kafka.clients.NetworkClient.access$700(NetworkClient.java:62)
at
org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:944)
at
org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:848)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:458)
at
org.apache.kafka.clients.NetworkClientUtils.isReady(NetworkClientUtils.java:39)
at
org.apache.kafka.clients.NetworkClientUtils.awaitReady(NetworkClientUtils.java:62)
at
org.apache.kafka.clients.producer.internals.Sender.awaitLeastLoadedNodeReady(Sender.java:415)
at
org.apache.kafka.clients.producer.internals.Sender.maybeSendTransactionalRequest(Sender.java:347)
at
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:214)
at
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:163)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.ietf.jgss.GSSException: Invalid name provided (Mechanism level:
Illegal character in realm name; one of: '/', ':', '' (600))
at
sun.security.jgss.krb5.Krb5NameElement.getInstance(Krb5NameElement.java:129)
at
sun.security.jgss.krb5.Krb5MechFactory.getNameElement(Krb5MechFactory.java:95)
at
sun.security.jgss.GSSManagerImpl.getNameElement(GSSManagerImpl.java:203)
at sun.security.jgss.GSSNameImpl.getElement(GSSNameImpl.java:477)
at sun.security.jgss.GSSNameImpl.init(GSSNameImpl.java:201)
at sun.security.jgss.GSSNameImpl.<init>(GSSNameImpl.java:170)
at sun.security.jgss.GSSManagerImpl.createName(GSSManagerImpl.java:138)
at
com.sun.security.sasl.gsskerb.GssKrb5Client.<init>(GssKrb5Client.java:107)
... 24 common frames omitted
Thanks
Shawn Weeks