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 1w7LEu-005CXh-3B for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Mar 2026 22:37:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w7LEt-006uze-1e for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Mar 2026 22:37:43 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w7LEt-006uzV-0S for pgsql-hackers@lists.postgresql.org; Mon, 30 Mar 2026 22:37:43 +0000 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w7LEp-000000024V6-3zQA for pgsql-hackers@postgresql.org; Mon, 30 Mar 2026 22:37:43 +0000 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-66b941ebe79so3682931a12.1 for ; Mon, 30 Mar 2026 15:37:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774910259; cv=none; d=google.com; s=arc-20240605; b=OvXNpsBrOuxjkU5VVrQ2s/BG6bSGlUA2tvppuFHMR+pY1VeIRhoGtcdKShvjYnIBn6 KUcnzANDE4XgxucH2tFDlqq9x82xRnr+MhBYt7o2300KZpV9SqE9BiCOna6ejMd5987a pwkewzEKT79k/xmolDbcZXEcM+mTBtxvGxHXanjk57Fwq8HetxR8+wMRQsA9ciT4Nx2E w5o/c+87Izacy1MuOIvav1iUGo+FT0NqFk1FBx/Sz+5g7cdSxpaqhQ7SZuS6vtsqMFA8 jDYb5Hd5MIcS9euInlQNyKqMEMk65piIHlEdvu6d5d1/iZkgnOF2/viER9qhHgekg+N6 +3Rw== 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=FljMoLghq0FpVhxI0ahgLYvGN6skhADu3xL1v6koolA=; fh=wkQy+WrqSBAfA6ok00djvaM5LusvhT472hGmCz94tlM=; b=OzpZhbmT3HMVW6af3c57/G/w/J7HcVqYivjHiAy7RNYoKyu01+79lqeW8I+jswO/yn h8ZCw5QNgHHUCbV6DGZkPdgWigQIDOMOEOHhCDM8vTz0NA8FHLrGpo3a9peoj1pk94cm diyqsoI3oTtXe8nGpAcZsHDGeCY38SWFnF58UszXTH0dZIEFXUNTRJs4m5AT5ZCAQYFh dmDds8qEGvQBFBovjPaE2Puj6LUTZAfHN7hj2ZtY3fntH9MM7oRH7xNcCmr4ckdBrgXq EwBUUEzY9gzn8y0Xqx55s51V7PWC8R5ZXL9mxwxPmssKXDy/8/vFUJPJuNDkHazjgQw5 kcdA==; darn=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=20251104; t=1774910259; x=1775515059; darn=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=FljMoLghq0FpVhxI0ahgLYvGN6skhADu3xL1v6koolA=; b=UH0aK1SvfZ1hu5zR5spAU4L55bu9YWBggqx94LDf3sz5mR8e//ul8vcqjuM/7MvKMJ pPMFUzlo1rbsPAQELnn39vhf8/vdibbEqVk6i8TAFdzyFSQucOjbtRj4oGDM0zVbFyzc EeZdjdqAVUm/VHvmrgTzL+GeN1J+M0JJPcD5X8Rb54XIW2hxzfbui4NqIzgz4cp6OR3D k2Jz/QQyn8AJww3N7xGsSwixSerPuL3UVq/DlkXADJXzzGsJa2kW5RQ7uivrecpnKcTB vpRRHuhOysEYS/8RG4S/WQxYjSI6b4pBWbjfqREres97sPXqyiDTlb1sj3t8175KOkqT kxcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774910259; x=1775515059; 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=FljMoLghq0FpVhxI0ahgLYvGN6skhADu3xL1v6koolA=; b=tTy1TT/lzAavGFT/6LXqXyODNc5jaEx7zN+qNWldZs+RdhNabyS8qL03NlDDBIwqrb eydkAgyLdxkfKjkoJxjdcuU7EsIi+2BE1BtekMCkr5lkundnTjJc62qM81/I6SyEJ34B sYfyWluvLjCdCGqpIT5y+rimHpLBbpFEcnSrzU7tAaFnSDNCt36ZiZ8HWjreBSduhR0C eJAyaH1mNpQL4n4aRAG/oHwqfLDWov9oN0lolFCb6FO4abo9DshLYRmzHwTUTsIVUHLz 1qyhYin3pbWTuvRi4Zz4e3ZaoDSpqUBMCG06B49/i/lY6U9uMMTw5HtwfznTAUE1dSya v/Bw== X-Forwarded-Encrypted: i=1; AJvYcCWxXzZZ5x9Q0JmgLV3PHxqYG4toEhBMQBveKsp62fkVWsqefZYTn4kjqreSemgDuKuL7SZYELUp+w+jwS1h@postgresql.org X-Gm-Message-State: AOJu0YxQcZH7kTIcVfXEFAGYRgiTeHhr7eau8SlukDBVZVBBYJb2vudg ccxwdILeJsirblnkuLdwa8Fv2MbCC7goNiReyo87aqz8gnaf0iejm2oZyeiClAP2v6tjTgfr06r tsYootIh0VIQNWoM2d1NOyXv75gjrKHnDcA== X-Gm-Gg: ATEYQzy4GlrLpeXNj5Z+unDj+EO0e+sitVoptDzw4W6AHY/xWj9RZVTyGCyZGo353QG 1QXggZ4QYi7PnRPTciRdWo4jfEMKZS2F41OgJx+mq65VsPGj3xMsmCQYdiB+e8HXyXb4f27iBsL 4A+eS8dWMBXu3qmZUs8h1nMHkekNPNEKFebN5vxB2M8MdEyVRFcvFIqJI0Ii+Mt58Nah6iBhfj8 ZargOe9b1I4BGgmqPMcdaUTSBVS8mrBfBn+p5BvCHt/hW+q6pVyEiOzfcVX92Z7brVT7E/e7z1s Uvt1PXsAN4ZylBiSK0hx1gktxiUdqUohpg5U8rf42ssjDyVeDxK2lnkUrLnsD1sMebUm8WkmzQS KltDJsXuX X-Received: by 2002:a05:6402:a0c3:b0:669:afeb:a6ed with SMTP id 4fb4d7f45d1cf-66b28c52a6bmr6624671a12.17.1774910258874; Mon, 30 Mar 2026 15:37:38 -0700 (PDT) MIME-Version: 1.0 References: <42rdu4q44kvsq53fz5qgzuawqpaytvnemsnquynlfch5mqhc2m@6ytnlgivtzro> <9ce8f5d8-8ab2-4aa2-b062-c5d74161069c@gmail.com> In-Reply-To: From: Melanie Plageman Date: Mon, 30 Mar 2026 18:37:27 -0400 X-Gm-Features: AQROBzAeIQFnGMEQOOcZTMxCAstb0f73BtdsDr0NXp9X9zK0V9YpBJIjNRz9e8k Message-ID: Subject: Re: Don't synchronously wait for already-in-progress IO in read stream To: Alexander Lakhin Cc: Andres Freund , Nazir Bilal Yavuz , Thomas Munro , pgsql-hackers@postgresql.org, Peter Geoghegan , Tomas Vondra Content-Type: multipart/mixed; boundary="0000000000007d5304064e457ff6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007d5304064e457ff6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Mar 30, 2026 at 3:14=E2=80=AFPM Melanie Plageman wrote: > > On Mon, Mar 30, 2026 at 3:00=E2=80=AFPM Alexander Lakhin wrote: > > > > As copperhead showed [1], tests added in 020c02bd9 fail when postgres i= s > > built without --enable-cassert. I've reproduced the failure locally wit= h: > > Yes, it's because read_buffers() (in test_aio.c) uses > operation->nblocks and that's only intialized for buffer hits in > assert builds. The test code could just use the correctly initialized > nblocks out parameter. Fix was a little more invasive than that. Looks like we were using operation in more places than I thought. See attached. - Melanie --0000000000007d5304064e457ff6 Content-Type: text/x-patch; charset="US-ASCII"; name="v1-0001-Fix-test_aio-read_buffers-to-work-without-cassert.patch" Content-Disposition: attachment; filename="v1-0001-Fix-test_aio-read_buffers-to-work-without-cassert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mndrq0760 RnJvbSA4ZGI1NjU2MmQxMzMwMGNhOGUxNjIwZmJjNGVhNGU2ZTMxMDJlM2ZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDMwIE1hciAyMDI2IDE4OjI1OjQ2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MV0gRml4IHRlc3RfYWlvIHJlYWRfYnVmZmVycygpIHRvIHdvcmsgd2l0aG91dCBjYXNz ZXJ0CgpJbiBhIHByb2R1Y3Rpb24gYnVpbGQsIFN0YXJ0UmVhZEJ1ZmZlcnMoKSBkb2Vzbid0IHBv cHVsYXRpb24gYWxsIGZpZWxkcwpvZiBhIFJlYWRCdWZmZXJzT3BlcmF0aW9uIGZvciBhIGJ1ZmZl ciBoaXQgYmVjYXVzZSBubyBjYWxsZXJzIHVzZSB0aGVtCih0aGV5IGFyZSBwb3B1bGF0ZWQgaW4g YXNzZXJ0IGJ1aWxkcykuCgpUaGUgcmVhZF9idWZmZXJzKCkgdGVzdCBmdW5jdGlvbiByZWxpZWQg b24gc29tZSBvZiB0aGVzZSBmaWVsZHMsIHRob3VnaCwKc28gQUlPIHRlc3RzIGZhaWxlZCBvbiBu b24tYXNzZXJ0IGJ1aWxkcyAoZGlzY292ZXJlZCBvbiB0aGUKYnVpbGRmYXJtIGFmdGVyIGNvbW1p dCAwMjBjMDJiZDkwOCkuCgpGaXggYnkgdHJhY2tpbmcgdGhlIHJlcXVpcmVkIGluZm9ybWF0aW9u IG91cnNlbHZlcyBpbiByZWFkX2J1ZmZlcnMoKSBhbmQKYXZvaWRpbmcgcmVsaWFuY2Ugb24gdGhl IFJlYWRCdWZmZXJzT3BlcmF0aW9uIHVubGVzcyB3ZSBrbm93IHRoYXQgd2UgZGlkCklPLgoKUmVw b3J0ZWQtYnk6IEFsZXhhbmRlciBMYWtoaW4gPGV4Y2x1c2lvbkBnbWFpbC5jb20+CkRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vOWNlOGY1ZDgtOGFiMi00YWEyLWIwNjItYzVkNzQxNjEw NjljJTQwZ21haWwuY29tCi0tLQogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2Fpby90ZXN0X2Fpby5j IHwgMjIgKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlv bnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVz dF9haW8vdGVzdF9haW8uYyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9haW8vdGVzdF9haW8uYwpp bmRleCBhODI2NzE5MmNiNy4uZDc1MzA2ODExOTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9haW8vdGVzdF9haW8uYworKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYWlvL3Rl c3RfYWlvLmMKQEAgLTcxOSw2ICs3MTksNyBAQCByZWFkX2J1ZmZlcnMoUEdfRlVOQ1RJT05fQVJH UykKIAlCdWZmZXIJICAgKmJ1ZmZlcnM7CiAJRGF0dW0JICAgKmJ1ZmZlcnNfZGF0dW07CiAJYm9v bAkgICAqaW9fcmVxZHM7CisJaW50CQkgICAqbmJsb2Nrc19wZXJfaW87CiAKIAlBc3NlcnQobmJs b2NrcyA+IDApOwogCkBAIC03MjksNiArNzMwLDcgQEAgcmVhZF9idWZmZXJzKFBHX0ZVTkNUSU9O X0FSR1MpCiAJYnVmZmVycyA9IHBhbGxvYzAoc2l6ZW9mKEJ1ZmZlcikgKiBuYmxvY2tzKTsKIAli dWZmZXJzX2RhdHVtID0gcGFsbG9jMChzaXplb2YoRGF0dW0pICogbmJsb2Nrcyk7CiAJaW9fcmVx ZHMgPSBwYWxsb2MwKHNpemVvZihib29sKSAqIG5ibG9ja3MpOworCW5ibG9ja3NfcGVyX2lvID0g cGFsbG9jMChzaXplb2YoaW50KSAqIG5ibG9ja3MpOwogCiAJcmVsID0gcmVsYXRpb25fb3Blbihy ZWxpZCwgQWNjZXNzU2hhcmVMb2NrKTsKIAlzbWdyID0gUmVsYXRpb25HZXRTbWdyKHJlbCk7CkBA IC03NTQsNiArNzU2LDcgQEAgcmVhZF9idWZmZXJzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJCQkJ CQkJICBzdGFydGJsb2NrICsgbmJsb2Nrc19kb25lLAogCQkJCQkJCQkJCSAgJm5ibG9ja3NfdGhp c19pbywKIAkJCQkJCQkJCQkgIDApOworCQluYmxvY2tzX3Blcl9pb1tuaW9zXSA9IG5ibG9ja3Nf dGhpc19pbzsKIAkJbmlvcysrOwogCQluYmxvY2tzX2RvbmUgKz0gbmJsb2Nrc190aGlzX2lvOwog CX0KQEAgLTc3Nyw3ICs3ODAsNyBAQCByZWFkX2J1ZmZlcnMoUEdfRlVOQ1RJT05fQVJHUykKIAlm b3IgKGludCBuaW8gPSAwOyBuaW8gPCBuaW9zOyBuaW8rKykKIAl7CiAJCVJlYWRCdWZmZXJzT3Bl cmF0aW9uICpvcGVyYXRpb24gPSAmb3BlcmF0aW9uc1tuaW9dOwotCQlpbnQJCQluYmxvY2tzX3Ro aXNfaW8gPSBvcGVyYXRpb24tPm5ibG9ja3M7CisJCWludAkJCW5ibG9ja3NfdGhpc19pbyA9IG5i bG9ja3NfcGVyX2lvW25pb107CiAJCURhdHVtCQl2YWx1ZXNbNl0gPSB7MH07CiAJCWJvb2wJCW51 bGxzWzZdID0gezB9OwogCQlBcnJheVR5cGUgICpidWZmZXJzX2FycjsKQEAgLTc4NSw5ICs3ODgs OCBAQCByZWFkX2J1ZmZlcnMoUEdfRlVOQ1RJT05fQVJHUykKIAkJLyogY29udmVydCBidWZmZXIg YXJyYXkgdG8gZGF0dW0gYXJyYXkgKi8KIAkJZm9yIChpbnQgaSA9IDA7IGkgPCBuYmxvY2tzX3Ro aXNfaW87IGkrKykKIAkJewotCQkJQnVmZmVyCQlidWYgPSBvcGVyYXRpb24tPmJ1ZmZlcnNbaV07 CisJCQlCdWZmZXIJCWJ1ZiA9IGJ1ZmZlcnNbbmJsb2Nrc19kaXNwICsgaV07CiAKLQkJCUFzc2Vy dChidWZmZXJzW25ibG9ja3NfZGlzcCArIGldID09IGJ1Zik7CiAJCQlBc3NlcnQoQnVmZmVyR2V0 QmxvY2tOdW1iZXIoYnVmKSA9PSBzdGFydGJsb2NrICsgbmJsb2Nrc19kaXNwICsgaSk7CiAKIAkJ CWJ1ZmZlcnNfZGF0dW1bbmJsb2Nrc19kaXNwICsgaV0gPSBJbnQzMkdldERhdHVtKGJ1Zik7CkBA IC04MDksOCArODExLDggQEAgcmVhZF9idWZmZXJzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXZhbHVl c1syXSA9IEJvb2xHZXREYXR1bShpb19yZXFkc1tuaW9dKTsKIAkJbnVsbHNbMl0gPSBmYWxzZTsK IAotCQkvKiBmb3JlaWduIElPICovCi0JCXZhbHVlc1szXSA9IEJvb2xHZXREYXR1bShvcGVyYXRp b24tPmZvcmVpZ25faW8pOworCQkvKiBmb3JlaWduIElPIC0gb25seSB2YWxpZCB3aGVuIElPIHdh cyByZXF1aXJlZCAqLworCQl2YWx1ZXNbM10gPSBCb29sR2V0RGF0dW0oaW9fcmVxZHNbbmlvXSA/ IG9wZXJhdGlvbi0+Zm9yZWlnbl9pbyA6IGZhbHNlKTsKIAkJbnVsbHNbM10gPSBmYWxzZTsKIAog CQkvKiBuYmxvY2tzICovCkBAIC04MjcsMTMgKzgyOSw4IEBAIHJlYWRfYnVmZmVycyhQR19GVU5D VElPTl9BUkdTKQogCX0KIAogCS8qIHJlbGVhc2UgcGlucyBvbiBhbGwgdGhlIGJ1ZmZlcnMgKi8K LQlmb3IgKGludCBuaW8gPSAwOyBuaW8gPCBuaW9zOyBuaW8rKykKLQl7Ci0JCVJlYWRCdWZmZXJz T3BlcmF0aW9uICpvcGVyYXRpb24gPSAmb3BlcmF0aW9uc1tuaW9dOwotCi0JCWZvciAoaW50IGkg PSAwOyBpIDwgb3BlcmF0aW9uLT5uYmxvY2tzOyBpKyspCi0JCQlSZWxlYXNlQnVmZmVyKG9wZXJh dGlvbi0+YnVmZmVyc1tpXSk7Ci0JfQorCWZvciAoaW50IGkgPSAwOyBpIDwgbmJsb2Nrc19kb25l OyBpKyspCisJCVJlbGVhc2VCdWZmZXIoYnVmZmVyc1tpXSk7CiAKIAkvKgogCSAqIEZyZWUgZXhw bGljaXRseSwgdG8gaGF2ZSBhIGNoYW5jZSB0byBkZXRlY3QgcG90ZW50aWFsIGlzc3VlcyB3aXRo IHRvbwpAQCAtODQzLDYgKzg0MCw3IEBAIHJlYWRfYnVmZmVycyhQR19GVU5DVElPTl9BUkdTKQog CXBmcmVlKGJ1ZmZlcnMpOwogCXBmcmVlKGJ1ZmZlcnNfZGF0dW0pOwogCXBmcmVlKGlvX3JlcWRz KTsKKwlwZnJlZShuYmxvY2tzX3Blcl9pbyk7CiAKIAlyZWxhdGlvbl9jbG9zZShyZWwsIE5vTG9j ayk7CiAKLS0gCjIuNDMuMAoK --0000000000007d5304064e457ff6--