You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/12/13 21:33:00 UTC

[jira] [Work logged] (HIVE-26843) Filter all dependency module descriptors from shaded jars.

     [ https://issues.apache.org/jira/browse/HIVE-26843?focusedWorklogId=833205&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-833205 ]

ASF GitHub Bot logged work on HIVE-26843:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 13/Dec/22 21:32
            Start Date: 13/Dec/22 21:32
    Worklog Time Spent: 10m 
      Work Description: cnauroth opened a new pull request, #3853:
URL: https://github.com/apache/hive/pull/3853

   ### What changes were proposed in this pull request?
   
   Filter all dependency module descriptors from shaded jars.
   
   ### Why are the changes needed?
   
   [HIVE-26813](https://issues.apache.org/jira/browse/HIVE-26813) upgraded HikariCP from 2.6.1 to 4.0.3. During review of PR #3839, we discussed the need to omit its module descriptor (module-info.class) from shaded jars. However, it turns out there are also existing instances of module-info.class files from other dependencies like Jackson and Log4J leaking into the shaded jars. We can update the shading filters with wildcards to exclude these and also make it future-proof against any other dependencies that start including a module descriptor.
   
   ### Does this PR introduce _any_ user-facing change?
   
   Shaded jars will stop including module-info.class files from Jackson, Log4J and any other dependencies. As discussed in the prior PR, it's incorrect for Hive to include these files:
   
   https://github.com/apache/hive/pull/3839#discussion_r1042642131
   
   ### How was this patch tested?
   
   I ran a build locally:
   
   ```
   mvn -Piceberg clean package -DskipTests
   ```
   
   Then, I ran the following to iterate through all built jars and check for the presence of module-info.class. It didn't find anything. Prior to this patch, the beeline and JDBC jars contained module-info.class files from Jackson and Log4J.
   
   ```
   for x in $(find . -name '*.jar'); do echo $x && jar tf $x | grep 'module-info'; done
   ```
   




Issue Time Tracking
-------------------

            Worklog Id:     (was: 833205)
    Remaining Estimate: 0h
            Time Spent: 10m

> Filter all dependency module descriptors from shaded jars.
> ----------------------------------------------------------
>
>                 Key: HIVE-26843
>                 URL: https://issues.apache.org/jira/browse/HIVE-26843
>             Project: Hive
>          Issue Type: Improvement
>          Components: Beeline, Hive, JDBC
>            Reporter: Chris Nauroth
>            Assignee: Chris Nauroth
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> HIVE-26813 upgraded HikariCP from 2.6.1 to 4.0.3. During review of [PR#3839|https://github.com/apache/hive/pull/3839], we discussed the need to omit its module descriptor (module-info.class) from shaded jars. However, it turns out there are also existing instances of module-info.class files from other dependencies like Jackson and Log4J leaking into the shaded jars. We can update the shading filters with wildcards to exclude these and also make it future-proof against any other dependencies that start including a module descriptor.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)