[FFe] Version 1.5.2 needed for kernels >= 5.1

Bug #1842428 reported by Andreas Hasenack
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
pmdk-convert (Ubuntu)
Fix Released
Medium
Andreas Hasenack

Bug Description

https://github.com/pmem/pmdk-convert/releases/tag/1.5.2

Eoan has kernel 5.2

Debian just uploaded 1.5.2: https://tracker.debian.org/news/1061139/accepted-pmdk-convert-152-1-source-into-unstable/

This is the diff the pmdk-convert itself:
1.5.1..1.5.2 diff:
https://github.com/pmem/pmdk-convert/compare/1.5.1...1.5.2

This is the source package diff (there are no ubuntu changes):
https://git.launchpad.net/~usd-import-team/ubuntu/+source/pmdk-convert/commit/?id=ae70671e4ae6ef1d0fd0da611e2e2ad88d3ffafc

Mostly test fixes, but the detail is in this commit, shown in the diff above as well:
https://github.com/pmem/pmdk-convert/commit/0dbf1d98c353ec91aa9a9944e2ecb6595a5019ae

That tells the build system to fetch the latest pmdk versions of each pmdk release. The debian package has these in a separate orig tarball.

Specifically, we are getting the following pmdk updates, when compared with the pmdk-convert package we currently have in eoan:

https://github.com/pmem/pmdk/compare/1.5.1...1.5.2
https://github.com/pmem/pmdk/compare/1.4.2...1.4.3
https://github.com/pmem/pmdk/compare/1.3.1...1.3.3
https://github.com/pmem/pmdk/compare/1.2.3...1.2.4

I believe this to not be that relevant, because they are used only for conversion tasks from old pool formats. The actual pmdk package, which is at 1.6.1 in eoan, is what matters for day-to-day operations, and it is not being changed.

In the comments below you can see I tried inspecting all the changes listed above and to see if I needed a feature freeze exception, and I think I do, so I stopped. But as I said, these updates are only used in conversion tasks.

PPA build, with eoan-proposed enabled, and both supported arches as well: amd64 and arm64
https://launchpad.net/~ahasenack/+archive/ubuntu/pmdk-convert-ffe/+packages

Here is a simple test. I created this pool using pmdk from bionic (version 1.4):
multipass@e1:~/test$ pmempool info old.pool |grep ^Major
Major : 4
multipass@e1:~/test$ pmdk-convert old.pool
This tool will update the pool to the specified layout version.
This process is NOT fail-safe.
Proceed only if the pool has been backed up or
the risks are fully understood and acceptable.
Hit Ctrl-C now if you want to stop or Enter to continue.

Starting conversion from v4 (PMDK 1.3, PMDK 1.4) to v5 (PMDK 1.5)
Converting from v4 (PMDK 1.3, PMDK 1.4) to v5 (PMDK 1.5)... Done
multipass@e1:~/test$ pmempool info old.pool |grep ^Major
Major : 5

I used pmdk-convert from the PPA:
$ apt-cache policy pmdk-convert
multipass@e1:~/test$ apt-cache policy pmdk-convert
pmdk-convert:
  Installed: 1.5.2-1build1~ppa1
  Candidate: 1.5.2-1build1~ppa1
  Version table:
 *** 1.5.2-1build1~ppa1 500
        500 http://ppa.launchpad.net/ahasenack/pmdk-convert-ffe/ubuntu eoan/main amd64 Packages

Running kernel:
multipass@e1:~/test$ uname -a
Linux e1 5.3.0-10-generic #11-Ubuntu SMP Mon Sep 9 15:12:17 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

v5 is also the format used by pmdk 1.6.x:
multipass@e1:~/test$ pmempool create obj pool-with-pmdk-1.6.1.pool
multipass@e1:~/test$ pmempool info pool-with-pmdk-1.6.1.pool |grep ^Major
Major : 5

I also ran the above tests with the bionic kernel:
4.15.0-62-generic #69

