[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1052007: marked as done (bookworm-pu: package lxcfs/5.0.3-1+deb12u1)



Your message dated Sat, 07 Oct 2023 09:59:42 +0000
with message-id <E1qp462-00A4H2-9z@coccia.debian.org>
and subject line Released with 12.2
has caused the Debian Bug report #1052007,
regarding bookworm-pu: package lxcfs/5.0.3-1+deb12u1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1052007: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1052007
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: pkg-lxc-devel@lists.alioth.debian.org, gibmat@debian.org
Control: affects -1 + src:lxcfs

[ Reason ]
lxcfs 5.0.3-1 has a bug where /proc/cpuinfo is not properly reported
within a 32bit arm container when the 64bit host has more than ~13
CPUs. This was initially reported in #1036818 and impacts some
autopkgtests run on the ci.debian.net arm hosts.

I have uploaded lxcfs 5.0.4-1 to unstable with a fix cherry-picked from
the upstream main branch, and would like to include it in bookworm's
version of lxcfs so that the CI arm servers can operate properly.

[ Impact ]
autopkgtests run on the CI infrastructure have been erroneously failing
for some packages, requiring workarounds. Fixing this will allow
autopkgtests for armel/armhf runs to be useful once again.

[ Tests ]
I have tested the patch locally in a QEMU VM, both when initially
debugging the issue as well as installing the proposed update. The
changes have been reviewed and accepted by the upstream developers.

[ Risks ]
The risk of regression is limited -- the changes have been reviewed and
accepted by the upstream developers. The fix is small and targeted.

[ Checklist ]
  [*] *all* changes are documented in the d/changelog
  [*] I reviewed all changes and I approve them
  [*] attach debdiff against the package in (old)stable
  [*] the issue is verified as fixed in unstable

[ Changes ]
Backport upstream commit fc8f593bda9eb4692daa07512ef6ba60dc39aded,
which was merged upstream earlier today and will be included in the
next release of lxcfs. There's also a small change to adjust the
default branch used by gbp to reflect the new branch for bookworm
fixes.

[ Other info ]
The source debdiff is attached.
diff -Nru lxcfs-5.0.3/debian/changelog lxcfs-5.0.3/debian/changelog
--- lxcfs-5.0.3/debian/changelog	2023-01-17 01:21:28.000000000 +0000
+++ lxcfs-5.0.3/debian/changelog	2023-09-15 21:32:11.000000000 +0000
@@ -1,3 +1,11 @@
+lxcfs (5.0.3-1+deb12u1) bookworm; urgency=medium
+
+  * Cherry-pick upstream fix for /proc/cpuinfo being empty within an arm32
+    container with large numbers of CPUs (See: #1036818)
+  * Adjust branch in d/gbp.conf
+
+ -- Mathias Gibbens <gibmat@debian.org>  Fri, 15 Sep 2023 21:32:11 +0000
+
 lxcfs (5.0.3-1) unstable; urgency=medium
 
   [ Mathias Gibbens ]
diff -Nru lxcfs-5.0.3/debian/gbp.conf lxcfs-5.0.3/debian/gbp.conf
--- lxcfs-5.0.3/debian/gbp.conf	2023-01-17 01:21:28.000000000 +0000
+++ lxcfs-5.0.3/debian/gbp.conf	2023-09-15 21:32:07.000000000 +0000
@@ -1,3 +1,3 @@
 [DEFAULT]
 pristine-tar = True
-debian-branch = master
+debian-branch = debian/bookworm
diff -Nru lxcfs-5.0.3/debian/patches/000-fix-arm32-personality.patch lxcfs-5.0.3/debian/patches/000-fix-arm32-personality.patch
--- lxcfs-5.0.3/debian/patches/000-fix-arm32-personality.patch	1970-01-01 00:00:00.000000000 +0000
+++ lxcfs-5.0.3/debian/patches/000-fix-arm32-personality.patch	2023-09-15 21:32:07.000000000 +0000
@@ -0,0 +1,88 @@
+From fc8f593bda9eb4692daa07512ef6ba60dc39aded Mon Sep 17 00:00:00 2001
+From: Mathias Gibbens <gibmat@debian.org>
+Date: Mon, 4 Sep 2023 00:13:57 +0000
+Subject: [PATCH] proc: Fix /proc/cpuinfo not respecting personality
+
+It was found that the personality within the container was not being
+properly respected, which for large numbers of CPUs would break
+reporting of /proc/cpuinfo in arm32 containers running on an arm64 host.
+
+Signed-off-by: Mathias Gibbens <gibmat@debian.org>
+---
+ src/proc_fuse.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 47 insertions(+), 2 deletions(-)
+
+diff --git a/src/proc_fuse.c b/src/proc_fuse.c
+index 25af10a1..40eb2680 100644
+--- a/src/proc_fuse.c
++++ b/src/proc_fuse.c
+@@ -82,6 +82,45 @@ static off_t get_procfile_size(const char *path)
+ 	return answer;
+ }
+ 
++static off_t get_procfile_size_with_personality(const char *path)
++{
++	struct fuse_context *fc = fuse_get_context();
++	__u32 host_personality = liblxcfs_personality(), caller_personality;
++	bool change_personality;
++	int ret;
++	off_t procfile_size_ret;
++
++	if (get_task_personality(fc->pid, &caller_personality) < 0)
++		return log_error(0, "Failed to get caller process (pid: %d) personality", fc->pid);
++
++	/* do we need to change thread personality? */
++	change_personality = host_personality != caller_personality;
++
++	if (change_personality) {
++		ret = personality(caller_personality);
++		if (ret == -1)
++			return log_error(0, "Call to personality(%d) failed: %s\n",
++					caller_personality, strerror(errno));
++
++		lxcfs_debug("task (tid: %d) personality was changed %d -> %d\n",
++				(int)syscall(SYS_gettid), ret, caller_personality);
++	}
++
++	procfile_size_ret = get_procfile_size(path);
++
++	if (change_personality) {
++		ret = personality(host_personality);
++		if (ret == -1)
++			return log_error(0, "Call to personality(%d) failed: %s\n",
++					host_personality, strerror(errno));
++
++		lxcfs_debug("task (tid: %d) personality was restored %d -> %d\n",
++				(int)syscall(SYS_gettid), ret, host_personality);
++	}
++
++	return procfile_size_ret;
++}
++
+ __lxcfs_fuse_ops int proc_getattr(const char *path, struct stat *sb)
+ {
+ 	struct timespec now;
+@@ -106,7 +145,10 @@ __lxcfs_fuse_ops int proc_getattr(const char *path, struct stat *sb)
+ 	    strcmp(path, "/proc/swaps")		== 0 ||
+ 	    strcmp(path, "/proc/loadavg")	== 0 ||
+ 	    strcmp(path, "/proc/slabinfo")	== 0) {
+-		sb->st_size = get_procfile_size(path);
++		if (liblxcfs_functional())
++			sb->st_size = get_procfile_size_with_personality(path);
++		else
++			sb->st_size = get_procfile_size(path);
+ 		sb->st_mode = S_IFREG | 00444;
+ 		sb->st_nlink = 1;
+ 		return 0;
+@@ -164,7 +206,10 @@ __lxcfs_fuse_ops int proc_open(const char *path, struct fuse_file_info *fi)
+ 
+ 	info->type = type;
+ 
+-	info->buflen = get_procfile_size(path) + BUF_RESERVE_SIZE;
++	if (liblxcfs_functional())
++		info->buflen = get_procfile_size_with_personality(path) + BUF_RESERVE_SIZE;
++	else
++		info->buflen = get_procfile_size(path) + BUF_RESERVE_SIZE;
+ 
+ 	info->buf = zalloc(info->buflen);
+ 	if (!info->buf)
diff -Nru lxcfs-5.0.3/debian/patches/series lxcfs-5.0.3/debian/patches/series
--- lxcfs-5.0.3/debian/patches/series	1970-01-01 00:00:00.000000000 +0000
+++ lxcfs-5.0.3/debian/patches/series	2023-09-15 21:32:07.000000000 +0000
@@ -0,0 +1 @@
+000-fix-arm32-personality.patch

Attachment: signature.asc
Description: This is a digitally signed message part


--- End Message ---
--- Begin Message ---
Version: 12.2

The upload requested in this bug has been released as part of 12.2.

--- End Message ---

Reply to: