Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w43mm-001pQm-1b for pgsql-hackers@arkaria.postgresql.org; Sat, 21 Mar 2026 21:23:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w43mk-00Bjxe-0K for pgsql-hackers@arkaria.postgresql.org; Sat, 21 Mar 2026 21:23:06 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w43mj-00BjxT-1p for pgsql-hackers@lists.postgresql.org; Sat, 21 Mar 2026 21:23:06 +0000 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w43mi-00000000NTt-0DnJ for pgsql-hackers@lists.postgresql.org; Sat, 21 Mar 2026 21:23:05 +0000 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b9825ba7e8dso352821466b.3 for ; Sat, 21 Mar 2026 14:23:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774128183; cv=none; d=google.com; s=arc-20240605; b=D5U0aQ9vQSnc1fajzjieI4+LB57txHtkXf+LzDcGo/wtzTdGByB+nf8TmUdiHFetzr oOjMyC72cjSIydGxdUEiPg0V5d89MXE76OAGiYJbVVu4CEHj/lI7+dWDy9W9+TugsMvB SVzTw+dvLJY4Q1ZhSC0oFAdPFDfnXjPjSY/X95xNxk2ziVFzkAx2xLIqd8V7fcDnszXg viORh7BtNw3dWCz8z5orFrWT97/AD64E4Es8E/8jVQOBI40hM4CHHpmoY2G8aX0PI3sx 9eAKXuEYdmvAN+aG9KtmA4NdqL8JgkNBa7TN5D6vBUID8+y4VjMbI+fmn8BIXEm86Ek9 D1Kg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=g1stP7tN+HDNhRLATwXJP1U4AVsYa/O/0YXmsuHiX3M=; fh=wb9NqnYQimSGVvxgRUtQskkilZUMkEI7NNKqWcZGqa4=; b=b2BUdonCjj9MTQNXVYbneAAXZbpLs4Lu3ApEwqofnfbmRv1/Dh82gBHh0mbD9QLwyZ 8P+TqOGuIdPpCU9BJ5Cifm/ZDrQfvovBjrn+jUR/ie6hBI0TNSUxJo7g25tbj/84wFFc FhkxcH5fU2iip5WW5Cp9dP6ZmZWPv+axA2q3vKrydHoqjI9EXztDaw+MF3LKYFtnp+hg fqVmLoNx0mvQucJmrgm5faVrOM/SJrDpnKPGHMzS1o15/l/O45xAl+4iefnHeomdlxfp LI9LoLPbECsArU0Ph4XREMbqZwiT297lfB+ckMmWP3TwiSnQunM5EY6MAAtzUkkX8up+ EEHQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774128183; x=1774732983; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=g1stP7tN+HDNhRLATwXJP1U4AVsYa/O/0YXmsuHiX3M=; b=ZnPCB192s0hR3toKzCjs+iQUk2w7l4eGs1MjoLFySmzE5jKqpCvc3OnVoYLMXApMF4 IHUbWi/ti0fMx4WwUrEnIIVjABgizieV2ot83Uc1NIIZNKnE4Fu1/mX2J60ralNSKdjM xdMETmyUy8AStcyH9mb2bIwQxsfEMg1wVMg1XoflQdaO9qdp8UQJEh5y/Lp177f1cqju NG9zhGI8Sm+g5N4H6ZlMijg5tzNbjR7rpgqAOGupdY8jguS4P9lMKVEBdvuMLIRJVJYz xC4W7/s8i0D5vZh8On6T028fXtx5XWXGXZmiSlRzGGS4ar8vU1cWFOYazg+c7vFXNSYa u4wQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774128183; x=1774732983; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=g1stP7tN+HDNhRLATwXJP1U4AVsYa/O/0YXmsuHiX3M=; b=Ryb0HQ/Qfc+tp9x2uaMSBcvHKM8knL/G2eSsHQnsNLekadhaDKwIDjdvYPQktO/99E trTep14+GA6QhEgjSvSpn2eVRIW9wS9IURc89paUFodEBH8NrPGi0/L3AIP+A7+YZae2 XbXTL1P0Wai69s9n0TgTKt6HUF7QDuUjxKhwHnpTkoVqAqqjbub66wCU/R0O9IAgbV/X Nv6wCxiZCDA8EmdeWOABjoUWLRPXpwEu7/OGayXgJ9IJgqvDokJTnTZAvggxXX2NrB1v 2Ow39Le+8R5CfDw0rS5+Om2Un9vhYX2MolBoRT1lMssluYy8PDcfR2mFD+eANSh9VHlt PWTA== X-Gm-Message-State: AOJu0YztrCDi9EOIb0COpyDnzLh3tyIqV9mh7Am5MkpM2Ug2GMj/fqtJ IPRsuuZbhyhF8qXqSJqp9iRK5+tqSHYXWzWjmSbqyTxGIXuAOwyyKgG3MRJT7FZH5pG689vZggf mwb7o4bJyactRmYOeq1JS6FkmW7sQ/LieTkw76bU= X-Gm-Gg: ATEYQzzKCszqpJ9QYuQed8qHn8wU8mmJYVE2TtxgCjVH2pWNvgEeHZTmQ4DDPawb92P 7AOATqOA41Pgmg/sdf71nuhVikc9/DgDEU2Cn8bx6sxZUtH9+c6txv5jCProEylHOV4wGYjyQ5m QGC5szD+PE6jxXbsLg5tbT79WlEETL+XtfSED2ecRdn67Xb/bt4KUzkR8DqPigQTGuhU5HxsHuB Q5DuqW6tSzbHZXVw+msc34UnKdQnr5MkzP9myGGBBF0KSTj+oUwrt1OI31x0DpauldAw1TilF2N IHi3jJI8cHMkpqZzAOvcVeSeL1Ziphy8RRvJQPiXQxp2A8VIp5Hd2d3K2pqJ1QTM90vKf2y6 X-Received: by 2002:a17:906:a894:b0:b97:c5e2:d7c9 with SMTP id a640c23a62f3a-b982f3e7fd2mr409945366b.44.1774128182391; Sat, 21 Mar 2026 14:23:02 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Jianghua Yang Date: Sat, 21 Mar 2026 14:22:25 -0700 X-Gm-Features: AaiRm51WTvLNOmPUM7ptzVLwyBGguV1sJ6M4ja5MT7MQ7AqgmvrC5kWqBqM33Mw Message-ID: Subject: Re: basebackup: add missing deflateEnd() in gzip compression sink To: Michael Paquier Cc: pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000019366f064d8f6819" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000019366f064d8f6819 Content-Type: multipart/alternative; boundary="00000000000019366d064d8f6817" --00000000000019366d064d8f6817 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Michael, Thanks for the review and backpatch suggestion. Here is v1 as a two-patch series. The first patch is unchanged from the original submission. I've added a second patch that fixes another resourc= e leak I noticed nearby in pg_basebackup: v1-0001: basebackup: add missing deflateEnd() calls in gzip compression sink v1-0002: pg_basebackup: add missing close() for incremental manifest file In the incremental backup code path, the file descriptor opened for reading the manifest is never closed after the upload completes. Since the backup can run for a long time after this point, the leaked descriptor remains open for the entire duration. Regards, Jianghua Yang Jianghua Yang =E4=BA=8E2026=E5=B9=B43=E6=9C=8821=E6=97= =A5=E5=91=A8=E5=85=AD 06:09=E5=86=99=E9=81=93=EF=BC=9A > Thanks for reviewing, Michael. > > > based on the argument of the permanent connection my take is that > > this cleanup warrants a backpatch. > > Agreed. The current code leaks zlib internal state on every archive, > and on a long-lived replication connection those allocations just > pile up with no cleanup until the connection ends. > > Michael Paquier =E4=BA=8E2026=E5=B9=B43=E6=9C=8820= =E6=97=A5=E5=91=A8=E4=BA=94 23:09=E5=86=99=E9=81=93=EF=BC=9A > >> On Fri, Mar 20, 2026 at 10:02:44AM -0700, Jianghua Yang wrote: >> > While reviewing the backup compression backends, I noticed that the gz= ip >> > sink (basebackup_gzip.c) never calls deflateEnd(), unlike the lz4 and >> > zstd sinks which properly free their compression contexts. >> > >> > This means each archive (one per tablespace) leaks ~256KB of zlib >> > internal state until the backup's memory context is destroyed. On the >> > ERROR path, the zlib context is not released at all since there is no >> > gzip-specific cleanup callback. >> >> Yes, you are right on this one. This code could be better in cleaning >> up the resources it is working on (and note that all the other >> gzip-related code paths call the end() part if doing an init() or an >> init2()). Leaking that once per archive may not look like a big deal, >> but this is backend-side code we are talking about, and on a >> persistent replication connection it is not really cool to lose the >> context of this data with garbage coming from zlib piling up, so based >> on the argument of the permanent connection my take is that this >> cleanup warrants a backpatch. >> -- >> Michael >> > --00000000000019366d064d8f6817 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+wqBIaSBNaWNoYWVsLCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj7C oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj7CoCBUaGFu a3MgZm9yIHRoZSByZXZpZXcgYW5kIGJhY2twYXRjaCBzdWdnZXN0aW9uLiDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoDxicj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj7CoCBIZXJlIGlzIHYxIGFzIGEgdHdvLXBhdGNoIHNl cmllcy4gVGhlIGZpcnN0IHBhdGNoIGlzIHVuY2hhbmdlZCBmcm9tIHRoZSDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj7CoCBvcmlnaW5hbCBzdWJt aXNzaW9uLiBJJiMzOTt2ZSBhZGRlZCBhIHNlY29uZCBwYXRjaCB0aGF0IGZpeGVzIGFub3RoZXIg cmVzb3VyY2U8YnI+wqAgbGVhayBJIG5vdGljZWQgbmVhcmJ5IGluIHBnX2Jhc2ViYWNrdXA6IMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPGJyPsKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPGJyPsKgIMKgIHYxLTAwMDE6IGJhc2Vi YWNrdXA6IGFkZCBtaXNzaW5nIGRlZmxhdGVFbmQoKSBjYWxscyBpbiBnemlwIGNvbXByZXNzaW9u IHNpbmsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPsKgIMKgIHYx LTAwMDI6IHBnX2Jhc2ViYWNrdXA6IGFkZCBtaXNzaW5nIGNsb3NlKCkgZm9yIGluY3JlbWVudGFs IG1hbmlmZXN0IGZpbGUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqA8YnI+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+ wqAgSW4gdGhlIGluY3JlbWVudGFsIGJhY2t1cCBjb2RlIHBhdGgsIHRoZSBmaWxlIGRlc2NyaXB0 b3Igb3BlbmVkIGZvciByZWFkaW5nIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgPGJyPsKgIHRoZSBtYW5pZmVzdCBpcyBuZXZlciBjbG9zZWQgYWZ0ZXIgdGhlIHVw bG9hZCBjb21wbGV0ZXMuIFNpbmNlIHRoZSBiYWNrdXA8YnI+wqAgY2FuIHJ1biBmb3IgYSBsb25n IHRpbWUgYWZ0ZXIgdGhpcyBwb2ludCwgdGhlIGxlYWtlZCBkZXNjcmlwdG9yIHJlbWFpbnMgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+wqAgb3Bl biBmb3IgdGhlIGVudGlyZSBkdXJhdGlvbi7CoCDCoDxkaXY+PGJyPjwvZGl2PjxkaXY+wqAgwqBS ZWdhcmRzLDxicj7CoCBKaWFuZ2h1YSBZYW5nPC9kaXY+PC9kaXY+PGJyPjxkaXYgY2xhc3M9Imdt YWlsX3F1b3RlIGdtYWlsX3F1b3RlX2NvbnRhaW5lciI+PGRpdiBkaXI9Imx0ciIgY2xhc3M9Imdt YWlsX2F0dHIiPkppYW5naHVhIFlhbmcgJmx0OzxhIGhyZWY9Im1haWx0bzp5amhqc3R6QGdtYWls LmNvbSI+eWpoanN0ekBnbWFpbC5jb208L2E+Jmd0OyDkuo4yMDI25bm0M+aciDIx5pel5ZGo5YWt IDA2OjA55YaZ6YGT77yaPGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIg c3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdi KDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGRpcj0ibHRyIj7CoCBUaGFua3Mg Zm9yIHJldmlld2luZywgTWljaGFlbC48YnI+PGJyPsKgICZndDsgYmFzZWQgb24gdGhlIGFyZ3Vt ZW50IG9mIHRoZSBwZXJtYW5lbnQgY29ubmVjdGlvbiBteSB0YWtlIGlzIHRoYXQ8YnI+wqAgJmd0 OyB0aGlzIGNsZWFudXAgd2FycmFudHMgYSBiYWNrcGF0Y2guPGJyPjxicj7CoCBBZ3JlZWQuIFRo ZSBjdXJyZW50IGNvZGUgbGVha3MgemxpYiBpbnRlcm5hbCBzdGF0ZSBvbiBldmVyeSBhcmNoaXZl LDxicj7CoCBhbmQgb24gYSBsb25nLWxpdmVkIHJlcGxpY2F0aW9uIGNvbm5lY3Rpb24gdGhvc2Ug YWxsb2NhdGlvbnMganVzdDxicj7CoCBwaWxlIHVwIHdpdGggbm8gY2xlYW51cCB1bnRpbCB0aGUg Y29ubmVjdGlvbiBlbmRzLjwvZGl2Pjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGRpdiBk aXI9Imx0ciIgY2xhc3M9ImdtYWlsX2F0dHIiPk1pY2hhZWwgUGFxdWllciAmbHQ7PGEgaHJlZj0i bWFpbHRvOm1pY2hhZWxAcGFxdWllci54eXoiIHRhcmdldD0iX2JsYW5rIj5taWNoYWVsQHBhcXVp ZXIueHl6PC9hPiZndDsg5LqOMjAyNuW5tDPmnIgyMOaXpeWRqOS6lCAyMzowOeWGmemBk++8mjxi cj48L2Rpdj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4 IDBweCAwcHggMC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFk ZGluZy1sZWZ0OjFleCI+T24gRnJpLCBNYXIgMjAsIDIwMjYgYXQgMTA6MDI6NDRBTSAtMDcwMCwg SmlhbmdodWEgWWFuZyB3cm90ZTo8YnI+DQomZ3Q7IFdoaWxlIHJldmlld2luZyB0aGUgYmFja3Vw IGNvbXByZXNzaW9uIGJhY2tlbmRzLCBJIG5vdGljZWQgdGhhdCB0aGUgZ3ppcDxicj4NCiZndDsg c2luayAoYmFzZWJhY2t1cF9nemlwLmMpIG5ldmVyIGNhbGxzIGRlZmxhdGVFbmQoKSwgdW5saWtl IHRoZSBsejQgYW5kPGJyPg0KJmd0OyB6c3RkIHNpbmtzIHdoaWNoIHByb3Blcmx5IGZyZWUgdGhl aXIgY29tcHJlc3Npb24gY29udGV4dHMuPGJyPg0KJmd0OyA8YnI+DQomZ3Q7IFRoaXMgbWVhbnMg ZWFjaCBhcmNoaXZlIChvbmUgcGVyIHRhYmxlc3BhY2UpIGxlYWtzIH4yNTZLQiBvZiB6bGliPGJy Pg0KJmd0OyBpbnRlcm5hbCBzdGF0ZSB1bnRpbCB0aGUgYmFja3VwJiMzOTtzIG1lbW9yeSBjb250 ZXh0IGlzIGRlc3Ryb3llZC4gT24gdGhlPGJyPg0KJmd0OyBFUlJPUiBwYXRoLCB0aGUgemxpYiBj b250ZXh0IGlzIG5vdCByZWxlYXNlZCBhdCBhbGwgc2luY2UgdGhlcmUgaXMgbm88YnI+DQomZ3Q7 IGd6aXAtc3BlY2lmaWMgY2xlYW51cCBjYWxsYmFjay48YnI+DQo8YnI+DQpZZXMsIHlvdSBhcmUg cmlnaHQgb24gdGhpcyBvbmUuwqAgVGhpcyBjb2RlIGNvdWxkIGJlIGJldHRlciBpbiBjbGVhbmlu Zzxicj4NCnVwIHRoZSByZXNvdXJjZXMgaXQgaXMgd29ya2luZyBvbiAoYW5kIG5vdGUgdGhhdCBh bGwgdGhlIG90aGVyPGJyPg0KZ3ppcC1yZWxhdGVkIGNvZGUgcGF0aHMgY2FsbCB0aGUgZW5kKCkg cGFydCBpZiBkb2luZyBhbiBpbml0KCkgb3IgYW48YnI+DQppbml0MigpKS7CoCBMZWFraW5nIHRo YXQgb25jZSBwZXIgYXJjaGl2ZSBtYXkgbm90IGxvb2sgbGlrZSBhIGJpZyBkZWFsLDxicj4NCmJ1 dCB0aGlzIGlzIGJhY2tlbmQtc2lkZSBjb2RlIHdlIGFyZSB0YWxraW5nIGFib3V0LCBhbmQgb24g YTxicj4NCnBlcnNpc3RlbnQgcmVwbGljYXRpb24gY29ubmVjdGlvbiBpdCBpcyBub3QgcmVhbGx5 IGNvb2wgdG8gbG9zZSB0aGU8YnI+DQpjb250ZXh0IG9mIHRoaXMgZGF0YSB3aXRoIGdhcmJhZ2Ug Y29taW5nIGZyb20gemxpYiBwaWxpbmcgdXAsIHNvIGJhc2VkPGJyPg0Kb24gdGhlIGFyZ3VtZW50 IG9mIHRoZSBwZXJtYW5lbnQgY29ubmVjdGlvbiBteSB0YWtlIGlzIHRoYXQgdGhpczxicj4NCmNs ZWFudXAgd2FycmFudHMgYSBiYWNrcGF0Y2guPGJyPg0KLS08YnI+DQpNaWNoYWVsPGJyPg0KPC9i bG9ja3F1b3RlPjwvZGl2Pg0KPC9ibG9ja3F1b3RlPjwvZGl2Pg0K --00000000000019366d064d8f6817-- --00000000000019366f064d8f6819 Content-Type: application/octet-stream; name="v1-0002-pg_basebackup-add-missing-close-for-incremental-mani.patch" Content-Disposition: attachment; filename="v1-0002-pg_basebackup-add-missing-close-for-incremental-mani.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn0u2v4j1 RnJvbSBiNTk2NDQ5YzFhNWQzOGY4ZGVjZjQwMTAxMzEzYjI0YzhiMmVlZjcwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaWFuZ2h1YSBZYW5nIDx5amhqc3R6QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAyMSBNYXIgMjAyNiAxNDoxNzowNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIHBnX2Jh c2ViYWNrdXA6IGFkZCBtaXNzaW5nIGNsb3NlKCkgZm9yIGluY3JlbWVudGFsIG1hbmlmZXN0CiBm aWxlCgpXaGVuIHVwbG9hZGluZyBhbiBpbmNyZW1lbnRhbCBtYW5pZmVzdCB0byB0aGUgc2VydmVy LCB0aGUgZmlsZQpkZXNjcmlwdG9yIG9wZW5lZCBmb3IgcmVhZGluZyB0aGUgbWFuaWZlc3Qgd2Fz IG5ldmVyIGNsb3NlZCBhZnRlcgp0aGUgdXBsb2FkIGNvbXBsZXRlZC4gU2luY2UgdGhlIGJhY2t1 cCBjYW4gcnVuIGZvciBhIGxvbmcgdGltZQphZnRlciB0aGlzIHBvaW50LCB0aGUgbGVha2VkIGRl c2NyaXB0b3Igd291bGQgcmVtYWluIG9wZW4gZm9yCnRoZSBlbnRpcmUgZHVyYXRpb24uCgpBZGQg dGhlIG1pc3NpbmcgY2xvc2UoKSBjYWxsIGFmdGVyIHRoZSBmaWxlIGhhcyBiZWVuIGZ1bGx5IHJl YWQuCgpBdXRob3I6IEppYW5naHVhIFlhbmcgPHlqaGpzdHpAZ21haWwuY29tPgotLS0KIHNyYy9i aW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFja3VwLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jh c2ViYWNrdXAuYyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFja3VwLmMKaW5kZXgg ZmExNjlhOGQ2NDIuLjYzMGI0NDVjYjIzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNr dXAvcGdfYmFzZWJhY2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFj a3VwLmMKQEAgLTE4NzQsNiArMTg3NCw4IEBAIEJhc2VCYWNrdXAoY2hhciAqY29tcHJlc3Npb25f YWxnb3JpdGhtLCBjaGFyICpjb21wcmVzc2lvbl9kZXRhaWwsCiAJCWlmIChuYnl0ZXMgPCAwKQog CQkJcGdfZmF0YWwoImNvdWxkIG5vdCByZWFkIGZpbGUgXCIlc1wiOiAlbSIsIGluY3JlbWVudGFs X21hbmlmZXN0KTsKIAorCQljbG9zZShmZCk7CisKIAkJLyogRW5kIHRoZSBDT1BZIG9wZXJhdGlv bi4gKi8KIAkJaWYgKFBRcHV0Q29weUVuZChjb25uLCBOVUxMKSA8IDApCiAJCQlwZ19mYXRhbCgi Y291bGQgbm90IHNlbmQgZW5kLW9mLUNPUFk6ICVzIiwKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --00000000000019366f064d8f6819 Content-Type: application/octet-stream; name="v1-0001-basebackup-add-missing-deflateEnd-calls-in-gzip-comp.patch" Content-Disposition: attachment; filename="v1-0001-basebackup-add-missing-deflateEnd-calls-in-gzip-comp.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn0u2v470 RnJvbSA1ZDFlZGVjZWFmZDQyMjA3MmMxNzAyNmRmZDFmODYyYTE5ZmViNzkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaWFuZ2h1YSBZYW5nIDx5amhqc3R6QGdtYWlsLmNvbT4KRGF0 ZTogRnJpLCAyMCBNYXIgMjAyNiAwOTo1NzoxNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGJhc2Vi YWNrdXA6IGFkZCBtaXNzaW5nIGRlZmxhdGVFbmQoKSBjYWxscyBpbiBnemlwCiBjb21wcmVzc2lv biBzaW5rCgpUaGUgZ3ppcCBiYXNlYmFja3VwIHNpbmsgY2FsbGVkIGRlZmxhdGVJbml0MigpIGlu IGJlZ2luX2FyY2hpdmUgYnV0Cm5ldmVyIGNhbGxlZCBkZWZsYXRlRW5kKCksIGxlYWtpbmcgemxp YidzIGludGVybmFsIGNvbXByZXNzaW9uIHN0YXRlCih+MjU2S0IgcGVyIGFyY2hpdmUpIHVudGls IHRoZSBtZW1vcnkgY29udGV4dCB3YXMgZGVzdHJveWVkLiBJdCBhbHNvCmxhY2tlZCBhIGRlZGlj YXRlZCBjbGVhbnVwIGNhbGxiYWNrLCBzbyBvbiBFUlJPUiB0aGUgemxpYiBjb250ZXh0CndhcyBu b3QgcmVsZWFzZWQgYXQgYWxsLgoKQWRkIGRlZmxhdGVFbmQoKSBhdCB0aGUgZW5kIG9mIGJic2lu a19nemlwX2VuZF9hcmNoaXZlKCkgZm9yIHRoZQpub3JtYWwgcGF0aCwgYW5kIGFkZCBhIG5ldyBi YnNpbmtfZ3ppcF9jbGVhbnVwKCkgZnVuY3Rpb24gZm9yIHRoZQplcnJvciBwYXRoLiAgVGhpcyBi cmluZ3MgdGhlIGd6aXAgc2luayBpbiBsaW5lIHdpdGggdGhlIGx6NCBhbmQgenN0ZApzaW5rcywg d2hpY2ggYWxyZWFkeSBwcm9wZXJseSBmcmVlIHRoZWlyIGNvbXByZXNzaW9uIGNvbnRleHRzIGlu IGJvdGgKZW5kX2FyY2hpdmUgYW5kIGNsZWFudXAgY2FsbGJhY2tzLgoKQXV0aG9yOiBKaWFuZ2h1 YSBZYW5nIDx5amhqc3R6QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJh Y2t1cF9nemlwLmMgfCAyNyArKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFu Z2VkLCAyNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYmFja3VwL2Jhc2ViYWNrdXBfZ3ppcC5jIGIvc3JjL2JhY2tlbmQvYmFja3VwL2Jhc2Vi YWNrdXBfZ3ppcC5jCmluZGV4IDFiYTI1MDE1YWI3Li5jMjY0YTgzMzQyOSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYmFja3VwL2Jhc2ViYWNrdXBfZ3ppcC5jCisrKyBiL3NyYy9iYWNrZW5kL2Jh Y2t1cC9iYXNlYmFja3VwX2d6aXAuYwpAQCAtMzIsNiArMzIsOSBAQCB0eXBlZGVmIHN0cnVjdCBi YnNpbmtfZ3ppcAogCiAJLyogTnVtYmVyIG9mIGJ5dGVzIHN0YWdlZCBpbiBvdXRwdXQgYnVmZmVy LiAqLwogCXNpemVfdAkJYnl0ZXNfd3JpdHRlbjsKKworCS8qIEhhcyB0aGUgenN0cmVhbSBiZWVu IGluaXRpYWxpemVkIHdpdGggZGVmbGF0ZUluaXQyPyAqLworCWJvb2wJCXpzdHJlYW1faW5pdGlh bGl6ZWQ7CiB9IGJic2lua19nemlwOwogCiBzdGF0aWMgdm9pZCBiYnNpbmtfZ3ppcF9iZWdpbl9i YWNrdXAoYmJzaW5rICpzaW5rKTsKQEAgLTM5LDYgKzQyLDcgQEAgc3RhdGljIHZvaWQgYmJzaW5r X2d6aXBfYmVnaW5fYXJjaGl2ZShiYnNpbmsgKnNpbmssIGNvbnN0IGNoYXIgKmFyY2hpdmVfbmFt ZSk7CiBzdGF0aWMgdm9pZCBiYnNpbmtfZ3ppcF9hcmNoaXZlX2NvbnRlbnRzKGJic2luayAqc2lu aywgc2l6ZV90IGxlbik7CiBzdGF0aWMgdm9pZCBiYnNpbmtfZ3ppcF9tYW5pZmVzdF9jb250ZW50 cyhiYnNpbmsgKnNpbmssIHNpemVfdCBsZW4pOwogc3RhdGljIHZvaWQgYmJzaW5rX2d6aXBfZW5k X2FyY2hpdmUoYmJzaW5rICpzaW5rKTsKK3N0YXRpYyB2b2lkIGJic2lua19nemlwX2NsZWFudXAo YmJzaW5rICpzaW5rKTsKIHN0YXRpYyB2b2lkICpnemlwX3BhbGxvYyh2b2lkICpvcGFxdWUsIHVu c2lnbmVkIGl0ZW1zLCB1bnNpZ25lZCBzaXplKTsKIHN0YXRpYyB2b2lkIGd6aXBfcGZyZWUodm9p ZCAqb3BhcXVlLCB2b2lkICphZGRyZXNzKTsKIApAQCAtNTEsNyArNTUsNyBAQCBzdGF0aWMgY29u c3QgYmJzaW5rX29wcyBiYnNpbmtfZ3ppcF9vcHMgPSB7CiAJLm1hbmlmZXN0X2NvbnRlbnRzID0g YmJzaW5rX2d6aXBfbWFuaWZlc3RfY29udGVudHMsCiAJLmVuZF9tYW5pZmVzdCA9IGJic2lua19m b3J3YXJkX2VuZF9tYW5pZmVzdCwKIAkuZW5kX2JhY2t1cCA9IGJic2lua19mb3J3YXJkX2VuZF9i YWNrdXAsCi0JLmNsZWFudXAgPSBiYnNpbmtfZm9yd2FyZF9jbGVhbnVwCisJLmNsZWFudXAgPSBi YnNpbmtfZ3ppcF9jbGVhbnVwCiB9OwogI2VuZGlmCiAKQEAgLTE0MSw2ICsxNDUsNyBAQCBiYnNp bmtfZ3ppcF9iZWdpbl9hcmNoaXZlKGJic2luayAqc2luaywgY29uc3QgY2hhciAqYXJjaGl2ZV9u YW1lKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCWVycmNvZGUoRVJSQ09ERV9JTlRFUk5BTF9FUlJP UiksCiAJCQkJZXJybXNnKCJjb3VsZCBub3QgaW5pdGlhbGl6ZSBjb21wcmVzc2lvbiBsaWJyYXJ5 IikpOworCW15c2luay0+enN0cmVhbV9pbml0aWFsaXplZCA9IHRydWU7CiAKIAkvKgogCSAqIEFk ZCAiLmd6IiB0byB0aGUgYXJjaGl2ZSBuYW1lLiBOb3RlIHRoYXQgdGhlIHBnX2Jhc2ViYWNrdXAg LXogcHJvZHVjZXMKQEAgLTI2Niw2ICsyNzEsMTAgQEAgYmJzaW5rX2d6aXBfZW5kX2FyY2hpdmUo YmJzaW5rICpzaW5rKQogCQlteXNpbmstPmJ5dGVzX3dyaXR0ZW4gPSAwOwogCX0KIAorCS8qIFJl bGVhc2UgdGhlIGNvbXByZXNzaW9uIHJlc291cmNlcy4gKi8KKwlkZWZsYXRlRW5kKHpzKTsKKwlt eXNpbmstPnpzdHJlYW1faW5pdGlhbGl6ZWQgPSBmYWxzZTsKKwogCS8qIE11c3QgYWxzbyBwYXNz IG9uIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoaXMgYXJjaGl2ZSBoYXMgZW5kZWQuICovCiAJYmJz aW5rX2ZvcndhcmRfZW5kX2FyY2hpdmUoc2luayk7CiB9CkBAIC0zMDEsNCArMzEwLDIwIEBAIGd6 aXBfcGZyZWUodm9pZCAqb3BhcXVlLCB2b2lkICphZGRyZXNzKQogCXBmcmVlKGFkZHJlc3MpOwog fQogCisvKgorICogSW4gY2FzZSB0aGUgYmFja3VwIGZhaWxzLCBtYWtlIHN1cmUgd2UgZnJlZSB0 aGUgY29tcHJlc3Npb24gY29udGV4dCBieQorICogY2FsbGluZyBkZWZsYXRlRW5kKCkgaWYgbmVl ZGVkIHRvIGF2b2lkIGEgcmVzb3VyY2UgbGVhay4KKyAqLworc3RhdGljIHZvaWQKK2Jic2lua19n emlwX2NsZWFudXAoYmJzaW5rICpzaW5rKQoreworCWJic2lua19nemlwICpteXNpbmsgPSAoYmJz aW5rX2d6aXAgKikgc2luazsKKworCWlmIChteXNpbmstPnpzdHJlYW1faW5pdGlhbGl6ZWQpCisJ eworCQlkZWZsYXRlRW5kKCZteXNpbmstPnpzdHJlYW0pOworCQlteXNpbmstPnpzdHJlYW1faW5p dGlhbGl6ZWQgPSBmYWxzZTsKKwl9Cit9CisKICNlbmRpZgotLSAKMi41MC4xIChBcHBsZSBHaXQt MTU1KQoK --00000000000019366f064d8f6819--