Sandor Molnar created KNOX-3206:
-----------------------------------
Summary: Add netty to Knox as dependency
Key: KNOX-3206
URL: https://issues.apache.org/jira/browse/KNOX-3206
Project: Apache Knox
Issue Type: Task
Components: Server
Affects Versions: 2.1.0
Reporter: Sandor Molnar
Assignee: Sandor Molnar
Fix For: 3.0.0
With a recent change - KNOX-3182 -, all io.netty dependencies have been
excluded from the final Knox deliverable. As a result, when Ranger
authorization is enabled in a topology, there are issue when auditing to SOLR
(using the Knox Ranger plugin) is failing with the following error message:
{code:java}
2025-09-04 14:08:07,167 ERROR provider.BaseAuditHandler
(BaseAuditHandler.java:logError(359)) - Error sending message to Solr
java.lang.NoClassDefFoundError: io/netty/channel/ChannelHandler
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_232]
at java.lang.Class.forName(Class.java:264) ~[?:1.8.0_232]
at
org.apache.zookeeper.ZooKeeper.getClientCnxnSocket(ZooKeeper.java:3094)
~[zookeeper.jar:3.8.1.7.3.2.0-516]
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:674)
~[zookeeper.jar:3.8.1.7.3.2.0-516]
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:828)
~[zookeeper.jar:3.8.1.7.3.2.0-516]
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:511)
~[zookeeper.jar:3.8.1.7.3.2.0-516]
at
org.apache.solr.common.cloud.SolrZooKeeper.<init>(SolrZooKeeper.java:50)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at
org.apache.solr.common.cloud.ZkClientConnectionStrategy.createSolrZooKeeper(ZkClientConnectionStrategy.java:110)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at
org.apache.solr.common.cloud.DefaultConnectionStrategy.connect(DefaultConnectionStrategy.java:38)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at
org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:172)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at
org.apache.solr.common.cloud.ZkStateReader.<init>(ZkStateReader.java:360)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at
org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider.getZkStateReader(ZkClientClusterStateProvider.java:196)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at
org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider.connect(ZkClientClusterStateProvider.java:181)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at
org.apache.solr.client.solrj.impl.BaseCloudSolrClient.connect(BaseCloudSolrClient.java:349)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at
org.apache.solr.client.solrj.impl.BaseCloudSolrClient.requestWithRetryOnStaleState(BaseCloudSolrClient.java:876)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at
org.apache.solr.client.solrj.impl.BaseCloudSolrClient.request(BaseCloudSolrClient.java:866)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at
org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:214)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:106)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:71)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:85)
~[solr-solrj.jar:8.11.2.7.3.2.0-516 7d0451842ce782b3c5a91c7770f00af2fa090b78 -
jenkins - 2025-09-03 08:34:28]
at
org.apache.ranger.audit.destination.SolrAuditDestination.lambda$addDocsToSolr$0(SolrAuditDestination.java:515)
~[ranger-plugins-audit-2.6.0.7.3.2.0-516.jar:2.6.0.7.3.2.0-516]
at java.security.AccessController.doPrivileged(Native Method)
~[?:1.8.0_232]
at
org.apache.ranger.audit.destination.SolrAuditDestination.lambda$addDocsToSolr$0(SolrAuditDestination.java:515)
~[ranger-plugins-audit-2.6.0.7.3.2.0-516.jar:2.6.0.7.3.2.0-516]
at java.security.AccessController.doPrivileged(Native Method)
~[?:1.8.0_232]
at javax.security.auth.Subject.doAs(Subject.java:422) ~[?:1.8.0_232]
at
org.apache.ranger.audit.utils.AbstractKerberosUser.doAs(AbstractKerberosUser.java:147)
~[ranger-plugins-audit-2.6.0.7.3.2.0-516.jar:2.6.0.7.3.2.0-516]
at
org.apache.ranger.audit.utils.KerberosAction.execute(KerberosAction.java:71)
~[ranger-plugins-audit-2.6.0.7.3.2.0-516.jar:2.6.0.7.3.2.0-516]
at
org.apache.ranger.audit.destination.SolrAuditDestination.addDocsToSolr(SolrAuditDestination.java:521)
~[ranger-plugins-audit-2.6.0.7.3.2.0-516.jar:2.6.0.7.3.2.0-516]
at
org.apache.ranger.audit.destination.SolrAuditDestination.log(SolrAuditDestination.java:167)
[ranger-plugins-audit-2.6.0.7.3.2.0-516.jar:2.6.0.7.3.2.0-516]
at
org.apache.ranger.audit.queue.AuditBatchQueue.runLogAudit(AuditBatchQueue.java:324)
[ranger-plugins-audit-2.6.0.7.3.2.0-516.jar:2.6.0.7.3.2.0-516]
at
org.apache.ranger.audit.queue.AuditBatchQueue.run(AuditBatchQueue.java:233)
[ranger-plugins-audit-2.6.0.7.3.2.0-516.jar:2.6.0.7.3.2.0-516]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232]
Caused by: java.lang.ClassNotFoundException: io.netty.channel.ChannelHandler
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
~[?:1.8.0_232]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_232]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_232]
... 30 more {code}
Since Knox already references the {{io.netty}} dependency in its pom.xml
(current version is {{{}4.1.123.Final{}}}), it's a relatively easy task to add
the following Netty components in Knox's dep folder:
* {{netty-common}} → shared utilities (base for all)
* {{netty-buffer}} → ByteBuf implementation
* {{netty-transport}} → Channel, EventLoop, and socket APIs
Apart from including these 3 commonly used Netty modules, we should also
upgrade to {{4.1.127.Final}} to remove all CVEs associated with the currently
used version.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)