Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock X-Debbugs-Cc: waypipe@packages.debian.org, gspr@nonempty.org Control: affects -1 + src:waypipe Please unblock package waypipe. [ Reason ] Waypipe versions prior to 0.8.6 contain a memory leak that is documented as bug #1034163 [1]. I have cherry-picked a one-line fix from upstream [2], and have verified that it fixes the problem. I have uploaded 0.8.4-3 to unstable with that patch as the only change. A debdiff against 0.8.4-2 (in testing) is attached. [ Impact ] If the unblock isn't granted, Bookworm will ship with a version of waypipe that leaks memory, making long-running sessions problematic. Since waypipe's job is to provide SSH forwarding (à la "ssh -X") to software running under Wayland, such long-running sessions are expected. [ Tests ] By running waypipe in debug mode, e.g. waypipe -d ssh localhost weston-simple-shm 2>&1 | grep "in flight" one can watch the "number of bytes in flight" messages report an ever-increasing number of bytes in the version of waypipe in Bookworm (0.8.4-2). With the fixed version from unstable (0.8.4-3), the number of bytes in flight remains bounded. This test was recommended to me by waypipe's upstream author. [ Risks ] The fix is a one-line patch, authored by upstream and already released as part of upstream's version 0.8.6. [ Checklist ] [X] all changes are documented in the d/changelog [X] I reviewed all changes and I approve them [X] attach debdiff against the package in testing [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1034163 [2] https://gitlab.freedesktop.org/mstoeckl/waypipe/-/commit/9070c4c527c906cb186588ca410d92d2f7f3c7ba unblock waypipe/0.8.4-3
diff -Nru waypipe-0.8.4/debian/changelog waypipe-0.8.4/debian/changelog
--- waypipe-0.8.4/debian/changelog 2022-11-23 17:11:16.000000000 +0100
+++ waypipe-0.8.4/debian/changelog 2023-04-10 15:51:36.000000000 +0200
@@ -1,3 +1,9 @@
+waypipe (0.8.4-3) unstable; urgency=medium
+
+ * Add upstream patch to fix memory leak. (Closes: #1034163)
+
+ -- Gard Spreemann <gspr@nonempty.org> Mon, 10 Apr 2023 15:51:36 +0200
+
waypipe (0.8.4-2) unstable; urgency=medium
* Increase timeout limit for build-time tests. (Closes: #1011322)
diff -Nru waypipe-0.8.4/debian/patches/0001-Fix-a-memory-leak.patch waypipe-0.8.4/debian/patches/0001-Fix-a-memory-leak.patch
--- waypipe-0.8.4/debian/patches/0001-Fix-a-memory-leak.patch 1970-01-01 01:00:00.000000000 +0100
+++ waypipe-0.8.4/debian/patches/0001-Fix-a-memory-leak.patch 2023-04-10 15:51:36.000000000 +0200
@@ -0,0 +1,29 @@
+From: Gard Spreemann <gspr@nonempty.org>
+Date: Mon, 10 Apr 2023 12:21:18 +0200
+Subject: Fix a memory leak
+
+This cherry-picks upstream commit
+9070c4c527c906cb186588ca410d92d2f7f3c7ba. The original commit message
+follows.
+
+This was introduced by a0f6bfa191f55b99e4ff68dd0063aa0c0e12dcbd
+incorrectly checking when to increase the value of
+cxs->last_confirmed_msgno. As a result, one of the two Waypipe
+processes would leak all the messages sent to the other process.
+---
+ src/mainloop.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mainloop.c b/src/mainloop.c
+index 181319c..38a084d 100644
+--- a/src/mainloop.c
++++ b/src/mainloop.c
+@@ -280,7 +280,7 @@ static int interpret_chanmsg(struct chan_msg_state *cmsg,
+ } else if (type == WMSG_ACK_NBLOCKS) {
+ struct wmsg_ack *ackm = (struct wmsg_ack *)packet;
+ if (msgno_gt(ackm->messages_received,
+- cxs->last_received_msgno)) {
++ cxs->last_confirmed_msgno)) {
+ cxs->last_confirmed_msgno = ackm->messages_received;
+ }
+ return 0;
diff -Nru waypipe-0.8.4/debian/patches/series waypipe-0.8.4/debian/patches/series
--- waypipe-0.8.4/debian/patches/series 1970-01-01 01:00:00.000000000 +0100
+++ waypipe-0.8.4/debian/patches/series 2023-04-10 15:51:36.000000000 +0200
@@ -0,0 +1 @@
+0001-Fix-a-memory-leak.patch
Attachment:
signature.asc
Description: PGP signature