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 1wD13l-002WQW-2p for pgsql-bugs@arkaria.postgresql.org; Wed, 15 Apr 2026 14:17:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wD12l-00GSxZ-0l for pgsql-bugs@arkaria.postgresql.org; Wed, 15 Apr 2026 14:16:40 +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 1wD12k-00GSwW-38 for pgsql-bugs@lists.postgresql.org; Wed, 15 Apr 2026 14:16:39 +0000 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wCzfa-000000018ij-33GZ for pgsql-bugs@lists.postgresql.org; Wed, 15 Apr 2026 12:48:39 +0000 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-488afb0427eso81112815e9.1 for ; Wed, 15 Apr 2026 05:48:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776257318; x=1776862118; darn=lists.postgresql.org; h=subject:from:content-language:to:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=Jct3qPMW29J3SCEa9OZVHFZ3Q7GQtah12p7GYK+9dgw=; b=XMOgJOCsMh/DqMmWdj6qV6hpcgCaOm8prrvadFef8pwT1QhO47qeo6ugVOuGv8Y3nb 3hbdn/IGP5zv2ycNrGixGahezzmyffQyfit0xYobWSpkzoAClVRce506Yvm0OyifVguv LW4tSSgEHEaEAMb/et1AIbnSLHiq1xxV/FFofo4Vi8AIIDzQs4/tApoyK+63fXWEM+Zo OIGPsd+Ps4X1rPmfIFwyc3QWxKtMgO8VjlCqhjO++DJNEM1D1J7CJfRMSda3Ftk4bQl1 xeVzRoEqrwX2Xga60ED6CLocTXreUONDOS60L+2uC7RGQrnymJkTGSLtIlrTbv1VBs01 J4iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776257318; x=1776862118; h=subject:from:content-language:to:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Jct3qPMW29J3SCEa9OZVHFZ3Q7GQtah12p7GYK+9dgw=; b=sampEeLiurI38xe7lOk0sUF0er2EAPVi7Z+ubxh/pn4BD1/Qu3wseO87jzelGXUHef tZxlup0S3g6N087VPKMAipLNEetUATEPPkeNuilTgKyhcF3PQ5nrdL7KzXcLNwSMgP+m gegsbNCS9kL4k36zq+I1wuB7pbPQv5SfhaLFLsVjF2s5d9Blp212SrEOeVE+2nt8UDsK wq/oeEfN1B3c31VHxJ7UAgSb0E80Rg6YZkaN3aVihutFDF4Y8/cbXBlR4RPcign3E5tk pljjYSidPbdc1pCB7P8iSBNiBSDJLIoZScS49ZHB16IVl+olKFPhGWbeQ1+QeoYopOZO gdVw== X-Gm-Message-State: AOJu0Yx8hhQeKHrH9LvzqI6qGRLNveefPPonTH//0pcZXrkDIAk4PJx1 b3fYAOa+K7GyVuUWUyUr5ulMauNAi30uHcNt9SRfFtZX3yjonPwQ/wcY8IPFf1LA X-Gm-Gg: AeBDiesKPRFZC3++HLqzFIeNJh5LptExEqo4AqOzz1/ROJvmJ7UPuL+qSqIddz3+U9P q0kjcXqoNJ56ksTff7eUlO4v6VYmhsw9Ex9nrDb0ZUSf7njkRvjzsiQYfXV+KR7bw4SvYnXVn8c epxEsG6NzvYi3a1NMF3kru0F9LmDuQKtyyw1aFbRe7p/YY9wwmrXRW5/3/lxwJRyT+AjdKxzsX7 JCJysSPPy9mMg+qi0EkteXAsuUVwWZhi71wEDYHuMwJRUwbm+qwDiQq+bxTHzxr8bRO6B/6veFp YvVxWPzPwrhyivbntxKbPgD5wnyDKg9XKEvaaMkOZQxm3uVGe7ELOiDQuSJtG5oOGASwhB+f5X7 kWGs6WHlo4eaOWaSpRVqyiEJzVeV/CXnWNVKdXCHJQ7saIfKBcTJPzneLZUMRBe+QImi3aEIH8r JrcxWNV/ivvHatePs1sfOJtkTXJvPGvIMaIvI+xg== X-Received: by 2002:a05:600c:1f83:b0:488:a82f:bba9 with SMTP id 5b1f17b1804b1-488d6864dd2mr298716035e9.22.1776257317435; Wed, 15 Apr 2026 05:48:37 -0700 (PDT) Received: from [192.168.15.160] ([80.251.191.198]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43ead3564d8sm5533987f8f.10.2026.04.15.05.48.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 15 Apr 2026 05:48:36 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------aLbqR6c0jhs1xh2XqipMbipI" Message-ID: Date: Wed, 15 Apr 2026 14:48:35 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: PostgreSQL mailing lists , Masahiko Sawada Content-Language: en-US From: Andrei Lepikhov Subject: TRAP: failed Assert("offsets[i] > offsets[i - 1]"), File: "tidstore.c" 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. --------------aLbqR6c0jhs1xh2XqipMbipI Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, While experimenting with query plans, I periodically see test_tidstore fail on the assertion in TidStoreSetBlockOffsets(). The cause is that the harness function do_set_block_offsets() forwards the SQL array straight to TidStoreSetBlockOffsets(), which has an explicit contract: "The offset numbers 'offsets' must be sorted in ascending order." array_agg() without ORDER BY gives no such guarantee, and plan shapes that reshuffle the input can deliver the offsets out of order and trip the Assert. The issue is minor and doesn't expose any underlying bug, but it is still worth fixing: it removes a source of flaky test runs and makes life easier for extension developers who reuse the same pattern. Patch attached. -- regards, Andrei Lepikhov, pgEdge --------------aLbqR6c0jhs1xh2XqipMbipI Content-Type: text/plain; charset=UTF-8; name="v0-0001-Sort-offsets-in-test_tidstore-s-do_set_block_offs.patch" Content-Disposition: attachment; filename*0="v0-0001-Sort-offsets-in-test_tidstore-s-do_set_block_offs.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5OWM5YWJiM2I3NTFlYzM2MDNiNmFkODI0OGZiOTRlYzUyOWQyOTMyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmVpIFYuIExlcGlraG92IiA8bGVwaWhvdkBn bWFpbC5jb20+CkRhdGU6IFdlZCwgMTUgQXByIDIwMjYgMTQ6NDE6NTEgKzAyMDAKU3ViamVj dDogW1BBVENIIHYwXSBTb3J0IG9mZnNldHMgaW4gdGVzdF90aWRzdG9yZSdzIGRvX3NldF9i bG9ja19vZmZzZXRzKCkuCgpUaWRTdG9yZVNldEJsb2NrT2Zmc2V0cygpIHJlcXVpcmVzIGl0 cyBvZmZzZXRzW10gYXJndW1lbnQgdG8gYmUKc3RyaWN0bHkgYXNjZW5kaW5nLCBhbmQgYXNz ZXJ0cyB0aGUgcHJlY29uZGl0aW9uLgoKVGhlIHRlc3QgaGFybmVzcyB3YXMgZm9yd2FyZGlu ZyB0aGUgT2Zmc2V0TnVtYmVyIGFycmF5IHN0cmFpZ2h0IGZyb20KU1FMLCB3aGljaCB3b3Jr cyBvbmx5IGJlY2F1c2UgdGhlIGN1cnJlbnQgcGxhbm5lciBoYXBwZW5zIHRvIHByZXNlbnQK YXJyYXlfYWdnKCkgaW5wdXQgaW4gdGhlIG9yZGVyIHRoZSBWQUxVRVMgY2xhdXNlIHdhcyB3 cml0dGVuLiAgVGhhdApvcmRlcmluZyBpcyBub3QgYSBTUUwgZ3VhcmFudGVlOiBhcnJheV9h Z2coKSB3aXRob3V0IE9SREVSIEJZIGlzCnVub3JkZXJlZCBieSBzcGVjaWZpY2F0aW9uLCBh bmQgYW55IHBsYW4gY2hhbmdlIHRoYXQgcmVzaHVmZmxlcyB0aGUKQ2FydGVzaWFuIHByb2R1 Y3QgdXNlZCBpbiB0ZXN0X3RpZHN0b3JlLnNxbCAtLSBwYXJhbGxlbCBhZ2dyZWdhdGlvbiwK YSBkaWZmZXJlbnQgam9pbiBvcmRlciwgb3IgYSByYW5kb21pc2VkIHBsYW5uZXIgLS0gY2Fu IGRlbGl2ZXIgdGhlCm9mZnNldHMgb3V0IG9mIG9yZGVyIGFuZCBjYXVzZSB0aGUgQXNzZXJ0 LgoKRml4IGJ5IHNvcnRpbmcgb2ZmcyBpbiBwbGFjZSBpbnNpZGUgZG9fc2V0X2Jsb2NrX29m ZnNldHMoKSBiZWZvcmUKY2FsbGluZyBUaWRTdG9yZVNldEJsb2NrT2Zmc2V0cygpLiBEdXBs aWNhdGVzIGFyZSBpbnRlbnRpb25hbGx5IGxlZnQgdG8gZmFpbAp0aGUgc3RyaWN0LWluZXF1 YWxpdHkgQXNzZXJ0LgotLS0KIHNyYy90ZXN0L21vZHVsZXMvdGVzdF90aWRzdG9yZS90ZXN0 X3RpZHN0b3JlLmMgfCAxNiArKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTYg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF90aWRz dG9yZS90ZXN0X3RpZHN0b3JlLmMgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfdGlkc3RvcmUv dGVzdF90aWRzdG9yZS5jCmluZGV4IGM5YTAzNWZhNDk0Li5iZmM0MGJjZTI0YyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3RpZHN0b3JlL3Rlc3RfdGlkc3RvcmUuYwor KysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfdGlkc3RvcmUvdGVzdF90aWRzdG9yZS5jCkBA IC03NSw2ICs3NSwxOSBAQCBpdGVtcHRyX2NtcChjb25zdCB2b2lkICpsZWZ0LCBjb25zdCB2 b2lkICpyaWdodCkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludAorb2Zmc2V0bnVtYmVy X2NtcChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQoreworCU9mZnNldE51bWJlciBs ID0gKihjb25zdCBPZmZzZXROdW1iZXIgKikgYTsKKwlPZmZzZXROdW1iZXIgciA9ICooY29u c3QgT2Zmc2V0TnVtYmVyICopIGI7CisKKwlpZiAobCA8IHIpCisJCXJldHVybiAtMTsKKwll bHNlIGlmIChsID4gcikKKwkJcmV0dXJuIDE7CisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBD cmVhdGUgYSBUaWRTdG9yZS4gSWYgc2hhcmVkIGlzIGZhbHNlLCB0aGUgdGlkc3RvcmUgaXMg Y3JlYXRlZAogICogb24gVG9wTWVtb3J5Q29udGV4dCwgb3RoZXJ3aXNlIG9uIERTQS4gQWx0 aG91Z2ggdGhlIHRpZHN0b3JlCkBAIC0xNzgsNiArMTkxLDkgQEAgZG9fc2V0X2Jsb2NrX29m ZnNldHMoUEdfRlVOQ1RJT05fQVJHUykKIAlub2ZmcyA9IEFycmF5R2V0Tkl0ZW1zKEFSUl9O RElNKHRhKSwgQVJSX0RJTVModGEpKTsKIAlvZmZzID0gKChPZmZzZXROdW1iZXIgKikgQVJS X0RBVEFfUFRSKHRhKSk7CiAKKwkvKiBUaWRTdG9yZVNldEJsb2NrT2Zmc2V0cygpIHJlcXVp cmVzIG9mZnNldHMgdG8gYmUgc3RyaWN0bHkgYXNjZW5kaW5nLiAqLworCXFzb3J0KG9mZnMs IG5vZmZzLCBzaXplb2YoT2Zmc2V0TnVtYmVyKSwgb2Zmc2V0bnVtYmVyX2NtcCk7CisKIAkv KiBTZXQgVElEcyBpbiB0aGUgc3RvcmUgKi8KIAlUaWRTdG9yZUxvY2tFeGNsdXNpdmUodGlk c3RvcmUpOwogCVRpZFN0b3JlU2V0QmxvY2tPZmZzZXRzKHRpZHN0b3JlLCBibGtubywgb2Zm cywgbm9mZnMpOwotLSAKMi41My4wCgo= --------------aLbqR6c0jhs1xh2XqipMbipI--