Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eX9uH-0006xP-Er for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Jan 2018 18:06:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eX9uG-0001Bk-HI for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Jan 2018 18:06:20 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1eX9uG-0001Ak-5N for pgsql-hackers@lists.postgresql.org; Thu, 04 Jan 2018 18:06:20 +0000 Received: from mail-lf0-x244.google.com ([2a00:1450:4010:c07::244]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1eX9uC-0006fv-FO for pgsql-hackers@postgresql.org; Thu, 04 Jan 2018 18:06:18 +0000 Received: by mail-lf0-x244.google.com with SMTP id u84so2647290lff.7 for ; Thu, 04 Jan 2018 10:06:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language; bh=VPjLKHZpgPXRF1OSQ9Ty7vlBBKlF8Y/kYO2aLCPgVYY=; b=VjUY6Bh1yCCv6Lavh2lr3U5ZbozTAjmhGneeedItZB1MheREPF3p6kUDRePw7XR0V0 fza+6N32zs92UFBY5Q3gtpzYqi9P+f5WbTH8HqVItXFiTT5+mLNdWk5YHvkbUWzMKCmM ewNw71HjKFy3HXkbFcfTmtSPr1MtSpXEay9n3cjJn0KQ/0iJgVWxpD208Y1R5gdnRBHA p74wf8X7t4SVXu1iECFou5NpkLr80IH4FH/xHmZPAZGqH0vIvMxCLe2APfvYz2MGYHPT 3i+zH2Z6lXZnNeNIpXnWubbGqjQo78Rn9PMNZift4e9PiYoB3k29Yqs6Ux1GE+tKuAJp LKQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=VPjLKHZpgPXRF1OSQ9Ty7vlBBKlF8Y/kYO2aLCPgVYY=; b=m24ZN4I4sJcCw34djFESu+AeNkfbuZmKq1gTjrD7SBYGCQRD7KFEf4i+qbiissTa1s no15K0j5UUx9yslexEXZRbfZQJo3i1xEzj2C0PL5YoM72DVGmMrHMWVG8EJsAHvBWkRN zHRjK8YGNPDBotQuQ2eAIG/OjKzJDAlLe8aPGGJUmdgW9fI9dga77kRlfvOV0eRJIFlh OueG7SgPqrWfPBg28HhKl5KKMedCSejhbhIs3d4y3dk4G8+YtB5xLke/OqKit5NObEwn Zm9ywCV4lkhb4F3z/1Wy5yOl6E7O4ngseJ4EYJTZh2qYRp0oN+OvbKJamkF+6DZ5ftRK pcRA== X-Gm-Message-State: AKGB3mL86HhSopPrk4ybX93VUpANt7lKCgViw8Iu8XeTaEoUWb1QbZ8B H3+EC0n4l8JnWqVKN2OvgsXDVdqi X-Google-Smtp-Source: ACJfBotE45wNVnF706SIzxhlw2xc0z26Ko08ayxRSpYabJmc9CTrW7kMoNK1gEPKwWivRTkpdvcXNg== X-Received: by 10.46.43.216 with SMTP id r85mr198501ljr.5.1515089172918; Thu, 04 Jan 2018 10:06:12 -0800 (PST) Received: from [192.168.43.70] ([176.59.54.253]) by smtp.gmail.com with ESMTPSA id b68sm723441lfe.56.2018.01.04.10.06.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Jan 2018 10:06:10 -0800 (PST) Subject: Re: [HACKERS] wrong t_bits alignment in pageinspect To: Andrey Borodin Cc: PostgreSQL mailing lists References: <9B8647CA-7097-4A8C-9721-6DFAEE93D6AA@yandex-team.ru> From: Maksim Milyutin Message-ID: Date: Thu, 4 Jan 2018 21:06:09 +0300 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <9B8647CA-7097-4A8C-9721-6DFAEE93D6AA@yandex-team.ru> Content-Type: multipart/mixed; boundary="------------1617CE6781480358CE39D98E" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------1617CE6781480358CE39D98E Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Hi! 02.01.2018 12:33, Andrey Borodin wrote: >> 15 дек. 2017 г., в 18:53, Maksim Milyutin написал(а): >> >> I found out the problem in exposing values of t_bits field from heap_page_items function. > Probably, this [0] place contains similar bug too? > > [0] https://github.com/postgres/postgres/blob/master/contrib/pageinspect/heapfuncs.c#L439 Yes, it's so. Thanks a lot for notice. Attached a new version of patch with regression test. -- Regards, Maksim Milyutin --------------1617CE6781480358CE39D98E Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="pageinspect_tbits_alignment_fix_v2.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pageinspect_tbits_alignment_fix_v2.patch" ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvcGFnZS5vdXQgYi9j b250cmliL3BhZ2VpbnNwZWN0L2V4cGVjdGVkL3BhZ2Uub3V0CmluZGV4IDhlMTU5NDdhODEu Ljk3YWY2ZjViZDIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQv cGFnZS5vdXQKKysrIGIvY29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9wYWdlLm91dApA QCAtOTIsMyArOTIsMjAgQEAgY3JlYXRlIHRhYmxlIHRlc3RfcGFydDEgcGFydGl0aW9uIG9m IHRlc3RfcGFydGl0aW9uZWQgZm9yIHZhbHVlcyBmcm9tICggMSApIHRvICgKIHNlbGVjdCBn ZXRfcmF3X3BhZ2UoJ3Rlc3RfcGFydDEnLCAwKTsgLS0gZ2V0IGZhcnRoZXIgYW5kIGVycm9y IGFib3V0IGVtcHR5IHRhYmxlCiBFUlJPUjogIGJsb2NrIG51bWJlciAwIGlzIG91dCBvZiBy YW5nZSBmb3IgcmVsYXRpb24gInRlc3RfcGFydDEiCiBkcm9wIHRhYmxlIHRlc3RfcGFydGl0 aW9uZWQ7CistLSBjaGVjayBudWxsIGJpdG1hcCBhbGlnbm1lbnQgZm9yIHRhYmxlIHdob3Nl IHRoZSBudW1iZXIgb2YgYXR0cmlidXRlcyBpcyBtdWx0aXBsZSBvZiA4CitjcmVhdGUgdGFi bGUgdGVzdDggKGYxIGludCwgZjIgaW50LCBmMyBpbnQsIGY0IGludCwgZjUgaW50LCBmNiBp bnQsIGY3IGludCwgZjggaW50KTsKK2luc2VydCBpbnRvIHRlc3Q4KGYxLCBmOCkgdmFsdWVz ICh4J2YxJzo6aW50LCAwKTsKK3NlbGVjdCB0X2JpdHMsIHRfZGF0YSBmcm9tIGhlYXBfcGFn ZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q4JywgMCkpOworICB0X2JpdHMgIHwgICAgICAg dF9kYXRhICAgICAgIAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEwMDAw MDAxIHwgXHhmMTAwMDAwMDAwMDAwMDAwCisoMSByb3cpCisKK3NlbGVjdCB0dXBsZV9kYXRh X3NwbGl0KCd0ZXN0OCc6OnJlZ2NsYXNzLCB0X2RhdGEsIHRfaW5mb21hc2ssIHRfaW5mb21h c2syLCB0X2JpdHMpCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0 ZXN0OCcsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICB0dXBsZV9kYXRhX3NwbGl0ICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7IlxceGYxMDAwMDAwIixOVUxMLE5V TEwsTlVMTCxOVUxMLE5VTEwsTlVMTCwiXFx4MDAwMDAwMDAifQorKDEgcm93KQorCitkcm9w IHRhYmxlIHRlc3Q4OwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wYWdlaW5zcGVjdC9oZWFwZnVu Y3MuYyBiL2NvbnRyaWIvcGFnZWluc3BlY3QvaGVhcGZ1bmNzLmMKaW5kZXggMDg4MjU0NDUz ZS4uOTlmNDA5ODQ2YyAxMDA2NDQKLS0tIGEvY29udHJpYi9wYWdlaW5zcGVjdC9oZWFwZnVu Y3MuYworKysgYi9jb250cmliL3BhZ2VpbnNwZWN0L2hlYXBmdW5jcy5jCkBAIC0yMzQsNyAr MjM0LDcgQEAgaGVhcF9wYWdlX2l0ZW1zKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJCWludAkJ CWJpdHNfbGVuOwogCiAJCQkJCWJpdHNfbGVuID0KLQkJCQkJCSgodHVwaGRyLT50X2luZm9t YXNrMiAmIEhFQVBfTkFUVFNfTUFTSykgLyA4ICsgMSkgKiA4OworCQkJCQkJQklUTUFQTEVO KEhlYXBUdXBsZUhlYWRlckdldE5hdHRzKHR1cGhkcikpICogQklUU19QRVJfQllURTsKIAkJ CQkJdmFsdWVzWzExXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oCiAJCQkJCQkJCQkJCQkJIGJp dHNfdG9fdGV4dCh0dXBoZHItPnRfYml0cywgYml0c19sZW4pKTsKIAkJCQl9CkBAIC00MzYs MTIgKzQzNiwxMiBAQCB0dXBsZV9kYXRhX3NwbGl0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWlu dAkJCWJpdHNfc3RyX2xlbjsKIAkJaW50CQkJYml0c19sZW47CiAKLQkJYml0c19sZW4gPSAo dF9pbmZvbWFzazIgJiBIRUFQX05BVFRTX01BU0spIC8gOCArIDE7CisJCWJpdHNfbGVuID0g QklUTUFQTEVOKHRfaW5mb21hc2syICYgSEVBUF9OQVRUU19NQVNLKSAqIEJJVFNfUEVSX0JZ VEU7CiAJCWlmICghdF9iaXRzX3N0cikKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJj b2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAogCQkJCQkgZXJybXNnKCJhcmd1bWVudCBv ZiB0X2JpdHMgaXMgbnVsbCwgYnV0IGl0IGlzIGV4cGVjdGVkIHRvIGJlIG51bGwgYW5kICVk IGNoYXJhY3RlciBsb25nIiwKLQkJCQkJCQliaXRzX2xlbiAqIDgpKSk7CisJCQkJCQkJYml0 c19sZW4pKSk7CiAKIAkJYml0c19zdHJfbGVuID0gc3RybGVuKHRfYml0c19zdHIpOwogCQlp ZiAoKGJpdHNfc3RyX2xlbiAlIDgpICE9IDApCkBAIC00NDksMTEgKzQ0OSwxMSBAQCB0dXBs ZV9kYXRhX3NwbGl0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJCShlcnJjb2RlKEVSUkNPREVf REFUQV9DT1JSVVBURUQpLAogCQkJCQkgZXJybXNnKCJsZW5ndGggb2YgdF9iaXRzIGlzIG5v dCBhIG11bHRpcGxlIG9mIGVpZ2h0IikpKTsKIAotCQlpZiAoYml0c19sZW4gKiA4ICE9IGJp dHNfc3RyX2xlbikKKwkJaWYgKGJpdHNfbGVuICE9IGJpdHNfc3RyX2xlbikKIAkJCWVyZXBv cnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAogCQkJ CQkgZXJybXNnKCJ1bmV4cGVjdGVkIGxlbmd0aCBvZiB0X2JpdHMgJXUsIGV4cGVjdGVkICVk IiwKLQkJCQkJCQliaXRzX3N0cl9sZW4sIGJpdHNfbGVuICogOCkpKTsKKwkJCQkJCQliaXRz X3N0cl9sZW4sIGJpdHNfbGVuKSkpOwogCiAJCS8qIGRvIHRoZSBjb252ZXJzaW9uICovCiAJ CXRfYml0cyA9IHRleHRfdG9fYml0cyh0X2JpdHNfc3RyLCBiaXRzX3N0cl9sZW4pOwpkaWZm IC0tZ2l0IGEvY29udHJpYi9wYWdlaW5zcGVjdC9zcWwvcGFnZS5zcWwgYi9jb250cmliL3Bh Z2VpbnNwZWN0L3NxbC9wYWdlLnNxbAppbmRleCA0OTNjYTliMjExLi4xNmI0NTcxZmJmIDEw MDY0NAotLS0gYS9jb250cmliL3BhZ2VpbnNwZWN0L3NxbC9wYWdlLnNxbAorKysgYi9jb250 cmliL3BhZ2VpbnNwZWN0L3NxbC9wYWdlLnNxbApAQCAtNDEsMyArNDEsMTEgQEAgc2VsZWN0 IGdldF9yYXdfcGFnZSgndGVzdF9wYXJ0aXRpb25lZCcsIDApOyAtLSBlcnJvciBhYm91dCBw YXJ0aXRpb25lZCB0YWJsZQogY3JlYXRlIHRhYmxlIHRlc3RfcGFydDEgcGFydGl0aW9uIG9m IHRlc3RfcGFydGl0aW9uZWQgZm9yIHZhbHVlcyBmcm9tICggMSApIHRvICgxMDApOwogc2Vs ZWN0IGdldF9yYXdfcGFnZSgndGVzdF9wYXJ0MScsIDApOyAtLSBnZXQgZmFydGhlciBhbmQg ZXJyb3IgYWJvdXQgZW1wdHkgdGFibGUKIGRyb3AgdGFibGUgdGVzdF9wYXJ0aXRpb25lZDsK KworLS0gY2hlY2sgbnVsbCBiaXRtYXAgYWxpZ25tZW50IGZvciB0YWJsZSB3aG9zZSB0aGUg bnVtYmVyIG9mIGF0dHJpYnV0ZXMgaXMgbXVsdGlwbGUgb2YgOAorY3JlYXRlIHRhYmxlIHRl c3Q4IChmMSBpbnQsIGYyIGludCwgZjMgaW50LCBmNCBpbnQsIGY1IGludCwgZjYgaW50LCBm NyBpbnQsIGY4IGludCk7CitpbnNlcnQgaW50byB0ZXN0OChmMSwgZjgpIHZhbHVlcyAoeCdm MSc6OmludCwgMCk7CitzZWxlY3QgdF9iaXRzLCB0X2RhdGEgZnJvbSBoZWFwX3BhZ2VfaXRl bXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OCcsIDApKTsKK3NlbGVjdCB0dXBsZV9kYXRhX3NwbGl0 KCd0ZXN0OCc6OnJlZ2NsYXNzLCB0X2RhdGEsIHRfaW5mb21hc2ssIHRfaW5mb21hc2syLCB0 X2JpdHMpCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OCcs IDApKTsKK2Ryb3AgdGFibGUgdGVzdDg7Cg== --------------1617CE6781480358CE39D98E--