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 1wHlwf-007Uxg-1B for pgsql-bugs@arkaria.postgresql.org; Tue, 28 Apr 2026 17:10:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wHlwd-000gEm-0m for pgsql-bugs@arkaria.postgresql.org; Tue, 28 Apr 2026 17:09:59 +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 1wHlwc-000gEV-2F for pgsql-bugs@lists.postgresql.org; Tue, 28 Apr 2026 17:09:58 +0000 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wHlwZ-00000003Df4-34Be for pgsql-bugs@lists.postgresql.org; Tue, 28 Apr 2026 17:09:57 +0000 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-c70ea5e9e9dso5182328a12.1 for ; Tue, 28 Apr 2026 10:09:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777396195; cv=none; d=google.com; s=arc-20240605; b=JTeeVUhlS7tGiDH0v+K11EaSbZghacuQ9BtmzO/5L+ztiT8WXGWTc3I5zSWuXZ1rxv 6bdMfZ5By02nxcw2it+2wPYGp36VfymXLzZLuAsWGqFsy6eAxJKyexC5TH7JWVhquhjU +zPfTgM6R3RiM6467H9RyAfT6vQqUXeDuft+aHeEcYi7Xglp9czKTmd+fCu7C59Y5Shj qLkGACZnr6iAQStKtp0eLWzEyuB2DI8XpPH1jcZg5E59WgHu08YnXed0amcSsWcCGmdX JwJGo4XxY7IythRMlGhuOeA0GXiZxaMPoakQGZuVxEcBHnfFHickv1u4FtE9pRsr8Kp7 +rfw== 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=LtYwUhZihUzkIXeC7roi+1MBW6j5C1LwheM84JY4my4=; fh=eq4N0ZJ8hrEgR38nsBqR0qT98+sD9swSO80XeCQALy8=; b=UuQzLAQn0ovQldxCZpuMwj+a5DWSJ+RWS8v1sDKpfqfLP2I8UXUbkjBLlClJ7ZxdHh AMF2XjpN6vycc7gdeEVZemJshiVyTpVDynyMUiYOzJ3StLgo64kLM9bcDnUTuiuh9g9Z +iITjyEcfNpSp1CAxauIpnnHZCn3TExj4QC+Bmox0UipjghOTLRp1qd7tvm/mcwmwuGe 1PhBOvSWSmM6sG+329ujUWFynwJU9S4O6fBTh0VYuvy7PQQSp86k/62kqSKxrFMKtzi1 bNgml6PVMPPiQ4acrgVdfii4SAQhWdXTT899mWOU6pm51Fzhux/nZK31ps9SB1pDMt4W +bzg==; 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=1777396195; x=1778000995; 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=LtYwUhZihUzkIXeC7roi+1MBW6j5C1LwheM84JY4my4=; b=dGIj+5zmWrez0H0n76UlpDnFMbM+DIiDXqEdP4Ech1SezjjyhFWSl9bCOMkfq94xA0 jZrYEJ8Ff5YiApdumJowJI+kspPOAAJd28LjQHy2kw2/V8DBXVaM2GJGlMGdH1hvcWQ0 HemEUdp8MCuBsueDRNXtrjpFbVi/+WUc6rp6grOuOKdtQaKxWjt5ow2NZpPdetOuxouM vAkZiwjBWocX7wn+mTdH5Ru+llPNfEdc5p9tNHeNjTvGxeczhfvLdIjA6XqOUoM8uEv5 lyQeMHW3/BxtDDq1B5hXZVL0N8BchFTL3ajX6v3f+TZ3Ddl8n0+XSHbHgK3e/NOULS2J qtIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777396195; x=1778000995; 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=LtYwUhZihUzkIXeC7roi+1MBW6j5C1LwheM84JY4my4=; b=IGJfbgMOy2yg584x6AaSzjrcDblPoZPeSyZQtv3JB53oMbpAIZVfZ9MQ9OPKfPqDqI G67nZVfatoy4v9/XQ++EbsKa9oUmgp5l1koDJI+z3X7w/OYNd+WytLwRYO1vHX3tOHMm mZAZbkUSRXSEhlG2318W8GgdV+Btmi1owmjQ6oTu2g6AsQtw/Xxd0mZ3yTr6N27m1wR+ GObTJI4qJufi8O8TPEYJJvs7nVpySWmAUFICVz4EW3LMkoe7shyHTYHqgVdFhLxNULnd sfel4FUexO63SX/63RSbFtXroVUskzM0gNVU/eI0jg+BjwgEzL2IXTeGcCim+Lm0vgII 2oiA== X-Gm-Message-State: AOJu0YyM0sRuhBs+wWEtLsH73Ub/4SlZmdtcX9MN+cdm8a7bSPxvJpcP 39Ie1RV5GbfGcxRCu/f/dcuiFcdJSwgVRw0ry+ctvj51n1U2c1x4/fuEjvSoVNaN0YAbdYv5WPq p4tnzaIEnWgihupZ0Dul7fLYTIsemGcM= X-Gm-Gg: AeBDiesL5SV7Y3ambzU/kBLOc4hpaMjTB5krTv1bM/G/5khnXh9QyUsx1YbBuNt4+D8 ffKkK5cKHF7DHZY0hFrom0v/D6uRxcHNgkSstTNwCP4dYtH0OheIadDho5yVyHgrlkPeabhjv8e zrUmceBRSxBRjqFj/HTIL5mzcBbSj+mbCbXEaWlTNb3OFr+tySE5Qb07PnlyNbltyagIzgfPOfX qZSScsF11x6G2rwN7wHM6r1dO7lxSFb2cR1dZ3jHNHCXzi0pJTbVcP8W7aK0NzG0gjNqJBa0sUM HzfLWFrZOXzsgx/z6KiG5sfObuxPTi3Jja3gM4H4Urx+I/wiVWk= X-Received: by 2002:a05:6a21:9983:b0:35d:5d40:6d79 with SMTP id adf61e73a8af0-3a39c0b4667mr4590769637.12.1777396194847; Tue, 28 Apr 2026 10:09:54 -0700 (PDT) MIME-Version: 1.0 References: <119bd418-1d7a-42c7-9270-86f3b6696399@gmail.com> <9dece148-3e1d-4b0f-b798-574988fe76fe@gmail.com> <117efd72-5692-4844-bc4e-c553d03d393e@gmail.com> In-Reply-To: <117efd72-5692-4844-bc4e-c553d03d393e@gmail.com> From: Masahiko Sawada Date: Tue, 28 Apr 2026 10:09:17 -0700 X-Gm-Features: AVHnY4JqOI8VeOlDBTLsWaGlhjD1lscyURi4b1Nb93K2NwkIYq8xtYZFrxv_ok8 Message-ID: Subject: Re: TRAP: failed Assert("offsets[i] > offsets[i - 1]"), File: "tidstore.c" To: Andrei Lepikhov Cc: PostgreSQL mailing lists Content-Type: multipart/mixed; boundary="000000000000d1cf010650884cbf" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d1cf010650884cbf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Apr 26, 2026 at 2:06=E2=80=AFAM Andrei Lepikhov = wrote: > > On 25/04/2026 01:23, Masahiko Sawada wrote: > > On Wed, Apr 22, 2026 at 10:23=E2=80=AFAM Andrei Lepikhov wrote: > >> Both tools are experimental and not meant for core use; they are only = used to > >> trigger potential issues. In this case, I think the query picked a cos= tly sorted > >> path, which led to the crash. > > > > Does this imply that array_agg() could return unsorted results > > depending on the plan the optimizer chooses? Or is such a path > > currently never selected by the optimizer? > > The array_agg() function does not sort its output. In theory, this means = the > join could return results in any order, but in practice, I have not seen = this > happen. > > > > > I=E2=80=99m asking because if this scenario never occurs with the curre= nt > > optimizer, it might make sense to apply the patch only to HEAD (i.e., > > for PG20). On the other hand, backpatching to PG17 might be justified, > > given that DISTINCT does not guarantee sorted results in principle, > > and the fix could benefit extension development on stable branches. > > In stable versions, the planner's logic remains unchanged. So, it seems > reliable. However, backpatching could help extension developers a little = bit. > Since this code fixes a real issue and does not break anything complex, I= would > backpatch it. Still, I am fine with just committing it to master if you p= refer. > > P.S. > > I looked into the issue further. The problem happens when the join sides = are > shuffled. Here is what I found: > > EXPLAIN of the successful execution (unnecessary details stripped): > > Insert on pg_temp.hideblocks (cost=3D1.21..1.66 rows=3D0 width=3D0) > -> Subquery Scan on unnamed_subquery (cost=3D1.21..1.66 rows=3D5 wid= th=3D8) > Output: unnamed_subquery.do_set_block_offsets > -> GroupAggregate (cost=3D1.21..1.61 rows=3D5 width=3D16) > Output: do_set_block_offsets("*VALUES*".column1, > (array_agg("*VALUES*_1".column1))::smallint[]), .= .. > Group Key: "*VALUES*".column1 > -> Sort (cost=3D1.21..1.27 rows=3D25 width=3D12) > Output: "*VALUES*".column1, "*VALUES*_1".column1 > Sort Key: "*VALUES*".column1 > -> Nested Loop (cost=3D0.00..0.62 rows=3D25 width= =3D12) > Output: "*VALUES*".column1, "*VALUES*_1".colum= n1 > -> Values Scan on "*VALUES*" > (cost=3D0.00..0.06 rows=3D5 width=3D8) > Output: "*VALUES*".column1 > -> Values Scan on "*VALUES*_1" > (cost=3D0.00..0.06 rows=3D5 width=3D4) > Output: "*VALUES*_1".column1 > > EXPLAIN that causes assertion: > > Insert on pg_temp.hideblocks (cost=3D1.03..1.48 rows=3D0 width=3D0) > -> Subquery Scan on unnamed_subquery (cost=3D1.03..1.48 rows=3D5 wid= th=3D8) > Output: unnamed_subquery.do_set_block_offsets > -> GroupAggregate (cost=3D1.03..1.43 rows=3D5 width=3D16) > Output: do_set_block_offsets("*VALUES*".column1, > (array_agg("*VALUES*_1".column1))::smallint[]),..= . > Group Key: "*VALUES*".column1 > -> Sort (cost=3D1.03..1.09 rows=3D25 width=3D12) > Output: "*VALUES*".column1, "*VALUES*_1".column1 > Sort Key: "*VALUES*".column1 > -> Nested Loop (cost=3D0.00..0.45 rows=3D25 width= =3D12) > Output: "*VALUES*".column1, "*VALUES*_1".colum= n1 > -> Values Scan on "*VALUES*_1" > (cost=3D0.00..0.06 rows=3D5 width=3D4) > Output: "*VALUES*_1".column1 > -> Materialize (cost=3D0.00..0.09 rows=3D5 w= idth=3D8) > Output: "*VALUES*".column1 > -> Values Scan on "*VALUES*" > (cost=3D0.00..0.06 rows=3D5 width= =3D8) > Output: "*VALUES*".column1 > > At the second case offsets have come to the aggregation without order tha= t > highlighted the issue. Thank you for sharing the details. While the assertion failure is not observed during regular regression tests because the query is simple enough that the optimizer consistently chooses plans producing the sorted results, given that the DISTINCT without the ORDER BY doesn't guarantee to produce the sorted results in theory, I think it makes sense to apply the proposed patch. And, it would also make sense to backpatch to PG17, where tid_store was introduced, for extension development on back branches. I've attached the patches. I'm going to push them, barring any objections. Regards, --=20 Masahiko Sawada Amazon Web Services: https://aws.amazon.com --000000000000d1cf010650884cbf Content-Type: text/x-patch; charset="US-ASCII"; name="REL_17_0001-test_tidstore-Stabilize-regression-tests-by-sorting-.patch" Content-Disposition: attachment; filename="REL_17_0001-test_tidstore-Stabilize-regression-tests-by-sorting-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_moivs2451 RnJvbSBkM2Q2M2ZmNzU4ZjIzOGY2MzIzNDJjYThmZjBjOTU3YmViODJhYzc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmVpIFYuIExlcGlraG92IiA8bGVwaWhvdkBnbWFpbC5j b20+CkRhdGU6IFdlZCwgMTUgQXByIDIwMjYgMTQ6NDE6NTEgKzAyMDAKU3ViamVjdDogW1BBVENI XSB0ZXN0X3RpZHN0b3JlOiBTdGFiaWxpemUgcmVncmVzc2lvbiB0ZXN0cyBieSBzb3J0aW5nIG9m ZnNldHMuCgpUaWRTdG9yZVNldEJsb2NrT2Zmc2V0cygpIHJlcXVpcmVzIGl0cyBvZmZzZXRzIGFy cmF5IHRvIGJlIHN0cmljdGx5CmFzY2VuZGluZyBhbmQgYXNzZXJ0cyB0aGlzIHByZWNvbmRpdGlv bi4gSW4gdGVzdF90aWRzdG9yZSwgd2Ugd2VyZQpwYXNzaW5nIHJhbmRvbSBvZmZzZXQgbnVtYmVy cyBkZWR1cGxpY2F0ZWQgYnkgYSBESVNUSU5DVCBjbGF1c2UgaW4gYW4KYXJyYXlfYWdnKCkgY2Fs bCBkaXJlY3RseSB0byB0aGUgZG9fc2V0X2Jsb2NrX29mZnNldHMoKSB0ZXN0Cmhhcm5lc3MuIEhv d2V2ZXIsIERJU1RJTkNUIHdpdGhvdXQgYW4gT1JERVIgQlkgY2xhdXNlIGRvZXMgbm90Cmd1YXJh bnRlZSBzb3J0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIFNRTCBzdGFuZGFyZC4KCkZpeCB0 aGlzIGJ5IHNvcnRpbmcgdGhlIG9mZnNldHMgaW4tcGxhY2UgaW5zaWRlIGRvX3NldF9ibG9ja19v ZmZzZXRzKCkKYmVmb3JlIGNhbGxpbmcgVGlkU3RvcmVTZXRCbG9ja09mZnNldHMoKS4KCldoaWxl IHRoaXMgYXNzZXJ0aW9uIGZhaWx1cmUgaXMgbm90IG9ic2VydmVkIGR1cmluZyByZWd1bGFyIHJl Z3Jlc3Npb24KdGVzdHMgYmVjYXVzZSB0aGV5IHVzZSBxdWVyaWVzIHNpbXBsZSBlbm91Z2ggdGhh dCB0aGUgb3B0aW1pemVyCmNvbnNpc3RlbnRseSBjaG9vc2VzIHBsYW5zIHlpZWxkaW5nIHNvcnRl ZCByZXN1bHRzLCBpdCBtYWtlcyBzZW5zZSB0bwpzdGFiaWxpemUgdGhlIHRlc3QuIFRoZSBmYWls dXJlIGNvdWxkIHRoZW9yZXRpY2FsbHkgb2NjdXIgZGVwZW5kaW5nIG9uCnRoZSBvcHRpbWl6ZXIn cyBwbGFuIGNob2ljZSwgYW5kIGhhcyBiZWVuIHJlcG9ydGVkIHdoZW4gZXhwZXJpbWVudGluZwp3 aXRoIGNlcnRhaW4gdGhpcmQtcGFydHkgZXh0ZW5zaW9ucy4KCkJhY2twYXRjaCB0byB2MTcsIHdo ZXJlIHRpZF9zdG9yZSB3YXMgaW50cm9kdWNlZCwgdG8gZW5zdXJlIGV4dGVuc2lvbgpkZXZlbG9w bWVudCBvbiBzdGFibGUgYnJhbmNoZXMgZG9lcyBub3QgaGl0IHRoaXMgYXNzZXJ0aW9uLgoKUmVw b3J0ZWQtYnk6IEFuZHJlaSBMZXBpa2hvdiA8bGVwaWhvdkBnbWFpbC5jb20+CkF1dGhvcjogQW5k cmVpIExlcGlraG92IDxsZXBpaG92QGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0 Z3IuZXMvbS9iOTdmMTg1MC1mYzdiLTQzYzQtOWIwNC00ZTk3YmI5ZTdkYzBAZ21haWwuY29tCi0t LQogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3RpZHN0b3JlL3Rlc3RfdGlkc3RvcmUuYyB8IDE2ICsr KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3RpZHN0b3JlL3Rlc3RfdGlkc3RvcmUuYyBiL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF90aWRzdG9yZS90ZXN0X3RpZHN0b3JlLmMKaW5kZXggM2Y2YTEx YmYyMWMuLmUzMmNlNGU1NzE2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfdGlk c3RvcmUvdGVzdF90aWRzdG9yZS5jCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF90aWRzdG9y ZS90ZXN0X3RpZHN0b3JlLmMKQEAgLTc2LDYgKzc2LDE5IEBAIGl0ZW1wdHJfY21wKGNvbnN0IHZv aWQgKmxlZnQsIGNvbnN0IHZvaWQgKnJpZ2h0KQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50 CitvZmZzZXRudW1iZXJfY21wKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCit7CisJT2Zm c2V0TnVtYmVyIGwgPSAqKGNvbnN0IE9mZnNldE51bWJlciAqKSBhOworCU9mZnNldE51bWJlciBy ID0gKihjb25zdCBPZmZzZXROdW1iZXIgKikgYjsKKworCWlmIChsIDwgcikKKwkJcmV0dXJuIC0x OworCWVsc2UgaWYgKGwgPiByKQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKwogLyoKICAq IENyZWF0ZSBhIFRpZFN0b3JlLiBJZiBzaGFyZWQgaXMgZmFsc2UsIHRoZSB0aWRzdG9yZSBpcyBj cmVhdGVkCiAgKiBvbiBUb3BNZW1vcnlDb250ZXh0LCBvdGhlcndpc2Ugb24gRFNBLiBBbHRob3Vn aCB0aGUgdGlkc3RvcmUKQEAgLTE4MCw2ICsxOTMsOSBAQCBkb19zZXRfYmxvY2tfb2Zmc2V0cyhQ R19GVU5DVElPTl9BUkdTKQogCW5vZmZzID0gQXJyYXlHZXROSXRlbXMoQVJSX05ESU0odGEpLCBB UlJfRElNUyh0YSkpOwogCW9mZnMgPSAoKE9mZnNldE51bWJlciAqKSBBUlJfREFUQV9QVFIodGEp KTsKIAorCS8qIFRpZFN0b3JlU2V0QmxvY2tPZmZzZXRzKCkgcmVxdWlyZXMgb2Zmc2V0cyB0byBi ZSBzdHJpY3RseSBhc2NlbmRpbmcuICovCisJcXNvcnQob2Zmcywgbm9mZnMsIHNpemVvZihPZmZz ZXROdW1iZXIpLCBvZmZzZXRudW1iZXJfY21wKTsKKwogCS8qIFNldCBUSURzIGluIHRoZSBzdG9y ZSAqLwogCVRpZFN0b3JlTG9ja0V4Y2x1c2l2ZSh0aWRzdG9yZSk7CiAJVGlkU3RvcmVTZXRCbG9j a09mZnNldHModGlkc3RvcmUsIGJsa25vLCBvZmZzLCBub2Zmcyk7Ci0tIAoyLjU0LjAKCg== --000000000000d1cf010650884cbf Content-Type: text/x-patch; charset="US-ASCII"; name="master_0001-test_tidstore-Stabilize-regression-tests-by-sorting-.patch" Content-Disposition: attachment; filename="master_0001-test_tidstore-Stabilize-regression-tests-by-sorting-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_moivs24a2 RnJvbSBkMTJkODY0NjM0ZWMyZDY0NDUzOTczNjI4NDQ2MDlhYjc1MjgxMDZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmVpIFYuIExlcGlraG92IiA8bGVwaWhvdkBnbWFpbC5j b20+CkRhdGU6IFdlZCwgMTUgQXByIDIwMjYgMTQ6NDE6NTEgKzAyMDAKU3ViamVjdDogW1BBVENI XSB0ZXN0X3RpZHN0b3JlOiBTdGFiaWxpemUgcmVncmVzc2lvbiB0ZXN0cyBieSBzb3J0aW5nIG9m ZnNldHMuCgpUaWRTdG9yZVNldEJsb2NrT2Zmc2V0cygpIHJlcXVpcmVzIGl0cyBvZmZzZXRzIGFy cmF5IHRvIGJlIHN0cmljdGx5CmFzY2VuZGluZyBhbmQgYXNzZXJ0cyB0aGlzIHByZWNvbmRpdGlv bi4gSW4gdGVzdF90aWRzdG9yZSwgd2Ugd2VyZQpwYXNzaW5nIHJhbmRvbSBvZmZzZXQgbnVtYmVy cyBkZWR1cGxpY2F0ZWQgYnkgYSBESVNUSU5DVCBjbGF1c2UgaW4gYW4KYXJyYXlfYWdnKCkgY2Fs bCBkaXJlY3RseSB0byB0aGUgZG9fc2V0X2Jsb2NrX29mZnNldHMoKSB0ZXN0Cmhhcm5lc3MuIEhv d2V2ZXIsIERJU1RJTkNUIHdpdGhvdXQgYW4gT1JERVIgQlkgY2xhdXNlIGRvZXMgbm90Cmd1YXJh bnRlZSBzb3J0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIFNRTCBzdGFuZGFyZC4KCkZpeCB0 aGlzIGJ5IHNvcnRpbmcgdGhlIG9mZnNldHMgaW4tcGxhY2UgaW5zaWRlIGRvX3NldF9ibG9ja19v ZmZzZXRzKCkKYmVmb3JlIGNhbGxpbmcgVGlkU3RvcmVTZXRCbG9ja09mZnNldHMoKS4KCldoaWxl IHRoaXMgYXNzZXJ0aW9uIGZhaWx1cmUgaXMgbm90IG9ic2VydmVkIGR1cmluZyByZWd1bGFyIHJl Z3Jlc3Npb24KdGVzdHMgYmVjYXVzZSB0aGV5IHVzZSBxdWVyaWVzIHNpbXBsZSBlbm91Z2ggdGhh dCB0aGUgb3B0aW1pemVyCmNvbnNpc3RlbnRseSBjaG9vc2VzIHBsYW5zIHlpZWxkaW5nIHNvcnRl ZCByZXN1bHRzLCBpdCBtYWtlcyBzZW5zZSB0bwpzdGFiaWxpemUgdGhlIHRlc3QuIFRoZSBmYWls dXJlIGNvdWxkIHRoZW9yZXRpY2FsbHkgb2NjdXIgZGVwZW5kaW5nIG9uCnRoZSBvcHRpbWl6ZXIn cyBwbGFuIGNob2ljZSwgYW5kIGhhcyBiZWVuIHJlcG9ydGVkIHdoZW4gZXhwZXJpbWVudGluZwp3 aXRoIGNlcnRhaW4gdGhpcmQtcGFydHkgZXh0ZW5zaW9ucy4KCkJhY2twYXRjaCB0byB2MTcsIHdo ZXJlIHRpZF9zdG9yZSB3YXMgaW50cm9kdWNlZCwgdG8gZW5zdXJlIGV4dGVuc2lvbgpkZXZlbG9w bWVudCBvbiBzdGFibGUgYnJhbmNoZXMgZG9lcyBub3QgaGl0IHRoaXMgYXNzZXJ0aW9uLgoKUmVw b3J0ZWQtYnk6IEFuZHJlaSBMZXBpa2hvdiA8bGVwaWhvdkBnbWFpbC5jb20+CkF1dGhvcjogQW5k cmVpIExlcGlraG92IDxsZXBpaG92QGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0 Z3IuZXMvbS9iOTdmMTg1MC1mYzdiLTQzYzQtOWIwNC00ZTk3YmI5ZTdkYzBAZ21haWwuY29tCi0t LQogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3RpZHN0b3JlL3Rlc3RfdGlkc3RvcmUuYyB8IDE2ICsr KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3RpZHN0b3JlL3Rlc3RfdGlkc3RvcmUuYyBiL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF90aWRzdG9yZS90ZXN0X3RpZHN0b3JlLmMKaW5kZXggYzlhMDM1 ZmE0OTQuLmJmYzQwYmNlMjRjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfdGlk c3RvcmUvdGVzdF90aWRzdG9yZS5jCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF90aWRzdG9y ZS90ZXN0X3RpZHN0b3JlLmMKQEAgLTc1LDYgKzc1LDE5IEBAIGl0ZW1wdHJfY21wKGNvbnN0IHZv aWQgKmxlZnQsIGNvbnN0IHZvaWQgKnJpZ2h0KQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50 CitvZmZzZXRudW1iZXJfY21wKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCit7CisJT2Zm c2V0TnVtYmVyIGwgPSAqKGNvbnN0IE9mZnNldE51bWJlciAqKSBhOworCU9mZnNldE51bWJlciBy ID0gKihjb25zdCBPZmZzZXROdW1iZXIgKikgYjsKKworCWlmIChsIDwgcikKKwkJcmV0dXJuIC0x OworCWVsc2UgaWYgKGwgPiByKQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKwogLyoKICAq IENyZWF0ZSBhIFRpZFN0b3JlLiBJZiBzaGFyZWQgaXMgZmFsc2UsIHRoZSB0aWRzdG9yZSBpcyBj cmVhdGVkCiAgKiBvbiBUb3BNZW1vcnlDb250ZXh0LCBvdGhlcndpc2Ugb24gRFNBLiBBbHRob3Vn aCB0aGUgdGlkc3RvcmUKQEAgLTE3OCw2ICsxOTEsOSBAQCBkb19zZXRfYmxvY2tfb2Zmc2V0cyhQ R19GVU5DVElPTl9BUkdTKQogCW5vZmZzID0gQXJyYXlHZXROSXRlbXMoQVJSX05ESU0odGEpLCBB UlJfRElNUyh0YSkpOwogCW9mZnMgPSAoKE9mZnNldE51bWJlciAqKSBBUlJfREFUQV9QVFIodGEp KTsKIAorCS8qIFRpZFN0b3JlU2V0QmxvY2tPZmZzZXRzKCkgcmVxdWlyZXMgb2Zmc2V0cyB0byBi ZSBzdHJpY3RseSBhc2NlbmRpbmcuICovCisJcXNvcnQob2Zmcywgbm9mZnMsIHNpemVvZihPZmZz ZXROdW1iZXIpLCBvZmZzZXRudW1iZXJfY21wKTsKKwogCS8qIFNldCBUSURzIGluIHRoZSBzdG9y ZSAqLwogCVRpZFN0b3JlTG9ja0V4Y2x1c2l2ZSh0aWRzdG9yZSk7CiAJVGlkU3RvcmVTZXRCbG9j a09mZnNldHModGlkc3RvcmUsIGJsa25vLCBvZmZzLCBub2Zmcyk7Ci0tIAoyLjU0LjAKCg== --000000000000d1cf010650884cbf Content-Type: text/x-patch; charset="US-ASCII"; name="REL_18_0001-test_tidstore-Stabilize-regression-tests-by-sorting-.patch" Content-Disposition: attachment; filename="REL_18_0001-test_tidstore-Stabilize-regression-tests-by-sorting-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_moivs23w0 RnJvbSBkZDNiZjg5MzNmYzEzNjhiZmUyMmIwMzkzMzlhNDYzM2UyZjUxMGUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmVpIFYuIExlcGlraG92IiA8bGVwaWhvdkBnbWFpbC5j b20+CkRhdGU6IFdlZCwgMTUgQXByIDIwMjYgMTQ6NDE6NTEgKzAyMDAKU3ViamVjdDogW1BBVENI XSB0ZXN0X3RpZHN0b3JlOiBTdGFiaWxpemUgcmVncmVzc2lvbiB0ZXN0cyBieSBzb3J0aW5nIG9m ZnNldHMuCgpUaWRTdG9yZVNldEJsb2NrT2Zmc2V0cygpIHJlcXVpcmVzIGl0cyBvZmZzZXRzIGFy cmF5IHRvIGJlIHN0cmljdGx5CmFzY2VuZGluZyBhbmQgYXNzZXJ0cyB0aGlzIHByZWNvbmRpdGlv bi4gSW4gdGVzdF90aWRzdG9yZSwgd2Ugd2VyZQpwYXNzaW5nIHJhbmRvbSBvZmZzZXQgbnVtYmVy cyBkZWR1cGxpY2F0ZWQgYnkgYSBESVNUSU5DVCBjbGF1c2UgaW4gYW4KYXJyYXlfYWdnKCkgY2Fs bCBkaXJlY3RseSB0byB0aGUgZG9fc2V0X2Jsb2NrX29mZnNldHMoKSB0ZXN0Cmhhcm5lc3MuIEhv d2V2ZXIsIERJU1RJTkNUIHdpdGhvdXQgYW4gT1JERVIgQlkgY2xhdXNlIGRvZXMgbm90Cmd1YXJh bnRlZSBzb3J0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIFNRTCBzdGFuZGFyZC4KCkZpeCB0 aGlzIGJ5IHNvcnRpbmcgdGhlIG9mZnNldHMgaW4tcGxhY2UgaW5zaWRlIGRvX3NldF9ibG9ja19v ZmZzZXRzKCkKYmVmb3JlIGNhbGxpbmcgVGlkU3RvcmVTZXRCbG9ja09mZnNldHMoKS4KCldoaWxl IHRoaXMgYXNzZXJ0aW9uIGZhaWx1cmUgaXMgbm90IG9ic2VydmVkIGR1cmluZyByZWd1bGFyIHJl Z3Jlc3Npb24KdGVzdHMgYmVjYXVzZSB0aGV5IHVzZSBxdWVyaWVzIHNpbXBsZSBlbm91Z2ggdGhh dCB0aGUgb3B0aW1pemVyCmNvbnNpc3RlbnRseSBjaG9vc2VzIHBsYW5zIHlpZWxkaW5nIHNvcnRl ZCByZXN1bHRzLCBpdCBtYWtlcyBzZW5zZSB0bwpzdGFiaWxpemUgdGhlIHRlc3QuIFRoZSBmYWls dXJlIGNvdWxkIHRoZW9yZXRpY2FsbHkgb2NjdXIgZGVwZW5kaW5nIG9uCnRoZSBvcHRpbWl6ZXIn cyBwbGFuIGNob2ljZSwgYW5kIGhhcyBiZWVuIHJlcG9ydGVkIHdoZW4gZXhwZXJpbWVudGluZwp3 aXRoIGNlcnRhaW4gdGhpcmQtcGFydHkgZXh0ZW5zaW9ucy4KCkJhY2twYXRjaCB0byB2MTcsIHdo ZXJlIHRpZF9zdG9yZSB3YXMgaW50cm9kdWNlZCwgdG8gZW5zdXJlIGV4dGVuc2lvbgpkZXZlbG9w bWVudCBvbiBzdGFibGUgYnJhbmNoZXMgZG9lcyBub3QgaGl0IHRoaXMgYXNzZXJ0aW9uLgoKUmVw b3J0ZWQtYnk6IEFuZHJlaSBMZXBpa2hvdiA8bGVwaWhvdkBnbWFpbC5jb20+CkF1dGhvcjogQW5k cmVpIExlcGlraG92IDxsZXBpaG92QGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0 Z3IuZXMvbS9iOTdmMTg1MC1mYzdiLTQzYzQtOWIwNC00ZTk3YmI5ZTdkYzBAZ21haWwuY29tCi0t LQogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3RpZHN0b3JlL3Rlc3RfdGlkc3RvcmUuYyB8IDE2ICsr KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3RpZHN0b3JlL3Rlc3RfdGlkc3RvcmUuYyBiL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF90aWRzdG9yZS90ZXN0X3RpZHN0b3JlLmMKaW5kZXggZWIxNmUw ZmJmYTYuLmQxMmQ1NGYzNjc3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfdGlk c3RvcmUvdGVzdF90aWRzdG9yZS5jCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF90aWRzdG9y ZS90ZXN0X3RpZHN0b3JlLmMKQEAgLTc1LDYgKzc1LDE5IEBAIGl0ZW1wdHJfY21wKGNvbnN0IHZv aWQgKmxlZnQsIGNvbnN0IHZvaWQgKnJpZ2h0KQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50 CitvZmZzZXRudW1iZXJfY21wKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCit7CisJT2Zm c2V0TnVtYmVyIGwgPSAqKGNvbnN0IE9mZnNldE51bWJlciAqKSBhOworCU9mZnNldE51bWJlciBy ID0gKihjb25zdCBPZmZzZXROdW1iZXIgKikgYjsKKworCWlmIChsIDwgcikKKwkJcmV0dXJuIC0x OworCWVsc2UgaWYgKGwgPiByKQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKwogLyoKICAq IENyZWF0ZSBhIFRpZFN0b3JlLiBJZiBzaGFyZWQgaXMgZmFsc2UsIHRoZSB0aWRzdG9yZSBpcyBj cmVhdGVkCiAgKiBvbiBUb3BNZW1vcnlDb250ZXh0LCBvdGhlcndpc2Ugb24gRFNBLiBBbHRob3Vn aCB0aGUgdGlkc3RvcmUKQEAgLTE3OSw2ICsxOTIsOSBAQCBkb19zZXRfYmxvY2tfb2Zmc2V0cyhQ R19GVU5DVElPTl9BUkdTKQogCW5vZmZzID0gQXJyYXlHZXROSXRlbXMoQVJSX05ESU0odGEpLCBB UlJfRElNUyh0YSkpOwogCW9mZnMgPSAoKE9mZnNldE51bWJlciAqKSBBUlJfREFUQV9QVFIodGEp KTsKIAorCS8qIFRpZFN0b3JlU2V0QmxvY2tPZmZzZXRzKCkgcmVxdWlyZXMgb2Zmc2V0cyB0byBi ZSBzdHJpY3RseSBhc2NlbmRpbmcuICovCisJcXNvcnQob2Zmcywgbm9mZnMsIHNpemVvZihPZmZz ZXROdW1iZXIpLCBvZmZzZXRudW1iZXJfY21wKTsKKwogCS8qIFNldCBUSURzIGluIHRoZSBzdG9y ZSAqLwogCVRpZFN0b3JlTG9ja0V4Y2x1c2l2ZSh0aWRzdG9yZSk7CiAJVGlkU3RvcmVTZXRCbG9j a09mZnNldHModGlkc3RvcmUsIGJsa25vLCBvZmZzLCBub2Zmcyk7Ci0tIAoyLjU0LjAKCg== --000000000000d1cf010650884cbf--