Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jTLpE-0005Vu-AD for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Apr 2020 08:42:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jTLpB-0000fd-Rn for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Apr 2020 08:42:41 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jTLpB-0000fW-Km for pgsql-hackers@lists.postgresql.org; Tue, 28 Apr 2020 08:42:41 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jTLp8-000781-FV for pgsql-hackers@postgresql.org; Tue, 28 Apr 2020 08:42:41 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTP id 764E26069A; Tue, 28 Apr 2020 17:42:32 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.2 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_7f6008c2d07b5d0e1db5bde545a53389" Date: Tue, 28 Apr 2020 17:42:32 +0900 From: Masahiro Ikeda To: Michael Paquier , Fujii Masao Cc: pgsql-hackers@postgresql.org Subject: Re: Why are wait events not reported even though it reads/writes a timeline history file? In-Reply-To: <20200428060958.GG279958@paquier.xyz> References: <3480dda4f5a043d8819de9e8653dc331@oss.nttdata.com> <20200428060958.GG279958@paquier.xyz> Message-ID: <24cc681e7048f984e490f5d01f7ead19@oss.nttdata.com> X-Sender: ikedamsh@oss.nttdata.com User-Agent: Roundcube Webmail/1.1.9 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=_7f6008c2d07b5d0e1db5bde545a53389 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2020-04-28 15:09, Michael Paquier wrote: > On Tue, Apr 28, 2020 at 02:49:00PM +0900, Fujii Masao wrote: >> Isn't it safer to report the wait event during fgets() rather than >> putting >> those calls around the whole loop, like other code does? For example, >> writeTimeLineHistory() reports the wait event during read() rather >> than >> whole loop. > > Yeah, I/O wait events should be taken only during the duration of the > system calls. Particularly here, you may finish with an elog() that > causes the wait event to be set longer than it should, leading to a > rather incorrect state if a snapshot of pg_stat_activity is taken. > -- Thanks for your comments. I fixed it to report the wait event during fgets() only. Please review the v2 patch I attached. Regard, -- Masahiro Ikeda --=_7f6008c2d07b5d0e1db5bde545a53389 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v2-0001-Fix-to-report-wait-events-about-timeline-history-.patch Content-Disposition: attachment; filename=v2-0001-Fix-to-report-wait-events-about-timeline-history-.patch; size=1725 RnJvbSAyMGI2ZWI1YmI3YWY1NzRlNDM5NWY2NTM5MTdkYjVhNTRkMTNkN2Q1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlybyBJa2VkYSA8aWtlZGFtc2hAbnR0ZGF0YS5jby5q cD4KRGF0ZTogVHVlLCAyOCBBcHIgMjAyMCAwMTozOToyNSArMDAwMApTdWJqZWN0OiBbUEFUQ0gg djJdIEZpeCB0byByZXBvcnQgd2FpdCBldmVudHMgYWJvdXQgdGltZWxpbmUgaGlzdG9yeSBmaWxl LgoKRXZlbiB0aG91Z2ggYSB0aW1lbGluZSBoaXN0b3J5IGZpbGUgaXMgcmVhZCBvciB3cml0dGVu LApzb21lIHdhaXQgZXZlbnRzIGFyZSBub3QgcmVwb3J0ZWQuIFRoaXMgcGF0Y2ggZml4ZXMgdGhv c2UgaXNzdWVzLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3RpbWVsaW5lLmMgfCAx MSArKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90aW1lbGluZS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdGltZWxpbmUuYwppbmRleCBkZTU3ZDY5Li4z ZTFiOTBmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90aW1lbGluZS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3RpbWVsaW5lLmMKQEAgLTEyMyw4ICsx MjMsMTUgQEAgcmVhZFRpbWVMaW5lSGlzdG9yeShUaW1lTGluZUlEIHRhcmdldFRMSSkKIAkgKiBQ YXJzZSB0aGUgZmlsZS4uLgogCSAqLwogCXByZXZlbmQgPSBJbnZhbGlkWExvZ1JlY1B0cjsKLQl3 aGlsZSAoZmdldHMoZmxpbmUsIHNpemVvZihmbGluZSksIGZkKSAhPSBOVUxMKQorCWZvciAoOzsp CiAJeworCQljaGFyCSAgICpyZXN1bHQ7CisJCXBnc3RhdF9yZXBvcnRfd2FpdF9zdGFydChXQUlU X0VWRU5UX1RJTUVMSU5FX0hJU1RPUllfUkVBRCk7CisJCXJlc3VsdCA9IGZnZXRzKGZsaW5lLCBz aXplb2YoZmxpbmUpLCBmZCk7CisJCXBnc3RhdF9yZXBvcnRfd2FpdF9lbmQoKTsKKwkJaWYgKHJl c3VsdCA9PSBOVUxMKQorCQkJYnJlYWs7CisKIAkJLyogc2tpcCBsZWFkaW5nIHdoaXRlc3BhY2Ug YW5kIGNoZWNrIGZvciAjIGNvbW1lbnQgKi8KIAkJY2hhcgkgICAqcHRyOwogCQlUaW1lTGluZUlE CXRsaTsKQEAgLTM5Myw2ICs0MDAsNyBAQCB3cml0ZVRpbWVMaW5lSGlzdG9yeShUaW1lTGluZUlE IG5ld1RMSSwgVGltZUxpbmVJRCBwYXJlbnRUTEksCiAKIAluYnl0ZXMgPSBzdHJsZW4oYnVmZmVy KTsKIAllcnJubyA9IDA7CisJcGdzdGF0X3JlcG9ydF93YWl0X3N0YXJ0KFdBSVRfRVZFTlRfVElN RUxJTkVfSElTVE9SWV9XUklURSk7CiAJaWYgKChpbnQpIHdyaXRlKGZkLCBidWZmZXIsIG5ieXRl cykgIT0gbmJ5dGVzKQogCXsKIAkJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOwpAQCAtNDA4LDYg KzQxNiw3IEBAIHdyaXRlVGltZUxpbmVIaXN0b3J5KFRpbWVMaW5lSUQgbmV3VExJLCBUaW1lTGlu ZUlEIHBhcmVudFRMSSwKIAkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKIAkJCQkgZXJy bXNnKCJjb3VsZCBub3Qgd3JpdGUgdG8gZmlsZSBcIiVzXCI6ICVtIiwgdG1wcGF0aCkpKTsKIAl9 CisJcGdzdGF0X3JlcG9ydF93YWl0X2VuZCgpOwogCiAJcGdzdGF0X3JlcG9ydF93YWl0X3N0YXJ0 KFdBSVRfRVZFTlRfVElNRUxJTkVfSElTVE9SWV9TWU5DKTsKIAlpZiAocGdfZnN5bmMoZmQpICE9 IDApCi0tIAoyLjkuNQoK --=_7f6008c2d07b5d0e1db5bde545a53389--