Project

General

Profile

Actions

Feature #10989

closed

Optionally upgrade ceph libraries but not test programs on client

Added by Josh Durgin about 9 years ago. Updated about 9 years ago.

Status:
Resolved
Priority:
High
Category:
-
Target version:
% Done:

0%

Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:

Description

In the client upgrade tests (where the cluster is e.g. firefly and only the client is upgraded to master), we could get better coverage by only upgrading the libraries the tests use (librbd, librados, libcephfs, python-ceph) and not the test programs (ceph-tests).

If we upgrade the test programs as well, newer tests will often fail due to missing features in the firefly cluster. This restricts us to doing more basic tests. With only libraries upgraded, we can make sure we haven't broken the library apis, and get more extensive coverage of them in this scenario.

This should be optional since other upgrade scenarios where we upgrade the cluster first, then everything on the client, are also tested (these are most of our upgrade tests today).

Actions #1

Updated by Yuri Weinstein about 9 years ago

Related suite - upgrade/client-upgrade

Actions #2

Updated by Zack Cerza about 9 years ago

  • Status changed from New to Need More Info
  • Assignee set to Josh Durgin

What/where are 'ceph-tests' ?

Actions #3

Updated by Josh Durgin about 9 years ago

  • Status changed from Need More Info to New
  • Assignee deleted (Josh Durgin)

Oops, not pluralized. 'ceph-test' is the name of the package containing many of ceph's functional tests, including the librados and librbd api tests for C and C++.

Actions #4

Updated by Zack Cerza about 9 years ago

  • Target version set to sprint25
Actions #5

Updated by Zack Cerza about 9 years ago

  • Status changed from New to In Progress
  • Assignee set to Zack Cerza

So I have implemented a feature allowing you to exclude packages from the normal set when calling install.upgrade. It works well on Ubuntu, but on RHEL ceph-test gets upgraded anyway because:

[ubuntu@vpm187 ~]$ rpm -q ceph-test
ceph-test-0.80.5-9.el6.x86_64
[ubuntu@vpm187 ~]$ rpm -q --requires ceph-test | grep ceph
libcephfs.so.1()(64bit)
libcephfs1 = 1:0.80.5-9.el6
Actions #6

Updated by Ken Dreyer about 9 years ago

So from Zack's comment, there is a program in our ceph-test RPM that links against libcephfs, and apparently that program is either A) absent from the Debian ceph-test package, or B) not linking against libcephfs.

Actions #7

Updated by Josh Durgin about 9 years ago

There are programs in ceph-test linking to libcephfs in debian too, the difference is the spec file has a dependency on the exact version of the libraries, while in debian it does not specify the same version. I'd suggest removing the exact version dependence for ceph-test rpms.

Actions #8

Updated by Ken Dreyer about 9 years ago

  • Assignee changed from Zack Cerza to Ken Dreyer

Thanks Josh, that makes sense.

After further discussion in #sepia today, I'll post a PR to remove the strict version requirements from the ceph-test RPM. We'll also go ahead and make ceph-test depend on ceph-common, instead of depending directly on the librados2/librbd1 packages.

Actions #9

Updated by Ken Dreyer about 9 years ago

  • Status changed from In Progress to Fix Under Review
Actions #10

Updated by Ken Dreyer about 9 years ago

Zack or Yuri, do you want to run the tests against this wip-rpm-ceph-test-dependencies branch, so we know that it will fix this on RHEL?

Actions #11

Updated by Ken Dreyer about 9 years ago

This was just merged to master, so you can just test that!

Actions #12

Updated by Zack Cerza about 9 years ago

Great!

I'm trying to think of a way to test it but not coming up with anything just yet since anything older than master still has the dependency and, well, this is an upgrade test :)

Actions #13

Updated by Zack Cerza about 9 years ago

  • Assignee changed from Ken Dreyer to Zack Cerza
Actions #15

Updated by Zack Cerza about 9 years ago

  • Status changed from Fix Under Review to In Progress
  • Assignee changed from Zack Cerza to Ken Dreyer

The teuthology side should be done now. Let's get the packaging fix backported to hammer (or a wip branch based on hammer) please!

Actions #16

Updated by Josh Durgin about 9 years ago

Cherry-picked to the hammer branch, should be testable once the gitbuilders finish

Actions #17

Updated by Ken Dreyer about 9 years ago

  • Assignee changed from Ken Dreyer to Yuri Weinstein

Thanks Josh!

We discussed this briefly in infra standup. Once we have a wip- branch that's based on hammer, and packages for that are built in gitbuilder, Yuri should be able to test this.

At that point we can file the PR for hammer and maybe even get it merged.

Actions #18

Updated by Zack Cerza about 9 years ago

I just tested manually with this config:

roles:
- [client.0]
- [client.1]
tasks:
- chef:
- install:
   branch: wip-rpm-ceph-test-dependencies
- install.upgrade:
   all:
   exclude_packages: ['ceph-test', 'ceph-test-dbg']

Looks good. Thanks Ken and Josh!

Not sure if Yuri needs to do anything.

Actions #19

Updated by Ken Dreyer about 9 years ago

@Josh Jones: is there anything remaining to do here, or can we close this ticket?

Actions #20

Updated by Yuri Weinstein about 9 years ago

  • Status changed from In Progress to Resolved

This is done, resolved, related issue #11127

Actions

Also available in: Atom PDF