Changed in pmdk-convert (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
assignee: nobody → Andreas Hasenack (ahasenack)
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

The diff between 1.5.1 and 1.5.2 is ok for the feature freeze, but this source package has a second orig tarball for all the previous pmdk (previously called nvml) releases, presumably to be able to convert to/from. Those were also updated, and need some scrutiny. So let's start.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

1.5.1..1.5.2 diff:
https://github.com/pmem/pmdk-convert/compare/1.5.1...1.5.2

Packaging: https://git.launchpad.net/~usd-import-team/ubuntu/+source/pmdk-convert/commit/?h=debian/sid&id=ae70671e4ae6ef1d0fd0da611e2e2ad88d3ffafc

Mostly test fixes, but the detail is in this commit, shown in the diff above as well:
https://github.com/pmem/pmdk-convert/commit/0dbf1d98c353ec91aa9a9944e2ecb6595a5019ae

That tells the build system to fetch the latest pmdk versions of each pmdk release. The debian package has these in a separate orig tarball.

Specifically, we are getting the following pmdk updates, when compared with the pmdk-convert package we currently have in eoan:

https://github.com/pmem/pmdk/compare/1.5.1...1.5.2
https://github.com/pmem/pmdk/compare/1.4.2...1.4.3
https://github.com/pmem/pmdk/compare/1.3.1...1.3.3
https://github.com/pmem/pmdk/compare/1.2.3...1.2.4

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

https://github.com/pmem/pmdk/compare/1.2.3...1.2.4 looks fine from a feature freeze point of view.
- test fixes, including travis config
- docker build fixes, not used at runtime
- the actual fix we want: https://github.com/pmem/pmdk/commit/5baba955422a7c1939548039ce9f1bcd597b7e50

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Checking https://github.com/pmem/pmdk/compare/1.3.1...1.3.3

https://github.com/pmem/pmdk/commit/456d9745ec628329b9cbaa1e7211f11e4b3035fd summarizes the changes introduced in 1.3.2:

* Version 1.3.2
 Bug fixes:
 - common: fix library dependencies (#767)
 - common: use rpm-config CFLAGS/LDFLAGS when building packages (#768)
 - test: fix vmmalloc_malloc_hooks (#773)
 - test: fix compilation with clang-5.0 (#783)
 - pool: fix set convert of v3 -> v4

Verified by inspection of the diff in https://github.com/pmem/pmdk/compare/1.3.1...1.3.3

1.3.2 wasn't released, so the final changelog only mentions 1.3.3:
https://github.com/pmem/pmdk/commit/6191ac4d494af5d6e5ac48944ea204da301829a7 (still rc1, but no changes to final)
* Version 1.3.3-rc1
 Bug fixes:
 - pmem: fix clflush bit position
 - common: implement correct / robust device_dax_alignment
 - common: fix device dax detection
 - common: fix library dependencies (#767)
 - common: use rpm-config CFLAGS/LDFLAGS when building packages (#768)
 - test: fix vmmalloc_malloc_hooks (#773)
 - test: fix compilation with clang-5.0 (#783)
 - pool: fix set convert of v3 -> v4
 - common: generate pkg-config files on make install (#610)
 - common: fix dependencies for Debian's dev packages
 - test: add missing include in unittest.h
 - common: (win) fix timed locks
 - common: provide src version in GitHub tarballs
 - common: fix free function in tls

All bug fixes.

Of the above, I looked into a bit more of detail into this one:

common: use system-default or user-defined CFLAGS
https://github.com/pmem/pmdk/commit/191bf70bca6dc438134365ee3491410fc5f24316

That is providing a set of DEFAULT_CFLAGS, and then doing this:
CFLAGS ?= $(DEFAULT_CFLAGS)

CFLAGS += -std=gnu99
CFLAGS += -fno-common
CFLAGS += -pthread
CFLAGS += -DSRCVERSION=\"$(SRCVERSION)\"

They did it to allow passing of CFLAGS into their own rpm builds, via https://github.com/pmem/pmdk/commit/957bff1598292cc3a294b40cd4446f234c8baa07, but this could change our builds as well. I was looking at current build logs, seeing if I could spot their Makefile flags being added to ours, but couldn't find it. Maybe this isn't used in this pmdk-convert build, which is only concerned with the conversion of pool format, and not the whole pmdk stack.

description: updated
description: updated
description: updated
description: updated
description: updated
summary: - Version 1.5.2 needed for kernels >= 5.1
+ [FFe] Version 1.5.2 needed for kernels >= 5.1
Changed in pmdk-convert (Ubuntu):
status: Triaged → New
Revision history for this message
Steve Langasek (vorlon) wrote :

pmdk-convert is at version 1.7-1 in all currently published releases.

Changed in pmdk-convert (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.