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.94.2) (envelope-from ) id 1qVAhY-00GWdw-Pw for pgsql-bugs@arkaria.postgresql.org; Sun, 13 Aug 2023 13:00:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qVAhW-008XwJ-48 for pgsql-bugs@arkaria.postgresql.org; Sun, 13 Aug 2023 13:00:10 +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.94.2) (envelope-from ) id 1qVAhV-008XwB-Nu for pgsql-bugs@lists.postgresql.org; Sun, 13 Aug 2023 13:00:10 +0000 Received: from mail-lf1-x12a.google.com ([2a00:1450:4864:20::12a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qVAhS-0028r0-5M for pgsql-bugs@lists.postgresql.org; Sun, 13 Aug 2023 13:00:08 +0000 Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-4fe2d152f62so5581789e87.0 for ; Sun, 13 Aug 2023 06:00:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691931604; x=1692536404; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=G/3FbEdubGfHVL2y41KH8xPg264F8DRegdvKIxJSAgM=; b=jgO2sIWMg7Aqt3dwkQs6C4REYUa3UiwM+PIDqbA7/piIbieeVwBHklIH7UnJng7rFV pKaJzORa5XUP24GogKoZeJkmQw2j2j1JXN9ED/3UySGHRZubQXtoaUVikN3MafE9zkSL E/bADjfqzzfV/GRFAqSEEBR9g0L44g+d19hdFfgFY+NAFhfwLTESO4t4SJkuaaLfFL0X Oe1y7umb7yjleYJDkpv3EGJE0vd0s4JkYojQQu0fLyJqdCbjiKbS730aWcHdUh/4OX8h Cu/RJwvUR5t95JZy/Vbx5blrWjL0qYaizSEv8mVjPkE36CqPyFIpHUaZkDfffnVSCHLl AQdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691931604; x=1692536404; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=G/3FbEdubGfHVL2y41KH8xPg264F8DRegdvKIxJSAgM=; b=I6P0AQ7+L79PngtzcRyGzEi5FXzzYHZuW2eeJTj5HcE5/6hxYT0fXbNa+fgWPvMR1Z L0feAzKwRpYpIhRDspX0nKRhgMNcNfhAk3rZSk0syXcEi227RmGm/DGO+e5Oqq0EfpI6 VY+7Y/D3HnHpMP2nIFHTC+vtDTPTAVdQanKZ2WIjAWXsgnZiNtfqv8sJJutvAXs6+O+a cP+rnCOuvfxl6pRI267lYLgxXfaNfkHjNFmNfi3sRiqr9FUqTcPirslvvvUQo5MijaHd U9NtjUZjiFlSeJXTizL3QSbsAver0/D/ZzeTAoVAzQp0iAYgbJ68zC7goVD6qqtM1zNH pjsw== X-Gm-Message-State: AOJu0Yyr2FSaeWhtRCvGl+M8f8tNEDSa4TAtAyqc18Pnkh9hrhe5iwlS DckwQLPXeI9KS9tJNTkkxBo6fDWgy/w= X-Google-Smtp-Source: AGHT+IHqwhOpJKrmNRV6wLtbBVMg+VixrqReiwvX9QVQZH38pvrF8uXxjTX1Men1GNlYsH4XUEp/vg== X-Received: by 2002:a05:6512:3103:b0:4fb:9da2:6cec with SMTP id n3-20020a056512310300b004fb9da26cecmr4999121lfb.7.1691931603603; Sun, 13 Aug 2023 06:00:03 -0700 (PDT) Received: from [1.0.0.7] ([178.155.23.36]) by smtp.gmail.com with ESMTPSA id u8-20020ac248a8000000b004fe0760354bsm1506039lfg.275.2023.08.13.06.00.01 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 13 Aug 2023 06:00:02 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------NqKcFDTRwWM6kYLeX6KcBA1j" Message-ID: Date: Sun, 13 Aug 2023 16:00:01 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: BUG #17950: Incorrect memory access in gtsvector_picksplit() Content-Language: en-US From: Alexander Lakhin To: pgsql-bugs@lists.postgresql.org References: <17950-6c80a8d2b94ec695@postgresql.org> In-Reply-To: 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. --------------NqKcFDTRwWM6kYLeX6KcBA1j Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 17.06.2023 17:00, Alexander Lakhin wrote: > 29.05.2023 23:00, PG Bug reporting form wrote: >> The following bug has been logged on the website: >> >> Bug reference:      17950 > > I managed to reduce the reproducer to the following: > CREATE TABLE tst(t tsvector); > INSERT INTO tst SELECT array_to_string(array(SELECT 'a' || x::text FROM generate_series(1, 125) x), ' ')::tsvector > FROM generate_series(1, 3000); > INSERT INTO tst SELECT '' FROM generate_series(1, 100); > CREATE INDEX gistidx ON tst USING gist (t tsvector_ops(siglen=1)); > > > A trivial fix for the issue is attached. > I can also propose a regression test addition that demonstrates the valgrind complaint and also the output of gtsvectorout() for the case ISALLTRUE and the opposite. This addition increases the duration of `make check -C contrib/pageinspect` under valgrind by 7-8 seconds for me: ok 5         - gist                                     2496 ms -> ok 5         - gist                                     9890 ms In absence of any objections or other propositions, I'm inclined to register this bugfix on the commitfest. Best regards, Alexander --------------NqKcFDTRwWM6kYLeX6KcBA1j Content-Type: text/x-patch; charset=UTF-8; name="v1-01-fix-gtsvector_picksplit.patch" Content-Disposition: attachment; filename="v1-01-fix-gtsvector_picksplit.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c2dpc3RpZHguYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC90c2dpc3RpZHguYwppbmRleCBmMGNkMjg2NmZmLi4xMmE0MTEx ZTk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNnaXN0aWR4LmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2lzdGlkeC5jCkBAIC03MzAsNyArNzMwLDcg QEAgZ3RzdmVjdG9yX3BpY2tzcGxpdChQR19GVU5DVElPTl9BUkdTKQogCQkJCXNpemVfYWxw aGEgPSBTSUdMRU5CSVQoc2lnbGVuKSAtCiAJCQkJCXNpemViaXR2ZWMoKGNhY2hlW2pdLmFs bGlzdHJ1ZSkgPwogCQkJCQkJCSAgIEdFVFNJR04oZGF0dW1fbCkgOgotCQkJCQkJCSAgIEdF VFNJR04oY2FjaGVbal0uc2lnbiksCisJCQkJCQkJICAgY2FjaGVbal0uc2lnbiwKIAkJCQkJ CQkgICBzaWdsZW4pOwogCQl9CiAJCWVsc2UKQEAgLTc0NCw3ICs3NDQsNyBAQCBndHN2ZWN0 b3JfcGlja3NwbGl0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJc2l6ZV9iZXRhID0gU0lHTEVO QklUKHNpZ2xlbikgLQogCQkJCQlzaXplYml0dmVjKChjYWNoZVtqXS5hbGxpc3RydWUpID8K IAkJCQkJCQkgICBHRVRTSUdOKGRhdHVtX3IpIDoKLQkJCQkJCQkgICBHRVRTSUdOKGNhY2hl W2pdLnNpZ24pLAorCQkJCQkJCSAgIGNhY2hlW2pdLnNpZ24sCiAJCQkJCQkJICAgc2lnbGVu KTsKIAkJfQogCQllbHNlCg== --------------NqKcFDTRwWM6kYLeX6KcBA1j Content-Type: text/x-patch; charset=UTF-8; name="v1-02-fix-gtsvectorout.patch" Content-Disposition: attachment; filename="v1-02-fix-gtsvectorout.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c2dpc3RpZHguYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC90c2dpc3RpZHguYwppbmRleCAxMmE0MTExZTk5Li4yNzIyYzAy NDU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNnaXN0aWR4LmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2lzdGlkeC5jCkBAIC0xMTUsMTAgKzExNSwx NSBAQCBndHN2ZWN0b3JvdXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJc3ByaW50ZihvdXRidWYs IEFSUk9VVFNUUiwgKGludCkgQVJSTkVMRU0oa2V5KSk7CiAJZWxzZQogCXsKLQkJaW50CQkJ c2lnbGVuID0gR0VUU0lHTEVOKGtleSk7Ci0JCWludAkJCWNudHRydWUgPSAoSVNBTExUUlVF KGtleSkpID8gU0lHTEVOQklUKHNpZ2xlbikgOiBzaXplYml0dmVjKEdFVFNJR04oa2V5KSwg c2lnbGVuKTsKKwkJaWYgKElTQUxMVFJVRShrZXkpKQorCQkJc3ByaW50ZihvdXRidWYsICJh bGwgdHJ1ZSBiaXRzIik7CisJCWVsc2UKKwkJeworCQkJaW50CQkJc2lnbGVuID0gR0VUU0lH TEVOKGtleSk7CisJCQlpbnQJCQljbnR0cnVlID0gKElTQUxMVFJVRShrZXkpKSA/IFNJR0xF TkJJVChzaWdsZW4pIDogc2l6ZWJpdHZlYyhHRVRTSUdOKGtleSksIHNpZ2xlbik7CiAKLQkJ c3ByaW50ZihvdXRidWYsIFNJTkdPVVRTVFIsIGNudHRydWUsIChpbnQpIFNJR0xFTkJJVChz aWdsZW4pIC0gY250dHJ1ZSk7CisJCQlzcHJpbnRmKG91dGJ1ZiwgU0lOR09VVFNUUiwgY250 dHJ1ZSwgKGludCkgU0lHTEVOQklUKHNpZ2xlbikgLSBjbnR0cnVlKTsKKwkJfQogCX0KIAog CVBHX0ZSRUVfSUZfQ09QWShrZXksIDApOwo= --------------NqKcFDTRwWM6kYLeX6KcBA1j Content-Type: text/x-patch; charset=UTF-8; name="v1-03-test-for-tsgistidx.patch" Content-Disposition: attachment; filename="v1-03-test-for-tsgistidx.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvZ2lzdC5vdXQgYi9j b250cmliL3BhZ2VpbnNwZWN0L2V4cGVjdGVkL2dpc3Qub3V0CmluZGV4IGQxYWRiYWI4YWUu LjJmNGQwYjI3YjAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQv Z2lzdC5vdXQKKysrIGIvY29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9naXN0Lm91dApA QCAtMTMxLDMgKzEzMSwyOSBAQCBTRUxFQ1Qga2V5cyBBUyBrZXlzX2xlYWZfMQogKDEgcm93 KQogCiBEUk9QIFRBQkxFIHRlc3RfZ2lzdDsKKy0tIFRlc3QgZm9yIGtleXMgb3V0cHV0IGJ5 IGd0c3ZlY3Rvcm91dCgpIGFuZCBhbHNvIGV4ZXJjaXNlCistLSBhIGNvcm5lciBjYXNlIG9m IHRzdmVjdG9yJ3MgcGlja3NwbGl0LgorQ1JFQVRFIFRBQkxFIHRlc3RfdHN2ZWN0b3IodCB0 c3ZlY3Rvcik7CitJTlNFUlQgSU5UTyB0ZXN0X3RzdmVjdG9yCisgIFNFTEVDVCBhcnJheV90 b19zdHJpbmcoYXJyYXkoU0VMRUNUICdhJyB8fCB4Ojp0ZXh0IEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEyNSkgeCksICcgJyk6OnRzdmVjdG9yCisgIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDMwMDApOworSU5TRVJUIElOVE8gdGVzdF90c3ZlY3RvciBTRUxFQ1QgJycgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKTsKK0NSRUFURSBJTkRFWCB0c3ZlY3Rvcl9naXN0X2lk eF8xIE9OIHRlc3RfdHN2ZWN0b3IgVVNJTkcgZ2lzdCAodCB0c3ZlY3Rvcl9vcHMoc2lnbGVu PTEpKTsKK0NSRUFURSBJTkRFWCB0c3ZlY3Rvcl9naXN0X2lkeF8xMCBPTiB0ZXN0X3RzdmVj dG9yIFVTSU5HIGdpc3QgKHQgdHN2ZWN0b3Jfb3BzKHNpZ2xlbj0xMCkpOworU0VMRUNUIGtl eXMKKyAgRlJPTSBnaXN0X3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0c3ZlY3Rvcl9naXN0 X2lkeF8xJywgMCksICd0c3ZlY3Rvcl9naXN0X2lkeF8xJykKKyAgV0hFUkUgaXRlbW9mZnNl dCA9IDE7CisgICAgICAgICBrZXlzICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAodCk9KCJhbGwgdHJ1ZSBiaXRzIikKKygxIHJvdykKKworU0VMRUNUIGtleXMKKyAg RlJPTSBnaXN0X3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0c3ZlY3Rvcl9naXN0X2lkeF8x MCcsIDApLCAndHN2ZWN0b3JfZ2lzdF9pZHhfMTAnKQorICBXSEVSRSBpdGVtb2Zmc2V0ID0g MTsKKyAgICAgICAgICAgICAgICBrZXlzICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAodCk9KCI2MiB0cnVlIGJpdHMsIDE4IGZh bHNlIGJpdHMiKQorKDEgcm93KQorCitEUk9QIFRBQkxFIHRlc3RfdHN2ZWN0b3I7CmRpZmYg LS1naXQgYS9jb250cmliL3BhZ2VpbnNwZWN0L3NxbC9naXN0LnNxbCBiL2NvbnRyaWIvcGFn ZWluc3BlY3Qvc3FsL2dpc3Quc3FsCmluZGV4IGQyNjM1NDJiYTEuLjNmZTI5MzE3YjkgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvcGFnZWluc3BlY3Qvc3FsL2dpc3Quc3FsCisrKyBiL2NvbnRy aWIvcGFnZWluc3BlY3Qvc3FsL2dpc3Quc3FsCkBAIC02NywzICs2NywyMSBAQCBTRUxFQ1Qg a2V5cyBBUyBrZXlzX2xlYWZfMQogICBXSEVSRSBpdGVtb2Zmc2V0ID0gMTsKIAogRFJPUCBU QUJMRSB0ZXN0X2dpc3Q7CisKKy0tIFRlc3QgZm9yIGtleXMgb3V0cHV0IGJ5IGd0c3ZlY3Rv cm91dCgpIGFuZCBhbHNvIGV4ZXJjaXNlCistLSBhIGNvcm5lciBjYXNlIG9mIHRzdmVjdG9y J3MgcGlja3NwbGl0LgorQ1JFQVRFIFRBQkxFIHRlc3RfdHN2ZWN0b3IodCB0c3ZlY3Rvcik7 CitJTlNFUlQgSU5UTyB0ZXN0X3RzdmVjdG9yCisgIFNFTEVDVCBhcnJheV90b19zdHJpbmco YXJyYXkoU0VMRUNUICdhJyB8fCB4Ojp0ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEy NSkgeCksICcgJyk6OnRzdmVjdG9yCisgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwMDAp OworSU5TRVJUIElOVE8gdGVzdF90c3ZlY3RvciBTRUxFQ1QgJycgRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwKTsKK0NSRUFURSBJTkRFWCB0c3ZlY3Rvcl9naXN0X2lkeF8xIE9OIHRl c3RfdHN2ZWN0b3IgVVNJTkcgZ2lzdCAodCB0c3ZlY3Rvcl9vcHMoc2lnbGVuPTEpKTsKK0NS RUFURSBJTkRFWCB0c3ZlY3Rvcl9naXN0X2lkeF8xMCBPTiB0ZXN0X3RzdmVjdG9yIFVTSU5H IGdpc3QgKHQgdHN2ZWN0b3Jfb3BzKHNpZ2xlbj0xMCkpOworCitTRUxFQ1Qga2V5cworICBG Uk9NIGdpc3RfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3RzdmVjdG9yX2dpc3RfaWR4XzEn LCAwKSwgJ3RzdmVjdG9yX2dpc3RfaWR4XzEnKQorICBXSEVSRSBpdGVtb2Zmc2V0ID0gMTsK K1NFTEVDVCBrZXlzCisgIEZST00gZ2lzdF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndHN2 ZWN0b3JfZ2lzdF9pZHhfMTAnLCAwKSwgJ3RzdmVjdG9yX2dpc3RfaWR4XzEwJykKKyAgV0hF UkUgaXRlbW9mZnNldCA9IDE7CitEUk9QIFRBQkxFIHRlc3RfdHN2ZWN0b3I7Cg== --------------NqKcFDTRwWM6kYLeX6KcBA1j--