I have the PR up for the test changes (for master) in HBASE-28906.

You can see its output at the slightly hacked up test job + PR that I used
for development:
https://ci-hbase.apache.org/job/Test%20script%20for%20nightly%20script/job/HBASE-28846/

Also, these tests WILL fail, until HBASE-28721
<https://github.com/apache/hbase/pull/6270> is fixed.
I have a PR up for HBASE-28721 <https://github.com/apache/hbase/pull/6270>
 at https://github.com/apache/hbase/pull/6269
( and https://github.com/apache/hbase/pull/6270 for branch-2)



On Fri, Sep 27, 2024 at 7:34 PM Istvan Toth <st...@cloudera.com> wrote:

> I was too hasty to reply. You did not suggest dropping support for older
> releases in the released branches.
>
> Still, I would keep Hadoop 3.3.x support at least on branch-2.
> We effectively need to support  Hadoop 3.3.x for 2.5 and 2.6 anyway, so
> supporting 3.3 on more branches only costs us some machine time for
> running the nightly tests.
>
> On Fri, Sep 27, 2024 at 7:26 PM Istvan Toth <st...@cloudera.com> wrote:
>
>> I am not sure that we should drop support for all releases with CVEs.
>> That could easily lead to not having any CVE-less Hadoop releases to
>> support for some periods of time.
>>
>> Once I manage the proper backwards test matrix working, we could support
>> more releases in parallel.
>>
>> I would suggest deciding on a set of Hadoop releases when we release a
>> new minor version,
>> and trying to keep support for those for the life of that HBase minor
>> version, regardless of any CVEs. (We can of course add support for newer
>> Hadoop versions)
>>
>> We do something similar in Phoenix WRT HBase versions.
>>
>> If the default is the newest Hadoop release, then our binaries will be as
>> CVE-free as possible, while not forcing existing users to upgrade Hadoop
>> before they upgrade HBase.
>>
>> Istvan
>>
>>
>>
>>
>>
>>
>> On Fri, Sep 27, 2024 at 2:07 PM 张铎(Duo Zhang) <palomino...@gmail.com>
>> wrote:
>>
>>> There is a CVE for hadoop version less than 3.4.0...
>>>
>>> https://nvd.nist.gov/vuln/detail/CVE-2024-23454
>>>
>>> Maybe we can only support hadoop 3.4.0 on master, branch-3 and
>>> branch-2(for hadoop 3) now?
>>>
>>> Thanks.
>>>
>>> Istvan Toth <st...@cloudera.com.invalid> 于2024年9月27日周五 16:16写道:
>>> >
>>> > I'm still working on this, but I struggle a lot with the Jenkinsfile,
>>> and
>>> > some Yetus bugs also make testing hard.
>>> >
>>> > On Thu, Sep 19, 2024 at 9:25 AM Istvan Toth <st...@cloudera.com>
>>> wrote:
>>> >
>>> > > Master is still going to  support 3.3.5, so master still needs to use
>>> > > reflection as well.
>>> > >
>>> > > The point of these changes is allowing Hbase to default to a newer
>>> Hadoop
>>> > > version, without dropping support for older releases.
>>> > >
>>> > > Dropping support for 3.3.5 would be a different discussion, and I
>>> > > personally feel that it would be too early.
>>> > >
>>> > > Istvan
>>> > >
>>> > > On Wed, Sep 18, 2024 at 7:46 PM Wei-Chiu Chuang
>>> > > <weic...@cloudera.com.invalid> wrote:
>>> > >
>>> > >> So....I was wondering now that we'll be using Hadoop 3.4.0, if it's
>>> okay
>>> > >> to
>>> > >> port HBASE-27769 <https://issues.apache.org/jira/browse/HBASE-27769>
>>> to
>>> > >> the
>>> > >> master branch.
>>> > >> This will allow Ozone to be used by HBase. We are preparing Apache
>>> Ozone
>>> > >> 2.0 release and having a usable Apache HBase to work with is
>>> important. It
>>> > >> is working now with Cloudera's HBase work but I'd like to open up
>>> this
>>> > >> opportunity to the community as well.
>>> > >>
>>> > >> We can start with master, and then I can find a solution (something
>>> that
>>> > >> involves the use of reflection) and backport to lower branches.
>>> > >> Ultimately,
>>> > >> release a version of HBase with this feature.
>>> > >>
>>> > >> cc: Stephen.
>>> > >>
>>> > >> On Wed, Sep 18, 2024 at 12:08 AM Istvan Toth
>>> <st...@cloudera.com.invalid>
>>> > >> wrote:
>>> > >>
>>> > >> > Created a new ticket, as the old one was for 3.3.6 but we've
>>> agreed on
>>> > >> > 3.4.0, and expanded the scope.
>>> > >> >
>>> > >> > https://issues.apache.org/jira/browse/HBASE-28846
>>> > >> >
>>> > >> > On Tue, Sep 17, 2024 at 3:47 PM 张铎(Duo Zhang) <
>>> palomino...@gmail.com>
>>> > >> > wrote:
>>> > >> >
>>> > >> > > I think we could start the work from branch-2.6? Branch-2.5
>>> should
>>> > >> > > reach its EOL soon, after 2.6.x is stable enough.
>>> > >> > >
>>> > >> > > In this way we only need to deal with 3.3.x and 3.4.x.
>>> > >> > >
>>> > >> > > Istvan Toth <st...@cloudera.com.invalid> 于2024年9月17日周二 16:56写道:
>>> > >> > > >
>>> > >> > > > Thanks for the assessment, Wei-Chiu.
>>> > >> > > >
>>> > >> > > > Transitive dependency updates in Hadoop are normal (desired
>>> even),
>>> > >> > that's
>>> > >> > > > something that HBase needs to manage.
>>> > >> > > >
>>> > >> > > > As for the test:
>>> > >> > > >
>>> > >> > > > - Duo's suggestion is to extend the Hadoop compatibility
>>> tests, and
>>> > >> run
>>> > >> > > > them with multiple Hadoop 3 releases.
>>> > >> > > > Looking at the nightly results, those tests are fast, it
>>> takes 14
>>> > >> > minutes
>>> > >> > > > for Hadoop2 and Hadoop3.
>>> > >> > > > I've peeked into hbase_nightly_pseudo-distributed-test.sh ,
>>> the
>>> > >> tests
>>> > >> > > there
>>> > >> > > > are indeed quite minimal,
>>> > >> > > > more of a smoke test, and seem to be targeted to check the
>>> shaded
>>> > >> > > artifacts.
>>> > >> > > >
>>> > >> > > > - Nick's suggestion is to run DevTests and set the Hadoop
>>> version.
>>> > >> > > > The runAllTests step in the current nightly takes 8+ hours.
>>> > >> > > > On my 6+8 core laptop, my last attempt failed after 90
>>> minutes, so
>>> > >> > let's
>>> > >> > > > say the full run takes 120 minutes.
>>> > >> > > >
>>> > >> > > > I don't know how many free resources HBase has, but if we can
>>> > >> utilize
>>> > >> > > > another VM per branch we could run the dev tests with four
>>> HBase
>>> > >> > > versions,
>>> > >> > > > and still finish about the same time as the full test job
>>> does.
>>> > >> > > >
>>> > >> > > > We don't need to test with the default version, as we already
>>> run
>>> > >> the
>>> > >> > > full
>>> > >> > > > suite for that one.
>>> > >> > > >
>>> > >> > > > Assuming that we officially support 3.4.0 on all active
>>> branches,
>>> > >> and
>>> > >> > > also
>>> > >> > > > default to 3.4.0 on all branches, and trusting Hadoop's
>>> > >> compatibility
>>> > >> > so
>>> > >> > > > that we don't need to test interim
>>> > >> > > > patch releases within a minor version, we could go with these
>>> > >> versions:
>>> > >> > > >
>>> > >> > > > branch-2.5 : 3.2.3, 3.2.4, 3.3.2, 3.3.6
>>> > >> > > > branch-2.6 : 3.3.5, 3.3.6
>>> > >> > > > branch-3: 3.3.5, 3.3.6
>>> > >> > > > branch-4: 3.3.5, 3.3.6
>>> > >> > > >
>>> > >> > > > If we trust Hadoop not to break compatibility in patch
>>> releases,  we
>>> > >> > > could
>>> > >> > > > reduce this to only the oldest patch releases:
>>> > >> > > >
>>> > >> > > > branch-2.5 : 3.2.3,  3.3.2
>>> > >> > > > branch-2.6 : 3.3.5
>>> > >> > > > branch-3: 3.3.5
>>> > >> > > > branch-4: 3.3.5
>>> > >> > > >
>>> > >> > > > or if we trust it not break compatibility in specific minor
>>> > >> versions,
>>> > >> > we
>>> > >> > > > could further reduce it to just the oldest supported release:
>>> > >> > > >
>>> > >> > > > branch-2.5 : 3.2.3
>>> > >> > > > branch-2.6 : 3.3.5
>>> > >> > > > branch-3: 3.3.5
>>> > >> > > > branch-4: 3.3.5
>>> > >> > > >
>>> > >> > > > Of course running every devTest is an overkill, as the vast
>>> > >> majority of
>>> > >> > > the
>>> > >> > > > tests use the same set of Hadoop APIs and features, and we'd
>>> only
>>> > >> > really
>>> > >> > > > need to run the tests that cover that feature set.
>>> > >> > > > Figuring out a subset of tests that exercise the full Hadoop
>>> API
>>> > >> (that
>>> > >> > we
>>> > >> > > > use) is a hard and error prone task, so if we have the
>>> resources, we
>>> > >> > can
>>> > >> > > > just brute force it with devTests.
>>> > >> > > >
>>> > >> > > > As a base for further discussion:
>>> > >> > > >
>>> > >> > > > Let's take the first (first and last supported patch level
>>> for each
>>> > >> > minor
>>> > >> > > > release) set of versions,
>>> > >> > > > and run both the pseudistributed tests and the devTests on
>>> them.
>>> > >> > > >
>>> > >> > > > Does that sound good ? Do we have the resources for that ? Do
>>> we
>>> > >> have a
>>> > >> > > > better idea ?
>>> > >> > > >
>>> > >> > > > Istvan
>>> > >> > > >
>>> > >> > > > On Mon, Sep 16, 2024 at 7:20 PM Wei-Chiu Chuang <
>>> weic...@apache.org
>>> > >> >
>>> > >> > > wrote:
>>> > >> > > >
>>> > >> > > > > I strive to meet that stated compatibility goal when I
>>> release
>>> > >> > Hadoop.
>>> > >> > > > > But we don't have a rigorous compatibility/upgrade test in
>>> Hadoop
>>> > >> so
>>> > >> > > YMMV
>>> > >> > > > > (we now have in Ozone!)
>>> > >> > > > >
>>> > >> > > > > There are so many gotchas that it really depends on the RM
>>> to do
>>> > >> the
>>> > >> > > > > hardwork, checking protobuf definitions, running API compat
>>> > >> report,
>>> > >> > > > > compiling against downstream applications.
>>> > >> > > > > The other thing is thirdparty dependency update. Whenever I
>>> bump
>>> > >> > Netty
>>> > >> > > or
>>> > >> > > > > Jetty version, new transitive dependencies slip in as part
>>> of the
>>> > >> > > update,
>>> > >> > > > > which sometimes break HBase because of the dependency check
>>> in
>>> > >> > shading.
>>> > >> > > > >
>>> > >> > > > > On Mon, Sep 16, 2024 at 4:48 AM Istvan Toth
>>> > >> > <st...@cloudera.com.invalid
>>> > >> > > >
>>> > >> > > > > wrote:
>>> > >> > > > >
>>> > >> > > > > > On Wed, Sep 11, 2024 at 4:30 PM 张铎(Duo Zhang) <
>>> > >> > palomino...@gmail.com
>>> > >> > > >
>>> > >> > > > > > wrote:
>>> > >> > > > > >
>>> > >> > > > > > > There is a problem that, usually, you can use an old
>>> hadoop
>>> > >> > client
>>> > >> > > to
>>> > >> > > > > > > communicate with a new hadoop server, but not vice
>>> versa.
>>> > >> > > > > > >
>>> > >> > > > > >
>>> > >> > > > > > Do we have examples of that ?
>>> > >> > > > > >
>>> > >> > > > > >
>>> > >> > > > > >
>>> > >> > > > >
>>> > >> > >
>>> > >> >
>>> > >>
>>> https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/Compatibility.html
>>> > >> > > > > > specifically states otherwise:
>>> > >> > > > > >
>>> > >> > > > > > In addition to the limitations imposed by being Stable
>>> > >> > > > > > <
>>> > >> > > > > >
>>> > >> > > > >
>>> > >> > >
>>> > >> >
>>> > >>
>>> https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/InterfaceClassification.html#Stable
>>> > >> > > > > > >,
>>> > >> > > > > > Hadoop’s wire protocols MUST also be forward compatible
>>> across
>>> > >> > minor
>>> > >> > > > > > releases within a major version according to the
>>> following:
>>> > >> > > > > >
>>> > >> > > > > >    - Client-Server compatibility MUST be maintained so as
>>> to
>>> > >> allow
>>> > >> > > users
>>> > >> > > > > to
>>> > >> > > > > >    continue using older clients even after upgrading the
>>> server
>>> > >> > > (cluster)
>>> > >> > > > > > to a
>>> > >> > > > > >    later version (or vice versa). For example, a Hadoop
>>> 2.1.0
>>> > >> > client
>>> > >> > > > > > talking
>>> > >> > > > > >    to a Hadoop 2.3.0 cluster.
>>> > >> > > > > >    - Client-Server compatibility MUST be maintained so as
>>> to
>>> > >> allow
>>> > >> > > users
>>> > >> > > > > to
>>> > >> > > > > >    upgrade the client before upgrading the server
>>> (cluster). For
>>> > >> > > > > example, a
>>> > >> > > > > >    Hadoop 2.4.0 client talking to a Hadoop 2.3.0 cluster.
>>> This
>>> > >> > allows
>>> > >> > > > > >    deployment of client-side bug fixes ahead of full
>>> cluster
>>> > >> > > upgrades.
>>> > >> > > > > Note
>>> > >> > > > > >    that new cluster features invoked by new client APIs
>>> or shell
>>> > >> > > commands
>>> > >> > > > > > will
>>> > >> > > > > >    not be usable. YARN applications that attempt to use
>>> new APIs
>>> > >> > > > > (including
>>> > >> > > > > >    new fields in data structures) that have not yet been
>>> > >> deployed
>>> > >> > to
>>> > >> > > the
>>> > >> > > > > >    cluster can expect link exceptions.
>>> > >> > > > > >    - Client-Server compatibility MUST be maintained so as
>>> to
>>> > >> allow
>>> > >> > > > > >    upgrading individual components without upgrading
>>> others. For
>>> > >> > > example,
>>> > >> > > > > >    upgrade HDFS from version 2.1.0 to 2.2.0 without
>>> upgrading
>>> > >> > > MapReduce.
>>> > >> > > > > >    - Server-Server compatibility MUST be maintained so as
>>> to
>>> > >> allow
>>> > >> > > mixed
>>> > >> > > > > >    versions within an active cluster so the cluster may be
>>> > >> upgraded
>>> > >> > > > > without
>>> > >> > > > > >    downtime in a rolling fashion.
>>> > >> > > > > >
>>> > >> > > > > > Admittedly, I don't have a lot of experience with
>>> mismatched
>>> > >> Hadoop
>>> > >> > > > > > versions, but my proposal should be covered by the second
>>> > >> clause.
>>> > >> > > > > >
>>> > >> > > > > > Usage of newer APIs should be caught when compiling with
>>> older
>>> > >> > Hadoop
>>> > >> > > > > > versions.
>>> > >> > > > > > The only risk I can see is when we use a new feature
>>> which was
>>> > >> > added
>>> > >> > > > > > without changing the API signature (such as adding a new
>>> > >> constant
>>> > >> > > value
>>> > >> > > > > for
>>> > >> > > > > > some new behaviour)
>>> > >> > > > > >
>>> > >> > > > > >
>>> > >> > > > > > > When deploying HBase, HBase itself acts as a client of
>>> hadoop,
>>> > >> > > that's
>>> > >> > > > > > > why we always stay on the oldest support hadoop version.
>>> > >> > > > > > >
>>> > >> > > > > > >
>>> > >> > > > > > Not true for 2.6 , which according to the docs supports
>>> Hadoop
>>> > >> 3.2,
>>> > >> > > but
>>> > >> > > > > > defaults to Hadoop 3.3
>>> > >> > > > > >
>>> > >> > > > > >
>>> > >> > > > > > > For me, technically I think bumping to the newest patch
>>> > >> release
>>> > >> > of
>>> > >> > > a
>>> > >> > > > > > > minor release should be fine, which is the proposal 1.
>>> > >> > > > > > >
>>> > >> > > > > > > But the current hadoopcheck is not enough, since it can
>>> only
>>> > >> > ensure
>>> > >> > > > > > > that there is no complation error.
>>> > >> > > > > > > Maybe we should also run some simple dev tests in the
>>> > >> hadoopcheck
>>> > >> > > > > > > stage, and in integration tests, we should try to build
>>> with
>>> > >> all
>>> > >> > > the
>>> > >> > > > > > > support hadoop version and run the basic read write
>>> tests.
>>> > >> > > > > >
>>> > >> > > > > >
>>> > >> > > > > > Do we need to test all versions ?
>>> > >> > > > > > If We test with say, 3.3.0 and 3.3.6 , do we need to test
>>> with
>>> > >> > > 3.3.[1-5]
>>> > >> > > > > ?
>>> > >> > > > > > Or if we test with 3.2.5  and 3.3.6, do we need to test
>>> with
>>> > >> any of
>>> > >> > > the
>>> > >> > > > > > interim versions ?
>>> > >> > > > > >
>>> > >> > > > > > Basically, how much do we trust Hadoop to keep to its
>>> > >> compatibility
>>> > >> > > > > rules ?
>>> > >> > > > > >
>>> > >> > > > > > Running a limited number of tests should not be a problem.
>>> > >> > > > > > Should we add a new test category, so that they can be
>>> easily
>>> > >> > started
>>> > >> > > > > from
>>> > >> > > > > > Maven ?
>>> > >> > > > > >
>>> > >> > > > > > Can you suggest some tests that we should run for the
>>> > >> compatibility
>>> > >> > > > > check ?
>>> > >> > > > > >
>>> > >> > > > > >
>>> > >> > > > > > > Thanks.
>>> > >> > > > > > >
>>> > >> > > > > > > Istvan Toth <st...@cloudera.com.invalid> 于2024年9月11日周三
>>> > >> 21:05写道:
>>> > >> > > > > > > >
>>> > >> > > > > > > > Let me summarize my take of the discussion so far:
>>> > >> > > > > > > >
>>> > >> > > > > > > > There are two aspects to the HBase version we build
>>> with:
>>> > >> > > > > > > > 1. Source code quality/compatibility
>>> > >> > > > > > > > 2. Security and usability of the public binary
>>> assemblies
>>> > >> and
>>> > >> > > > > (shaded)
>>> > >> > > > > > > > hbase maven artifacts.
>>> > >> > > > > > > >
>>> > >> > > > > > > > 1. Source code quality/compatibility
>>> > >> > > > > > > >
>>> > >> > > > > > > > AFAICT we have the following hard goals:
>>> > >> > > > > > > > 1.a : Ensure that HBase compiles and runs well with
>>> the
>>> > >> earlier
>>> > >> > > > > > supported
>>> > >> > > > > > > > Hadoop version on the given branch
>>> > >> > > > > > > > 1.b: Ensure that HBase compiles and runs well with the
>>> > >> latest
>>> > >> > > > > supported
>>> > >> > > > > > > > Hadoop version on the given branch
>>> > >> > > > > > > >
>>> > >> > > > > > > > In my opinion we should also strive for these goals:
>>> > >> > > > > > > > 1.c: Aim to officially support the newest possible
>>> Hadoop
>>> > >> > > releases
>>> > >> > > > > > > > 1.d: Take advantage  of new features in newer Hadoop
>>> > >> versions
>>> > >> > > > > > > >
>>> > >> > > > > > > > 2. Public binary usability wish list:
>>> > >> > > > > > > >
>>> > >> > > > > > > > 2.a: We want them to work OOB for as many use cases as
>>> > >> possible
>>> > >> > > > > > > > 2.b: We want to work them as well as possible
>>> > >> > > > > > > > 2.c: We want to have as few CVEs in them as possible
>>> > >> > > > > > > > 2.d: We want to make upgrades as painless as possible,
>>> > >> > > especially for
>>> > >> > > > > > > patch
>>> > >> > > > > > > > releases
>>> > >> > > > > > > >
>>> > >> > > > > > > > The factor that Hadoop does not have an explicit
>>> end-of-life
>>> > >> > > policy
>>> > >> > > > > of
>>> > >> > > > > > > > course complicates things.
>>> > >> > > > > > > >
>>> > >> > > > > > > > Our current policy seems to be that we pick a Hadoop
>>> > >> version to
>>> > >> > > build
>>> > >> > > > > > > with
>>> > >> > > > > > > > when releasing a minor version,
>>> > >> > > > > > > > and stay on that version until there is a newer patch
>>> > >> released
>>> > >> > of
>>> > >> > > > > that
>>> > >> > > > > > > > minor version with direct CVE fixes.
>>> > >> > > > > > > > This does not seem to be an absolute, for example the
>>> > >> recently
>>> > >> > > > > released
>>> > >> > > > > > > > HBase 2.4.18 still defaults to Hadoop 3.1.2,
>>> > >> > > > > > > > which has several old CVEs, many of which are
>>> reportedly
>>> > >> fixed
>>> > >> > in
>>> > >> > > > > 3.1.3
>>> > >> > > > > > > and
>>> > >> > > > > > > > 3.1.4.
>>> > >> > > > > > > >
>>> > >> > > > > > > > my proposals are :
>>> > >> > > > > > > >
>>> > >> > > > > > > > Proposal 1:
>>> > >> > > > > > > >
>>> > >> > > > > > > > Whenever a new Hadoop patch release is released for a
>>> minor
>>> > >> > > version,
>>> > >> > > > > > then
>>> > >> > > > > > > > unless it breaks source compatibility, we should
>>> > >> automatically
>>> > >> > > update
>>> > >> > > > > > the
>>> > >> > > > > > > > default Hadoop version for
>>> > >> > > > > > > > all branches that use the same minor version.
>>> > >> > > > > > > > The existing hadoopcheck mechanism should be good
>>> enough to
>>> > >> > > guarantee
>>> > >> > > > > > > that
>>> > >> > > > > > > > we do not break compatibility with the earlier patch
>>> > >> releases.
>>> > >> > > > > > > >
>>> > >> > > > > > > > This would ensure that the binaries use the latest and
>>> > >> greatest
>>> > >> > > > > Hadoop
>>> > >> > > > > > > (of
>>> > >> > > > > > > > that minor branch) and that users of the binaries get
>>> the
>>> > >> > latest
>>> > >> > > > > fixes,
>>> > >> > > > > > > > both CVE and functionality wise, and
>>> > >> > > > > > > > the binaries also get the transitive CVE fixes in that
>>> > >> release.
>>> > >> > > > > > > > For example,if we did this we could use  the new
>>> feature in
>>> > >> > > 3.3.6 in
>>> > >> > > > > > > > HBASE-27769 (via reflection) and also test it, thereby
>>> > >> > improving
>>> > >> > > > > Ozone
>>> > >> > > > > > > > support.
>>> > >> > > > > > > >
>>> > >> > > > > > > > On the other hand we minimize changes and maximize
>>> > >> > compatibility
>>> > >> > > by
>>> > >> > > > > > > > sticking to the same Hadoop minor release.
>>> > >> > > > > > > >
>>> > >> > > > > > > > Proposal 2:
>>> > >> > > > > > > >
>>> > >> > > > > > > > We should default to the latest hadoop version
>>> (currently
>>> > >> > 3.4.0)
>>> > >> > > on
>>> > >> > > > > > > > unreleased branches.
>>> > >> > > > > > > > This should ensure that when we do release we default
>>> to the
>>> > >> > > latest
>>> > >> > > > > > > > version, and we've tested it as thoroughly as
>>> possible.
>>> > >> > > > > > > >
>>> > >> > > > > > > > Again. the existing Hadoopcheck mechanism should
>>> ensure
>>> > >> that we
>>> > >> > > do
>>> > >> > > > > not
>>> > >> > > > > > > > break compatibility with earlier supported versions.
>>> > >> > > > > > > >
>>> > >> > > > > > > > Istvan
>>> > >> > > > > > > >
>>> > >> > > > > > > >
>>> > >> > > > > > > >
>>> > >> > > > > > > >
>>> > >> > > > > > > > On Mon, Sep 9, 2024 at 9:41 PM Nick Dimiduk <
>>> > >> > ndimi...@apache.org
>>> > >> > > >
>>> > >> > > > > > wrote:
>>> > >> > > > > > > >
>>> > >> > > > > > > > > Yes, we’ll use reflection to make use of APIs
>>> introduced
>>> > >> in
>>> > >> > > newer
>>> > >> > > > > > HDFS
>>> > >> > > > > > > > > versions than the stated dependency until the stated
>>> > >> > dependency
>>> > >> > > > > > finally
>>> > >> > > > > > > > > catches up.
>>> > >> > > > > > > > >
>>> > >> > > > > > > > > On Mon, 9 Sep 2024 at 19:55, Wei-Chiu Chuang <
>>> > >> > > weic...@apache.org>
>>> > >> > > > > > > wrote:
>>> > >> > > > > > > > >
>>> > >> > > > > > > > > > Reflection is probably the way to go to ensure
>>> maximum
>>> > >> > > > > > compatibility
>>> > >> > > > > > > TBH
>>> > >> > > > > > > > > >
>>> > >> > > > > > > > > > On Mon, Sep 9, 2024 at 10:40 AM Istvan Toth
>>> > >> > > > > > > <st...@cloudera.com.invalid>
>>> > >> > > > > > > > > > wrote:
>>> > >> > > > > > > > > >
>>> > >> > > > > > > > > > > Stephen Wu has kindly sent me the link for the
>>> > >> previous
>>> > >> > > email
>>> > >> > > > > > > thread:
>>> > >> > > > > > > > > > >
>>> > >> > > > >
>>> https://lists.apache.org/thread/2k4tvz3wpg06sgkynkhgvxrodmj86vsj
>>> > >> > > > > > > > > > >
>>> > >> > > > > > > > > > > Reading it, I cannot see anything there that
>>> would
>>> > >> > > > > contraindicate
>>> > >> > > > > > > > > > upgrading
>>> > >> > > > > > > > > > > to 3.3.6 from 3.3.5, at least on the branches
>>> that
>>> > >> > already
>>> > >> > > > > > default
>>> > >> > > > > > > to
>>> > >> > > > > > > > > > > 3.3.5, i.e. 2.6+.
>>> > >> > > > > > > > > > >
>>> > >> > > > > > > > > > > At first glance, the new logic in HBASE-27769
>>> could
>>> > >> also
>>> > >> > be
>>> > >> > > > > > > implemented
>>> > >> > > > > > > > > > > with the usual reflection hacks, while
>>> preserving the
>>> > >> old
>>> > >> > > logic
>>> > >> > > > > > for
>>> > >> > > > > > > > > > Hadoop
>>> > >> > > > > > > > > > > 3.3.5 and earlier.
>>> > >> > > > > > > > > > >
>>> > >> > > > > > > > > > > Thanks,
>>> > >> > > > > > > > > > > Istvan
>>> > >> > > > > > > > > > >
>>> > >> > > > > > > > > > >
>>> > >> > > > > > > > > > >
>>> > >> > > > > > > > > > > On Mon, Sep 9, 2024 at 1:42 PM Istvan Toth <
>>> > >> > > st...@cloudera.com
>>> > >> > > > > >
>>> > >> > > > > > > wrote:
>>> > >> > > > > > > > > > >
>>> > >> > > > > > > > > > > > Thanks for your reply, Nick.
>>> > >> > > > > > > > > > > >
>>> > >> > > > > > > > > > > > There are no listed direct CVEs in either
>>> Hadoop
>>> > >> 3.2.4
>>> > >> > or
>>> > >> > > > > > 3.3.5,
>>> > >> > > > > > > but
>>> > >> > > > > > > > > > > there
>>> > >> > > > > > > > > > > > are CVEs in their transitive dependencies.
>>> > >> > > > > > > > > > > >
>>> > >> > > > > > > > > > > > My impression is that rather than shipping the
>>> > >> oldest
>>> > >> > > 'safe'
>>> > >> > > > > > > version,
>>> > >> > > > > > > > > > > > HBase does seem to update the default Hadoop
>>> > >> version to
>>> > >> > > the
>>> > >> > > > > > > > > latest-ish
>>> > >> > > > > > > > > > at
>>> > >> > > > > > > > > > > > the time of the start
>>> > >> > > > > > > > > > > > of the release process, otherwise 2.6 would
>>> still
>>> > >> > > default to
>>> > >> > > > > > > 3.2.4.
>>> > >> > > > > > > > > > > (HBase
>>> > >> > > > > > > > > > > > 2.6 release was already underway when Hadoop
>>> 3.4.0
>>> > >> was
>>> > >> > > > > > released)
>>> > >> > > > > > > > > > > >
>>> > >> > > > > > > > > > > > For now, we (Phoenix) have resorted to
>>> dependency
>>> > >> > > managing
>>> > >> > > > > > > transitive
>>> > >> > > > > > > > > > > > dependencies coming in (only) via Hadoop in
>>> Phoenix,
>>> > >> > > > > > > > > > > > but that is a slippery slope, and adds a
>>> layer of
>>> > >> > > > > uncertainty,
>>> > >> > > > > > > as it
>>> > >> > > > > > > > > > may
>>> > >> > > > > > > > > > > > introduce incompatibilities in Hadoop that we
>>> don't
>>> > >> > have
>>> > >> > > > > tests
>>> > >> > > > > > > for.
>>> > >> > > > > > > > > > > >
>>> > >> > > > > > > > > > > > Our situation is similar to that of the HBase
>>> shaded
>>> > >> > > > > artifacts,
>>> > >> > > > > > > where
>>> > >> > > > > > > > > > we
>>> > >> > > > > > > > > > > > ship a huge uberjar that includes much of
>>> both HBase
>>> > >> > and
>>> > >> > > > > Hadoop
>>> > >> > > > > > > on
>>> > >> > > > > > > > > top
>>> > >> > > > > > > > > > of
>>> > >> > > > > > > > > > > > (or rather below) Phoenix,
>>> > >> > > > > > > > > > > > similar to the hbase-client-shaded jar.
>>> > >> > > > > > > > > > > >
>>> > >> > > > > > > > > > > > I will look into to hadoop check CI tests that
>>> > >> you've
>>> > >> > > > > > mentioned,
>>> > >> > > > > > > > > then I
>>> > >> > > > > > > > > > > > will try to resurrect HBASE-27931, and if I
>>> don't
>>> > >> find
>>> > >> > > any
>>> > >> > > > > > > issues,
>>> > >> > > > > > > > > and
>>> > >> > > > > > > > > > > > there are no objections, then
>>> > >> > > > > > > > > > > > I will put a PR to update the unreleased
>>> version to
>>> > >> > > default
>>> > >> > > > > to
>>> > >> > > > > > > 3.4.0.
>>> > >> > > > > > > > > > > >
>>> > >> > > > > > > > > > > > Istvan
>>> > >> > > > > > > > > > > >
>>> > >> > > > > > > > > > > > On Mon, Sep 9, 2024 at 11:06 AM Nick Dimiduk <
>>> > >> > > > > > > ndimi...@apache.org>
>>> > >> > > > > > > > > > > wrote:
>>> > >> > > > > > > > > > > >
>>> > >> > > > > > > > > > > >> My understanding of our hadoop dependency
>>> policy is
>>> > >> > > that we
>>> > >> > > > > > ship
>>> > >> > > > > > > > > poms
>>> > >> > > > > > > > > > > with
>>> > >> > > > > > > > > > > >> hadoop versions pinned to the oldest
>>> compatible,
>>> > >> > "safe"
>>> > >> > > > > > version
>>> > >> > > > > > > that
>>> > >> > > > > > > > > > is
>>> > >> > > > > > > > > > > >> supported. Our test infrastructure has a
>>> "hadoop
>>> > >> > check"
>>> > >> > > > > > > procedure
>>> > >> > > > > > > > > that
>>> > >> > > > > > > > > > > >> does
>>> > >> > > > > > > > > > > >> some validation against other patch release
>>> > >> versions.
>>> > >> > > > > > > > > > > >>
>>> > >> > > > > > > > > > > >> I don't know if anyone has done a CVE sweep
>>> > >> recently.
>>> > >> > If
>>> > >> > > > > there
>>> > >> > > > > > > are
>>> > >> > > > > > > > > new
>>> > >> > > > > > > > > > > >> CVEs, we do bump the minimum supported
>>> version
>>> > >> > > specified in
>>> > >> > > > > > the
>>> > >> > > > > > > pom
>>> > >> > > > > > > > > as
>>> > >> > > > > > > > > > > >> part
>>> > >> > > > > > > > > > > >> of patch releases. These changes need to
>>> include a
>>> > >> > > pretty
>>> > >> > > > > > > thorough
>>> > >> > > > > > > > > > > >> compatibility check so that we can include
>>> release
>>> > >> > notes
>>> > >> > > > > about
>>> > >> > > > > > > any
>>> > >> > > > > > > > > > > >> introduced incompatibilities.
>>> > >> > > > > > > > > > > >>
>>> > >> > > > > > > > > > > >> I am in favor of a dependency bump so as to
>>> address
>>> > >> > > known
>>> > >> > > > > CVEs
>>> > >> > > > > > > as
>>> > >> > > > > > > > > best
>>> > >> > > > > > > > > > > as
>>> > >> > > > > > > > > > > >> we reasonably can.
>>> > >> > > > > > > > > > > >>
>>> > >> > > > > > > > > > > >> Thanks,
>>> > >> > > > > > > > > > > >> Nick
>>> > >> > > > > > > > > > > >>
>>> > >> > > > > > > > > > > >> On Mon, Sep 9, 2024 at 10:59 AM Istvan Toth <
>>> > >> > > > > st...@apache.org
>>> > >> > > > > > >
>>> > >> > > > > > > > > wrote:
>>> > >> > > > > > > > > > > >>
>>> > >> > > > > > > > > > > >> > Hi!
>>> > >> > > > > > > > > > > >> >
>>> > >> > > > > > > > > > > >> > I'm working on building the Phoenix
>>> uberjars with
>>> > >> > > newer
>>> > >> > > > > > Hadoop
>>> > >> > > > > > > > > > > versions
>>> > >> > > > > > > > > > > >> by
>>> > >> > > > > > > > > > > >> > default to improve its CVE stance, and I
>>> realized
>>> > >> > that
>>> > >> > > > > HBase
>>> > >> > > > > > > > > itself
>>> > >> > > > > > > > > > > does
>>> > >> > > > > > > > > > > >> > not use the latest releases.
>>> > >> > > > > > > > > > > >> >
>>> > >> > > > > > > > > > > >> > branch-2.5 defaults to 3.2.4
>>> > >> > > > > > > > > > > >> > branch-2.6 and later defaults to 3.3.5
>>> > >> > > > > > > > > > > >> >
>>> > >> > > > > > > > > > > >> > I can kind of understand that we don't
>>> want to
>>> > >> bump
>>> > >> > > the
>>> > >> > > > > > minor
>>> > >> > > > > > > > > > version
>>> > >> > > > > > > > > > > >> for
>>> > >> > > > > > > > > > > >> > branch-2.5 from the one it was released
>>> with.
>>> > >> > > > > > > > > > > >> >
>>> > >> > > > > > > > > > > >> > However, I don't see the rationale for not
>>> > >> upgrading
>>> > >> > > > > > > branch-2.6 to
>>> > >> > > > > > > > > > at
>>> > >> > > > > > > > > > > >> least
>>> > >> > > > > > > > > > > >> > 3.3.6, and the unreleased branches
>>> (branch-2,
>>> > >> > > branch-3,
>>> > >> > > > > > > master) to
>>> > >> > > > > > > > > > > >> 3.4.0.
>>> > >> > > > > > > > > > > >> >
>>> > >> > > > > > > > > > > >> > I found a mention of wanting to stay off
>>> the
>>> > >> latest
>>> > >> > > patch
>>> > >> > > > > > > release
>>> > >> > > > > > > > > > > >> > HBASE-27931, but I could not figure if it
>>> has a
>>> > >> > > technical
>>> > >> > > > > > > reason,
>>> > >> > > > > > > > > or
>>> > >> > > > > > > > > > > if
>>> > >> > > > > > > > > > > >> > this is a written (or unwritten) policy.
>>> > >> > > > > > > > > > > >> >
>>> > >> > > > > > > > > > > >> > best regards
>>> > >> > > > > > > > > > > >> > Istvan
>>> > >> > > > > > > > > > > >> >
>>> > >> > > > > > > > > > > >>
>>> > >> > > > > > > > > > > >
>>> > >> > > > > > > > > > > >
>>> > >> > > > > > > > > > > > --
>>> > >> > > > > > > > > > > > *István Tóth* | Sr. Staff Software Engineer
>>> > >> > > > > > > > > > > > *Email*: st...@cloudera.com
>>> > >> > > > > > > > > > > > cloudera.com <https://www.cloudera.com>
>>> > >> > > > > > > > > > > > [image: Cloudera] <https://www.cloudera.com/>
>>> > >> > > > > > > > > > > > [image: Cloudera on Twitter] <
>>> > >> > > https://twitter.com/cloudera>
>>> > >> > > > > > > [image:
>>> > >> > > > > > > > > > > > Cloudera on Facebook] <
>>> > >> > https://www.facebook.com/cloudera
>>> > >> > > >
>>> > >> > > > > > > [image:
>>> > >> > > > > > > > > > > > Cloudera on LinkedIn] <
>>> > >> > > > > > https://www.linkedin.com/company/cloudera
>>> > >> > > > > > > >
>>> > >> > > > > > > > > > > > ------------------------------
>>> > >> > > > > > > > > > > > ------------------------------
>>> > >> > > > > > > > > > > >
>>> > >> > > > > > > > > > >
>>> > >> > > > > > > > > > >
>>> > >> > > > > > > > > > > --
>>> > >> > > > > > > > > > > *István Tóth* | Sr. Staff Software Engineer
>>> > >> > > > > > > > > > > *Email*: st...@cloudera.com
>>> > >> > > > > > > > > > > cloudera.com <https://www.cloudera.com>
>>> > >> > > > > > > > > > > [image: Cloudera] <https://www.cloudera.com/>
>>> > >> > > > > > > > > > > [image: Cloudera on Twitter] <
>>> > >> > https://twitter.com/cloudera
>>> > >> > > >
>>> > >> > > > > > > [image:
>>> > >> > > > > > > > > > > Cloudera on Facebook] <
>>> > >> https://www.facebook.com/cloudera
>>> > >> > >
>>> > >> > > > > > [image:
>>> > >> > > > > > > > > > Cloudera
>>> > >> > > > > > > > > > > on LinkedIn] <
>>> > >> https://www.linkedin.com/company/cloudera>
>>> > >> > > > > > > > > > > ------------------------------
>>> > >> > > > > > > > > > > ------------------------------
>>> > >> > > > > > > > > > >
>>> > >> > > > > > > > > >
>>> > >> > > > > > > > >
>>> > >> > > > > > > >
>>> > >> > > > > > > >
>>> > >> > > > > > > > --
>>> > >> > > > > > > > *István Tóth* | Sr. Staff Software Engineer
>>> > >> > > > > > > > *Email*: st...@cloudera.com
>>> > >> > > > > > > > cloudera.com <https://www.cloudera.com>
>>> > >> > > > > > > > [image: Cloudera] <https://www.cloudera.com/>
>>> > >> > > > > > > > [image: Cloudera on Twitter] <
>>> https://twitter.com/cloudera>
>>> > >> > > [image:
>>> > >> > > > > > > > Cloudera on Facebook] <
>>> https://www.facebook.com/cloudera>
>>> > >> > > [image:
>>> > >> > > > > > > Cloudera
>>> > >> > > > > > > > on LinkedIn] <
>>> https://www.linkedin.com/company/cloudera>
>>> > >> > > > > > > > ------------------------------
>>> > >> > > > > > > > ------------------------------
>>> > >> > > > > > >
>>> > >> > > > > >
>>> > >> > > > > >
>>> > >> > > > > > --
>>> > >> > > > > > *István Tóth* | Sr. Staff Software Engineer
>>> > >> > > > > > *Email*: st...@cloudera.com
>>> > >> > > > > > cloudera.com <https://www.cloudera.com>
>>> > >> > > > > > [image: Cloudera] <https://www.cloudera.com/>
>>> > >> > > > > > [image: Cloudera on Twitter] <
>>> https://twitter.com/cloudera>
>>> > >> > [image:
>>> > >> > > > > > Cloudera on Facebook] <https://www.facebook.com/cloudera>
>>> > >> [image:
>>> > >> > > > > Cloudera
>>> > >> > > > > > on LinkedIn] <https://www.linkedin.com/company/cloudera>
>>> > >> > > > > > ------------------------------
>>> > >> > > > > > ------------------------------
>>> > >> > > > > >
>>> > >> > > > >
>>> > >> > > >
>>> > >> > > >
>>> > >> > > > --
>>> > >> > > > *István Tóth* | Sr. Staff Software Engineer
>>> > >> > > > *Email*: st...@cloudera.com
>>> > >> > > > cloudera.com <https://www.cloudera.com>
>>> > >> > > > [image: Cloudera] <https://www.cloudera.com/>
>>> > >> > > > [image: Cloudera on Twitter] <https://twitter.com/cloudera>
>>> [image:
>>> > >> > > > Cloudera on Facebook] <https://www.facebook.com/cloudera>
>>> [image:
>>> > >> > > Cloudera
>>> > >> > > > on LinkedIn] <https://www.linkedin.com/company/cloudera>
>>> > >> > > > ------------------------------
>>> > >> > > > ------------------------------
>>> > >> > >
>>> > >> >
>>> > >> >
>>> > >> > --
>>> > >> > *István Tóth* | Sr. Staff Software Engineer
>>> > >> > *Email*: st...@cloudera.com
>>> > >> > cloudera.com <https://www.cloudera.com>
>>> > >> > [image: Cloudera] <https://www.cloudera.com/>
>>> > >> > [image: Cloudera on Twitter] <https://twitter.com/cloudera>
>>> [image:
>>> > >> > Cloudera on Facebook] <https://www.facebook.com/cloudera> [image:
>>> > >> Cloudera
>>> > >> > on LinkedIn] <https://www.linkedin.com/company/cloudera>
>>> > >> > ------------------------------
>>> > >> > ------------------------------
>>> > >> >
>>> > >>
>>> > >
>>> > >
>>> > > --
>>> > > *István Tóth* | Sr. Staff Software Engineer
>>> > > *Email*: st...@cloudera.com
>>> > > cloudera.com <https://www.cloudera.com>
>>> > > [image: Cloudera] <https://www.cloudera.com/>
>>> > > [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
>>> > > Cloudera on Facebook] <https://www.facebook.com/cloudera> [image:
>>> > > Cloudera on LinkedIn] <https://www.linkedin.com/company/cloudera>
>>> > > ------------------------------
>>> > > ------------------------------
>>> > >
>>> >
>>> >
>>> > --
>>> > *István Tóth* | Sr. Staff Software Engineer
>>> > *Email*: st...@cloudera.com
>>> > cloudera.com <https://www.cloudera.com>
>>> > [image: Cloudera] <https://www.cloudera.com/>
>>> > [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
>>> > Cloudera on Facebook] <https://www.facebook.com/cloudera> [image:
>>> Cloudera
>>> > on LinkedIn] <https://www.linkedin.com/company/cloudera>
>>> > ------------------------------
>>> > ------------------------------
>>>
>>
>>
>> --
>> *István Tóth* | Sr. Staff Software Engineer
>> *Email*: st...@cloudera.com
>> cloudera.com <https://www.cloudera.com>
>> [image: Cloudera] <https://www.cloudera.com/>
>> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
>> Cloudera on Facebook] <https://www.facebook.com/cloudera> [image:
>> Cloudera on LinkedIn] <https://www.linkedin.com/company/cloudera>
>> ------------------------------
>> ------------------------------
>>
>
>
> --
> *István Tóth* | Sr. Staff Software Engineer
> *Email*: st...@cloudera.com
> cloudera.com <https://www.cloudera.com>
> [image: Cloudera] <https://www.cloudera.com/>
> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
> Cloudera on Facebook] <https://www.facebook.com/cloudera> [image:
> Cloudera on LinkedIn] <https://www.linkedin.com/company/cloudera>
> ------------------------------
> ------------------------------
>


-- 
*István Tóth* | Sr. Staff Software Engineer
*Email*: st...@cloudera.com
cloudera.com <https://www.cloudera.com>
[image: Cloudera] <https://www.cloudera.com/>
[image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
Cloudera on Facebook] <https://www.facebook.com/cloudera> [image: Cloudera
on LinkedIn] <https://www.linkedin.com/company/cloudera>
------------------------------
------------------------------

Reply via email to