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.94.2) (envelope-from ) id 1uAdrk-000BuT-1A for pgsql-hackers@arkaria.postgresql.org; Fri, 02 May 2025 00:02:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uAdrh-0066D7-D7 for pgsql-hackers@arkaria.postgresql.org; Fri, 02 May 2025 00:02:54 +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.94.2) (envelope-from ) id 1uAdrh-0066Cz-2W for pgsql-hackers@lists.postgresql.org; Fri, 02 May 2025 00:02:54 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uAdrd-000bV7-2B for pgsql-hackers@lists.postgresql.org; Fri, 02 May 2025 00:02:51 +0000 Received: from [192.168.11.5] (p1696134-ipoe.ipoe.ocn.ne.jp [118.0.93.133]) by oss.nttdata.com (Postfix) with ESMTPSA id B7CB961ACD; Fri, 2 May 2025 09:02:44 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com Content-Type: multipart/mixed; boundary="------------3yoARhok5oKEy8n2zlis6G20" Message-ID: <1983bca8-e1c4-45cd-9fd4-de38cd7b5896@oss.nttdata.com> Date: Fri, 2 May 2025 09:02:43 +0900 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: pgsql: Add function to log the memory contexts of specified backend pro From: Fujii Masao To: Robert Haas Cc: PostgreSQL Hackers References: Content-Language: en-US In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------3yoARhok5oKEy8n2zlis6G20 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 2025/05/02 2:27, Fujii Masao wrote: > > > On 2025/05/01 21:42, Robert Haas wrote: >> On Thu, May 1, 2025 at 3:53 AM Fujii Masao wrote: >>> Just idea, what do you think about adding a flag to indicate whether >>> ProcessLogMemoryContextInterrupt() is currently running? Then, >>> when a backend receives a signal and ProcessLogMemoryContextInterrupt() >>> is invoked, it can simply return immediately if the flag is already set >>> like this: >> >> I think that something like this could work, but you would need more >> than this. Otherwise, if the function errors out, the flag would >> remain permanently set. > > Yes, we need to either use PG_TRY()/PG_FINALLY() or handle the flag as > a global variable and reset it in the error handling path. I think using > PG_TRY()/PG_FINALLY() is the simpler option. I've implemented the patch in that way. Patch attached. Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION --------------3yoARhok5oKEy8n2zlis6G20 Content-Type: text/plain; charset=UTF-8; name="v1-0001-Add-guard-to-prevent-recursive-memory-contexts-lo.patch" Content-Disposition: attachment; filename*0="v1-0001-Add-guard-to-prevent-recursive-memory-contexts-lo.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1YTY1MjgwZDEwZmVjNmU0YzU1NzdlMjZlZWRkZWIxMGM5ZGRiMTNmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBNYXNhbyA8ZnVqaWlAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IEZyaSwgMiBNYXkgMjAyNSAwMDozNTo0OCArMDkwMApTdWJqZWN0OiBbUEFU Q0ggdjFdIEFkZCBndWFyZCB0byBwcmV2ZW50IHJlY3Vyc2l2ZSBtZW1vcnkgY29udGV4dHMg bG9nZ2luZy4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBj aGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClByZXZpb3Vz bHksIGlmIG1lbW9yeSBjb250ZXh0cyBsb2dnaW5nIHdhcyB0cmlnZ2VyZWQgcmVwZWF0ZWRs eSBhbmQKcmFwaWRseSB3aGlsZSBhIHByZXZpb3VzIHJlcXVlc3Qgd2FzIHN0aWxsIGJlaW5n IHByb2Nlc3NlZCwgaXQgY291bGQKcmVzdWx0IGluIHJlY3Vyc2l2ZSBjYWxscyB0byBQcm9j ZXNzTG9nTWVtb3J5Q29udGV4dEludGVycnVwdCgpLgpUaGlzIGNvdWxkIGxlYWQgdG8gaW5m aW5pdGUgcmVjdXJzaW9uIGFuZCBwb3RlbnRpYWxseSBjcmFzaCB0aGUgcHJvY2Vzcy4KClRo aXMgY29tbWl0IGFkZHMgYSBndWFyZCB0byBwcmV2ZW50IHN1Y2ggcmVjdXJzaW9uLgpJZiBQ cm9jZXNzTG9nTWVtb3J5Q29udGV4dEludGVycnVwdCgpIGlzIGFscmVhZHkgaW4gcHJvZ3Jl c3MgYW5kCmxvZ2dpbmcgbWVtb3J5IGNvbnRleHRzLCBzdWJzZXF1ZW50IGNhbGxzIHdpbGwg ZXhpdCBpbW1lZGlhdGVseSwKYXZvaWRpbmcgdW5pbnRlbmRlZCByZWN1cnNpdmUgY2FsbHMu CgpXaGlsZSB0aGlzIHNjZW5hcmlvIGlzIHVubGlrZWx5IGluIHByYWN0aWNlLCBpdOKAmXMg bm90IGltcG9zc2libGUuClRoaXMgY2hhbmdlIGFkZHMgYSBzYWZldHkgY2hlY2sgdG8gcHJl dmVudCBzdWNoIGZhaWx1cmVzLgoKQmFjay1wYXRjaCB0byB2MTQsIHdoZXJlIG1lbW9yeSBj b250ZXh0cyBsb2dnaW5nIHdhcyBpbnRyb2R1Y2VkLgotLS0KIHNyYy9iYWNrZW5kL3V0aWxz L21tZ3IvbWN4dC5jIHwgNjEgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL21jeHQuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL21tZ3IvbWN4dC5jCmluZGV4IDdkMjhjYTcwNmViLi45MDdjN2Y3YWZmZSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9tY3h0LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvbW1nci9tY3h0LmMKQEAgLTEzODMsMjkgKzEzODMsNTAgQEAgSGFuZGxlR2V0 TWVtb3J5Q29udGV4dEludGVycnVwdCh2b2lkKQogdm9pZAogUHJvY2Vzc0xvZ01lbW9yeUNv bnRleHRJbnRlcnJ1cHQodm9pZCkKIHsKKwlzdGF0aWMgYm9vbCBpbl9wcm9ncmVzcyA9IGZh bHNlOworCiAJTG9nTWVtb3J5Q29udGV4dFBlbmRpbmcgPSBmYWxzZTsKIAotCS8qCi0JICog VXNlIExPR19TRVJWRVJfT05MWSB0byBwcmV2ZW50IHRoaXMgbWVzc2FnZSBmcm9tIGJlaW5n IHNlbnQgdG8gdGhlCi0JICogY29ubmVjdGVkIGNsaWVudC4KLQkgKi8KLQllcmVwb3J0KExP R19TRVJWRVJfT05MWSwKLQkJCShlcnJoaWRlc3RtdCh0cnVlKSwKLQkJCSBlcnJoaWRlY29u dGV4dCh0cnVlKSwKLQkJCSBlcnJtc2coImxvZ2dpbmcgbWVtb3J5IGNvbnRleHRzIG9mIFBJ RCAlZCIsIE15UHJvY1BpZCkpKTsKKwlQR19UUlkoKTsKKwl7CisJCS8qCisJCSAqIEV4aXQg aW1tZWRpYXRlbHkgaWYgbWVtb3J5IGNvbnRleHRzIGxvZ2dpbmcgaXMgYWxyZWFkeSBpbiBw cm9ncmVzcy4KKwkJICogVGhpcyBwcmV2ZW50cyByZWN1cnNpdmUgY2FsbHMsIHdoaWNoIGNv dWxkIG9jY3VyIGlmIGxvZ2dpbmcgaXMKKwkJICogcmVxdWVzdGVkICByZXBlYXRlZGx5IGFu ZCByYXBpZGx5LCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIGluZmluaXRlCisJCSAqIHJlY3Vy c2lvbiBhbmQgYSBjcmFzaC4KKwkJICovCisJCWlmIChpbl9wcm9ncmVzcykKKwkJCXJldHVy bjsKKwkJaW5fcHJvZ3Jlc3MgPSB0cnVlOwogCi0JLyoKLQkgKiBXaGVuIGEgYmFja2VuZCBw cm9jZXNzIGlzIGNvbnN1bWluZyBodWdlIG1lbW9yeSwgbG9nZ2luZyBhbGwgaXRzIG1lbW9y eQotCSAqIGNvbnRleHRzIG1pZ2h0IG92ZXJydW4gYXZhaWxhYmxlIGRpc2sgc3BhY2UuIFRv IHByZXZlbnQgdGhpcywgd2UgbGltaXQKLQkgKiB0aGUgZGVwdGggb2YgdGhlIGhpZXJhcmNo eSwgYXMgd2VsbCBhcyB0aGUgbnVtYmVyIG9mIGNoaWxkIGNvbnRleHRzIHRvCi0JICogbG9n IHBlciBwYXJlbnQgdG8gMTAwLgotCSAqCi0JICogQXMgd2l0aCBNZW1vcnlDb250ZXh0U3Rh dHMoKSwgd2Ugc3VwcG9zZSB0aGF0IHByYWN0aWNhbCBjYXNlcyB3aGVyZSB0aGUKLQkgKiBk dW1wIGdldHMgbG9uZyB3aWxsIHR5cGljYWxseSBiZSBodWdlIG51bWJlcnMgb2Ygc2libGlu Z3MgdW5kZXIgdGhlCi0JICogc2FtZSBwYXJlbnQgY29udGV4dDsgd2hpbGUgdGhlIGFkZGl0 aW9uYWwgZGVidWdnaW5nIHZhbHVlIGZyb20gc2VlaW5nCi0JICogZGV0YWlscyBhYm91dCBp bmRpdmlkdWFsIHNpYmxpbmdzIGJleW9uZCAxMDAgd2lsbCBub3QgYmUgbGFyZ2UuCi0JICov Ci0JTWVtb3J5Q29udGV4dFN0YXRzRGV0YWlsKFRvcE1lbW9yeUNvbnRleHQsIDEwMCwgMTAw LCBmYWxzZSk7CisJCS8qCisJCSAqIFVzZSBMT0dfU0VSVkVSX09OTFkgdG8gcHJldmVudCB0 aGlzIG1lc3NhZ2UgZnJvbSBiZWluZyBzZW50IHRvIHRoZQorCQkgKiBjb25uZWN0ZWQgY2xp ZW50LgorCQkgKi8KKwkJZXJlcG9ydChMT0dfU0VSVkVSX09OTFksCisJCQkJKGVycmhpZGVz dG10KHRydWUpLAorCQkJCSBlcnJoaWRlY29udGV4dCh0cnVlKSwKKwkJCQkgZXJybXNnKCJs b2dnaW5nIG1lbW9yeSBjb250ZXh0cyBvZiBQSUQgJWQiLCBNeVByb2NQaWQpKSk7CisKKwkJ LyoKKwkJICogV2hlbiBhIGJhY2tlbmQgcHJvY2VzcyBpcyBjb25zdW1pbmcgaHVnZSBtZW1v cnksIGxvZ2dpbmcgYWxsIGl0cworCQkgKiBtZW1vcnkgY29udGV4dHMgbWlnaHQgb3ZlcnJ1 biBhdmFpbGFibGUgZGlzayBzcGFjZS4gVG8gcHJldmVudAorCQkgKiB0aGlzLCB3ZSBsaW1p dCB0aGUgZGVwdGggb2YgdGhlIGhpZXJhcmNoeSwgYXMgd2VsbCBhcyB0aGUgbnVtYmVyIG9m CisJCSAqIGNoaWxkIGNvbnRleHRzIHRvIGxvZyBwZXIgcGFyZW50IHRvIDEwMC4KKwkJICoK KwkJICogQXMgd2l0aCBNZW1vcnlDb250ZXh0U3RhdHMoKSwgd2Ugc3VwcG9zZSB0aGF0IHBy YWN0aWNhbCBjYXNlcyB3aGVyZQorCQkgKiB0aGUgZHVtcCBnZXRzIGxvbmcgd2lsbCB0eXBp Y2FsbHkgYmUgaHVnZSBudW1iZXJzIG9mIHNpYmxpbmdzIHVuZGVyCisJCSAqIHRoZSBzYW1l IHBhcmVudCBjb250ZXh0OyB3aGlsZSB0aGUgYWRkaXRpb25hbCBkZWJ1Z2dpbmcgdmFsdWUg ZnJvbQorCQkgKiBzZWVpbmcgZGV0YWlscyBhYm91dCBpbmRpdmlkdWFsIHNpYmxpbmdzIGJl eW9uZCAxMDAgd2lsbCBub3QgYmUKKwkJICogbGFyZ2UuCisJCSAqLworCQlNZW1vcnlDb250 ZXh0U3RhdHNEZXRhaWwoVG9wTWVtb3J5Q29udGV4dCwgMTAwLCAxMDAsIGZhbHNlKTsKKwl9 CisJUEdfRklOQUxMWSgpOworCXsKKwkJaW5fcHJvZ3Jlc3MgPSBmYWxzZTsKKwl9CisJUEdf RU5EX1RSWSgpOwogfQogCiAvKgotLSAKMi40OS4wCgo= --------------3yoARhok5oKEy8n2zlis6G20--