Skip to content

DAOS-18296 common: update PMDK version to 2.1.3 (#17403)#17665

Open
grom72 wants to merge 4 commits intorelease/2.6from
grom72/DAOS-18296-PMDK-2.1.3-2.6
Open

DAOS-18296 common: update PMDK version to 2.1.3 (#17403)#17665
grom72 wants to merge 4 commits intorelease/2.6from
grom72/DAOS-18296-PMDK-2.1.3-2.6

Conversation

@grom72
Copy link
Contributor

@grom72 grom72 commented Mar 9, 2026

Update and pin PMDK version to 2.1.3.
Point https://github.com/daos-stack/pmdk as the main PMDK reference source.

Requires:

Steps for the author:

  • Commit message follows the guidelines.
  • Appropriate Features or Test-tag pragmas were used.
  • Appropriate Functional Test Stages were run.
  • At least two positive code reviews including at least one code owner from each category referenced in the PR.
  • Testing is complete. If necessary, forced-landing label added and a reason added in a comment.

After all prior steps are complete:

  • Gatekeeper requested (daos-gatekeeper added as a reviewer).

Update and pin PMDK version to 2.1.3.
Point https://github.com/daos-stack/pmdk as the main PMDK reference source.

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
@grom72 grom72 added the unclean-cherry-pick Indicates that a cherry-pick had merge conflicts that needed resolving. label Mar 9, 2026
@github-actions
Copy link

github-actions bot commented Mar 9, 2026

Ticket title is 'dmg system start causes engines to crash after pool create'
Status is 'Awaiting backport'
Labels: 'scrubbed_2.8'
Job should run at elevated priority (1)
https://daosio.atlassian.net/browse/DAOS-18296

@github-actions github-actions bot added the priority Ticket has high priority (automatically managed) label Mar 9, 2026
@grom72 grom72 requested review from janekmi and osalyk March 9, 2026 07:17
@grom72 grom72 changed the title DAOS-18296 common: update PMDK version to 2.1.3 DAOS-18296 common: update PMDK version to 2.1.3 (#17403) Mar 9, 2026
@daosbuild3
Copy link
Collaborator

@daosbuild3
Copy link
Collaborator

Test stage Functional on EL 8.8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-17665/1/display/redirect

1 similar comment
@daosbuild3
Copy link
Collaborator

Test stage Functional on EL 8.8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-17665/1/display/redirect

osalyk
osalyk previously approved these changes Mar 9, 2026
@mchaarawi mchaarawi requested a review from soumagne March 9, 2026 12:06
Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>

Test-tag: test_self_test
Skip-unit-tests: true
Skip-unit-test-memcheck: true

Allow-unstable-test: true

Skip-func-test-el9: false
Skip-func-test-leap15: false
- inclued Leap15 FT
- include HW-test-[medium,large] for PMem related tests

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>

Allow-unstable-test: true

Skip-func-test-leap15: false

Skip-func-hw-test-medium: false
Skip-func-hw-test-large: false
@grom72 grom72 marked this pull request as ready for review March 10, 2026 07:45
@grom72 grom72 requested review from a team as code owners March 10, 2026 07:45
@grom72 grom72 requested a review from osalyk March 10, 2026 07:46
osalyk
osalyk previously approved these changes Mar 10, 2026
janekmi
janekmi previously approved these changes Mar 11, 2026
@grom72
Copy link
Contributor Author

grom72 commented Mar 12, 2026

This is a summary of the validation. It combines several executions because of CI infrastructure failures.
All uses the same commit 44e05c and uses the same binary 2.6.4-19.50.g44e05c28

Approved to merge

@grom72 grom72 added the approved-to-merge PR has received release branch merge approval label Mar 12, 2026
@grom72 grom72 requested a review from a team March 12, 2026 09:42
%if (0%{?suse_version} >= 1500)
Requires: ipmctl >= 03.00.00.0423
Requires: libpmemobj1 >= 2.1.0-3.suse1500
Requires: libpmemobj1 = 2.1.3-1.suse.lp155
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you should not use =, if for any reason you need a -2 later then you would need another daos package update. I would also do libpmemobj1 >= 2.1.3 don't bother with the -1.suse.lp155

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the only way to protect 2.6 against an unplanned libpmemobj upgrade.
It is a side effect of switching RPM builds to FPM. We can not verify new dependency package (like libpmeobj) with the 2.6 DAOS version before landing new RPMs to the master. But when they land to the masterthey immediately become available in the artifactory and may impact 2.6 stability. With pin-based approach we can fully control therelease/2.6branch upgrade with a separate PR. I think this is the safer option. It is already implemented on master branch withdaos-spdk` package:

DEPENDS=( "daos = ${VERSION}-${RELEASE}" "daos-spdk = ${daos_spdk_full}" )

This also makes the dependency packages' maintenance and update process more flexible and predictable.
PMDK upgrade to 2.1.3 is a good example.
We need version 2.1.3 for release 2.8, but we also need to predict the impact on DAOS 2.6 and get separate approval. If a package is generally available, we should rely on what the OS vendor delivers (the latest, the best). However, if a package is delivered as part of DAOS, we must be very precise about what we use in validation and what we deliver as complete solution.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that's not the right approach. If for any reason a customer needs an updated package version that includes a patch or anything, then he will be prevented from using the current daos rpm unless an updated daos rpm is also built. We are now imposing additional restrictions on users just because we have a CI issue.
When a 2.8 branch is created, you will then have the exact same issue once you start merging to master and will have to backport to 2.8. What you are saying is true for any package. It does not matter if the package is delivered as part of DAOS or not, this is the exact same reason why linux distributions versions have separate package repositories.
So in my opinion, what it comes down to is this, we need separate artifactory repos for each DAOS branch and more so since once 2.8 is branched, we'll most likely want the fpm changes landing from master to 2.8 to only be reflected once they land.
Now I don't disagree that spdk and libpmem are maybe packages that are really tied to DAOS, but any package is to some extent :) so unless it is a major release change between packages a user should be allowed to install a newer dependency version.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@soumagne wrote:

If for any reason a customer needs an updated package version that includes a patch or anything, then he will be prevented from using the current daos rpm unless an updated daos rpm is also built.

And this is exactly what we are doing already. We deliver DAOS+dependencies. e.g. You cannot use the latest SPDK and we do anything but pinning to make sure it won't happen e.g. changing the name of the package to have full control over which version the user will use.

We are now imposing additional restrictions on users just because we have a CI issue.

Again, we deliver DAOS+dependencies. The limitation is there already. What pinning does it just prevent the user from making a mistake of using DAOS with any other set of dependencies which is not supported already.

When a 2.8 branch is created, you will then have the exact same issue once you start merging to master and will have to backport to 2.8.

Obviously. And this is a desirable outcome. You have to know exactly when dependencies change. And you want to test these new dependencies in a controlled manner. This is good.

What you are saying is true for any package.

No it is not. It is true only for dependencies we chosen to deliver along with DAOS. DAOS is so fine tuned with particular revisions of these dependencies we decided the user cannot use whatever version comes with their OS distribution.

(...) this is the exact same reason why linux distributions versions have separate package repositories. So in my opinion, what it comes down to is this, we need separate artifactory repos for each DAOS branch and more so since once 2.8 is branched, we'll most likely want the fpm changes landing from master to 2.8 to only be reflected once they land.
Now I don't disagree that spdk and libpmem are maybe packages that are really tied to DAOS, but6 any package is to some extent :) so unless it is a major release change between packages a user should be allowed to install a newer dependency version.

What you propose is something completly new to DAOS.

Till now DAOS was release when it was released. It was DAOS+dependencies we called e.g. DAOS 2.6.4 and it was it.

Whereas with this "OS distribution" model you add a repository e.g. DAOS 2.6 and let's say you install DAOS. Later on you decide you would like to have a newer dependency X so you update just this dependency. Please note our validation does not validate any possible combination of dependencies. There is no "DAOS 2.6.4 + dependency X + 1". And since the dependencies are not pinned all of these combinations will be allowed. Some may say even endorsed. Whereas in fact none of this is supported.

So, the user will end up with a mess.

Am I missing something?

%else
Requires: ipmctl >= 03.00.00.0468
Requires: libpmemobj >= 2.1.0-6%{?dist}
Requires: libpmemobj = 2.1.3-1%{?dist}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment here

@daltonbohning daltonbohning removed the request for review from a team March 12, 2026 14:27
@grom72 grom72 requested a review from soumagne March 12, 2026 14:50
Copy link
Collaborator

@soumagne soumagne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still requesting changes because I think we should address the bigger issue related to rpm dependencies and branches (when rpms landing in master are immediately visible to other branches) before we start making that type of change, ie. pinning packages to an exact version.

Liited test scope to verify that proper rpm are installed

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>

Skip-unit-test-memcheck: true

Skip-fault-injection-test: true

Skip-func-hw-test-medium: true
Skip-func-hw-test-medium-md-on-ssd: true
Skip-func-hw-test-large: false
Skip-func-hw-test-large-md-on-ssd: true
@daosbuild3
Copy link
Collaborator

@daosbuild3
Copy link
Collaborator

Test stage Functional Hardware Medium Verbs Provider completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-17665/8/testReport/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved-to-merge PR has received release branch merge approval priority Ticket has high priority (automatically managed) unclean-cherry-pick Indicates that a cherry-pick had merge conflicts that needed resolving.

Development

Successfully merging this pull request may close these issues.

5 participants