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 1w7Xvp-005Qk8-2x for pgsql-hackers@arkaria.postgresql.org; Tue, 31 Mar 2026 12:10:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w7Xvo-00A4JI-1N for pgsql-hackers@arkaria.postgresql.org; Tue, 31 Mar 2026 12:10:52 +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 1w7Xvn-00A4JA-3D for pgsql-hackers@lists.postgresql.org; Tue, 31 Mar 2026 12:10:52 +0000 Received: from mail-dy1-x1332.google.com ([2607:f8b0:4864:20::1332]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w7Xvm-00000001xqf-2auX for pgsql-hackers@lists.postgresql.org; Tue, 31 Mar 2026 12:10:51 +0000 Received: by mail-dy1-x1332.google.com with SMTP id 5a478bee46e88-2c7d8bbad06so1923201eec.1 for ; Tue, 31 Mar 2026 05:10:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774959048; cv=none; d=google.com; s=arc-20240605; b=kqBGSpUmdbGioM/oWIpLSdLA4JNgwpSmMrKZ8BULVKbKwwq1H6CtErGa9qqGcFZDsy CTPui9E7+HnW9LHO7bEIze17Lye9DTHwFjFCMVhM0VQwPblrefwbczHx5sUCsUjaRWh9 46VHaup3+MEjcwrVz+JI+jVnwBIxyoQkja+BWkmHIoRZ+F4T0/ArHiaulcuPWRcACgyc 86KJRPWrzczptAeoqp3ewF0rZg+hJNihvMmS8VguD4q1Tbm1iiJLYNt8ZI8g9DQAj0Rl IF+fk3gDxq3Dao6Y8KDK5QRiLg6I++fW1OYQhmmHDFxa9iG17aTVcuqjRvSOOYpFCzJl 8vpg== 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=teLPYl8WKhrsZqKVZm8a8bnbly7sUCaMfVNlT4bdbqI=; fh=it5bjjXn++csahmD8jXBSI13PrpBXxrvXhBmWefaen8=; b=bVlyztDVjFSeimXqga3VxQviWaKM2KIFtgRziVgQGJFZEWZcbEKihI6jJE12PmiB41 BSZVE9rsqWMDIHki82D8JMnWzRFQ5cmvRzuyLN+OChDa1Mw2CK8X8v8XpaHYo/KCaeOY FcQjrTV7A6tlX4XYhpiThUejk6ZOma2BT7YVqFlGV6taleWTJKntP9z+Tfqoif5Xg6Xy AMPYr+nkWQ6bPPrSFBurrii2NVf5tQ3O+LvCBHTrU3qGk26BIMgtST1iCyVCXnqgeSRG hKTGJk6E2WWxJ7qFFUz3jbwR4rqjz6Jht6WWqlkVZlzdZAymjt0vgDeVCRF/qx76nSnI 84EA==; 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=20251104; t=1774959048; x=1775563848; 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=teLPYl8WKhrsZqKVZm8a8bnbly7sUCaMfVNlT4bdbqI=; b=FTBolJURbYPqsm3GuTlG5hnzgkeCcg+x/i35FXx5GRqcDrYuei5O/sH1Z+LpDfciWt a7ynWTJ6A9CWYZMhTT+f3z5bhsOpwDulrunoKCl3RNO/DDY4bxBcSEFNXtfvLXyAVGcS NE1d6VqKUbZ5S6LyIJ67aiIqlQRcPHn5U3LiVcfrRIwwGnzQY7rto4CsLQ3bidJNwULZ otO/shKlsLLe3JYrWBEYGKI+fJT6yr1s2y5Jwof5mh2kbMiImotee1tJ1LfEfVmNqbsS iCiQ/XXu4w+wUT5ya9VckFR5etsPi5liD0NgaS9kIwxNYZ/B8F7wvckAsN2ulXr9yiTJ Rnzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774959048; x=1775563848; 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=teLPYl8WKhrsZqKVZm8a8bnbly7sUCaMfVNlT4bdbqI=; b=BSvnGv2SrlwFS+Gw2/hxGb7L0BnypgmQLb1ZC0mfRFf3/nvYxi8bkhgoHRJWrg+hFW l7ueWuqSlAFzUILrixof2TDQRPEp47b1ohwXsRyByyNQ4AycHwWhXG+9RBAoETCPlrvS IWio7JgzUivfqfbaZcXxbFoZuN8lg7mHojE4FV6sg2O7iSjbWmjKHWO242ijpVvWjmtT GnOHhHv728XKk+7ShrqFLg0uLImdcvjtdXK11ZIKZYifOy586vyUbP68PWrSpn+Dvi0d mKKqXaCxMHodUlmkZsqQsSuCJorPomFkxb8i1prPcCfAFfzAYgv4KkRkkPyWpnG8stwN 5ANA== X-Forwarded-Encrypted: i=1; AJvYcCUg1oOhlScLC82QFdQIKbBMN5PKsxVmqA7ESFT/MdtEwVLpbgrHjTkpXAWUy3/BhVBhIpAVd3AONSv0VgrG@lists.postgresql.org X-Gm-Message-State: AOJu0YwisdTk++B5mqUasb94sw9vv+FvdggXsdo9bk9OCwjY2/WZuEL3 pp+TjYk4YXW1BfqYO4pYgJmDA6ljce9v4WT/8l0RDYaVe+OaxAz31fJAtZB9nw3IOM0Z7fwoGEE ghoeuoCgZ3023+seAlzIfyHAUnUE126U= X-Gm-Gg: ATEYQzwNRi/b6yrUBjgpF7DFlPE5CiSWRlFKaNNRX9cfnqC8OLh2offSUXCmujDvo+H Q2PzXtzUA3EAxJzqZhBAZ9gs2fMZZ25Yr1sSXWamzkowUcW8DHyez2p5gMmpHE99oOVnAqpMcGB CwgGChRaSUUwEc2JeEwEw1dUq3b6aMY4I7kgSRgRQzgGd6TtHh4Y3CrJHptpGFDK2VMcwV6+pCc Cxdkq3yyQdrWWmweCjFLhij93oWPx4zrf3xGTpY0Ob2BdnqjFmOmykiPCil7Q6kZYpO3F2LmbUS a9T1miEthw== X-Received: by 2002:a05:7300:ca4:b0:2c7:2c0b:f33b with SMTP id 5a478bee46e88-2c72c0bf62cmr3090675eec.20.1774959048398; Tue, 31 Mar 2026 05:10:48 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nazir Bilal Yavuz Date: Tue, 31 Mar 2026 15:10:36 +0300 X-Gm-Features: AQROBzCicVBjByaS38TzTFlbFIrqQTn1bXwl9rilAArwyZT9Hw_j5my5jLBN0Eo Message-ID: Subject: Re: pgsql: test_aio: Add basic tests for StartReadBuffers() To: Christoph Berg Cc: Andres Freund , pgsql-hackers@lists.postgresql.org, Melanie Plageman Content-Type: multipart/mixed; boundary="000000000000928f84064e50db58" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000928f84064e50db58 Content-Type: text/plain; charset="UTF-8" Hi, On Tue, 31 Mar 2026 at 13:19, Christoph Berg wrote: > > One of the AIO commits around this one (2026-03-28 00:00Z) broke the > postgresql-19 builds on apt.pg.o. Only the Debian unstable (sid, > assertions enabled) builds are working, everything else including the > nearly identical testing (forky) is broken (where assertions are off): Thank you for the report! I can reproduce this when I disable assertions. The problem is that, in StartReadBuffersImpl() in bufmgr.c: ``` #ifdef USE_ASSERT_CHECKING /* * Initialize enough of ReadBuffersOperation to make * CheckReadBuffersOperation() work. Outside of assertions * that's not necessary when no IO is issued. */ operation->buffers = buffers; operation->blocknum = blockNum; operation->nblocks = 1; operation->nblocks_done = 1; CheckReadBuffersOperation(operation, true); #endif ``` if (found) and if (i == 0) then we set operation->buffers and operation->nblocks if the assertions are enabled but AIO tests expect to read these values. So, read_buffers() in AIO tests read incorrect values [1] when the assertions are disabled. Moving operation->buffers and operation->nblocks outside of #ifdef USE_ASSERT_CHECKING like in the attached fixes the problem. [1] read_buffers(PG_FUNCTION_ARGS) { ... for (int nio = 0; nio < nios; nio++) { ReadBuffersOperation *operation = &operations[nio]; int nblocks_this_io = operation->nblocks; Datum values[6] = {0}; bool nulls[6] = {0}; ArrayType *buffers_arr; /* convert buffer array to datum array */ for (int i = 0; i < nblocks_this_io; i++) { Buffer buf = operation->buffers[i]; ... } -- Regards, Nazir Bilal Yavuz Microsoft --000000000000928f84064e50db58 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Set-the-variables-that-callers-might-read-in-StartRe.patch" Content-Disposition: attachment; filename="0001-Set-the-variables-that-callers-might-read-in-StartRe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnekrk9q0 RnJvbSA1NjIxOGZjODUwY2RhY2NhZWI4Nzc2N2MyY2E4OTc3ZWUyZjI2Njk3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXppciBCaWxhbCBZYXZ1eiA8YnlhdnV6ODFAZ21haWwuY29t PgpEYXRlOiBUdWUsIDMxIE1hciAyMDI2IDE1OjAwOjQwICswMzAwClN1YmplY3Q6IFtQQVRDSF0g U2V0IHRoZSB2YXJpYWJsZXMgdGhhdCBjYWxsZXJzIG1pZ2h0IHJlYWQgaW4KIFN0YXJ0UmVhZEJ1 ZmZlcnNJbXBsKCkKCldoZW4gdGhlIGZpcnN0IHJlcXVlc3RlZCBibG9jayBpcyBhbHJlYWR5IGlu IHRoZSBidWZmZXIgcG9vbCwgU3RhcnRSZWFkLQpCdWZmZXJzSW1wbCgpIHJldHVybmVkIGVhcmx5 IGFmdGVyIHNldHRpbmcgKm5ibG9ja3MgPSAxIHdpdGhvdXQgc3RhcnRpbmcKYW55IEkvTy4gSW4g dGhhdCBwYXRoLCBvcGVyYXRpb24tPm5ibG9ja3MgYW5kIG9wZXJhdGlvbi0+YnVmZmVycyB3ZXJl Cm9ubHkgaW5pdGlhbGlzZWQgaW5zaWRlICNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HLCBsZWF2 aW5nIHRoZW0gYXMgemVybwovIE5VTEwgaW4gbm9uLWFzc2VydCBidWlsZHMuCgpDYWxsZXJzIG1p Z2h0IHdhbnQgdG8gaW5zcGVjdCB0aGVzZSB2YWx1ZXMgbGlrZSBpbiB0aGUgQUlPIHRlc3RzLiBG aXgKdGhhdCBwcm9ibGVtIGJ5IHVuY29uZGl0aW9uYWxseSBzZXR0aW5nIG9wZXJhdGlvbi0+bmJs b2NrcyBhbmQKb3BlcmF0aW9uLT5idWZmZXJzIGluIHRoZSBlYXJseS1yZXR1cm4gaGl0IHBhdGgu Ci0tLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgfCA2ICsrKystLQogMSBm aWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyBiL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvYnVmZmVyL2J1Zm1nci5jCmluZGV4IGNkMjFhZTNmYzM2Li5lNmY5OWFkNzY2OCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKKysrIGIvc3JjL2JhY2tl bmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTE0NTcsNiArMTQ1NywxMCBAQCBTdGFydFJl YWRCdWZmZXJzSW1wbChSZWFkQnVmZmVyc09wZXJhdGlvbiAqb3BlcmF0aW9uLAogCQkJewogCQkJ CSpuYmxvY2tzID0gMTsKIAorCQkJCS8qIFNldCB0aGUgdmFyaWFibGVzIHRoYXQgY2FsbGVycyBt aWdodCByZWFkICovCisJCQkJb3BlcmF0aW9uLT5idWZmZXJzID0gYnVmZmVyczsKKwkJCQlvcGVy YXRpb24tPm5ibG9ja3MgPSAxOworCiAjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwogCiAJCQkJ LyoKQEAgLTE0NjQsOSArMTQ2OCw3IEBAIFN0YXJ0UmVhZEJ1ZmZlcnNJbXBsKFJlYWRCdWZmZXJz T3BlcmF0aW9uICpvcGVyYXRpb24sCiAJCQkJICogQ2hlY2tSZWFkQnVmZmVyc09wZXJhdGlvbigp IHdvcmsuIE91dHNpZGUgb2YgYXNzZXJ0aW9ucwogCQkJCSAqIHRoYXQncyBub3QgbmVjZXNzYXJ5 IHdoZW4gbm8gSU8gaXMgaXNzdWVkLgogCQkJCSAqLwotCQkJCW9wZXJhdGlvbi0+YnVmZmVycyA9 IGJ1ZmZlcnM7CiAJCQkJb3BlcmF0aW9uLT5ibG9ja251bSA9IGJsb2NrTnVtOwotCQkJCW9wZXJh dGlvbi0+bmJsb2NrcyA9IDE7CiAJCQkJb3BlcmF0aW9uLT5uYmxvY2tzX2RvbmUgPSAxOwogCQkJ CUNoZWNrUmVhZEJ1ZmZlcnNPcGVyYXRpb24ob3BlcmF0aW9uLCB0cnVlKTsKICNlbmRpZgotLSAK Mi40Ny4zCgo= --000000000000928f84064e50db58--