DAOS-18296 common: update PMDK version to 2.1.3 (#17403)#17665
DAOS-18296 common: update PMDK version to 2.1.3 (#17403)#17665grom72 wants to merge 4 commits intorelease/2.6from
Conversation
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>
|
Ticket title is 'dmg system start causes engines to crash after pool create' |
|
Test stage Test RPMs on EL 8.6 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-17665/1/execution/node/1225/log |
|
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
|
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 |
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
|
This is a summary of the validation. It combines several executions because of CI infrastructure failures.
|
utils/rpms/daos.spec
Outdated
| %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 |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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:
Line 186 in 7b9f55d
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
@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?
utils/rpms/daos.spec
Outdated
| %else | ||
| Requires: ipmctl >= 03.00.00.0468 | ||
| Requires: libpmemobj >= 2.1.0-6%{?dist} | ||
| Requires: libpmemobj = 2.1.3-1%{?dist} |
soumagne
left a comment
There was a problem hiding this comment.
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
|
Test stage NLT on EL 8.8 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/ |
|
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/ |
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:
After all prior steps are complete: