Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kVhnD-0001M7-E3 for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Oct 2020 21:06:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kVhn8-0006IR-Sl for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Oct 2020 21:06:34 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kVhn8-0006Hp-Lx for pgsql-hackers@lists.postgresql.org; Thu, 22 Oct 2020 21:06:34 +0000 Received: from sss.pgh.pa.us ([66.207.139.130]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kVhn5-0005c5-Pg for pgsql-hackers@postgresql.org; Thu, 22 Oct 2020 21:06:33 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.15.2/8.15.2) with ESMTP id 09ML6JTt043210; Thu, 22 Oct 2020 17:06:19 -0400 From: Tom Lane To: Mark Dilger cc: Robert Haas , Peter Geoghegan , "Andrey M. Borodin" , Stephen Frost , Michael Paquier , Amul Sul , Dilip Kumar , Andres Freund , PostgreSQL-development Subject: Re: new heapcheck contrib module In-reply-to: <42432.1603399756@sss.pgh.pa.us> References: <12ED3DA8-25F0-4B68-937D-D907CFBF08E7@enterprisedb.com> <20200420194210.sevnpi4lyghoanxi@alap3.anarazel.de> <23E60C3C-C20A-4508-84AC-E0CEA59E784A@enterprisedb.com> <5F743835-3399-419C-8324-2D424237E999@enterprisedb.com> <885D2EC9-7D06-4903-A17D-72C184A1E1C5@enterprisedb.com> <5CC85F28-F210-47AC-8DA8-EC4E82AF3FD5@enterprisedb.com> <0C0349EB-DD85-4DA8-82C7-DF70AB714592@enterprisedb.com> <9DF93B83-FE46-4EC4-A99D-77A60729FD2D@enterprisedb.com> <50F6468F-5A5E-412A-86EC-DF24B549D733@enterprisedb.com> <7D603B53-8078-4AF0-851B-803FF4416501@enterprisedb.com> <98265AA9-7BDC-4708-9348-CC1B173BBE1D@enterprisedb.com> <209783.1603313248@sss.pgh.pa.us> <77A60E99-6054-40FD-A5D6-769C287D4A0F@enterprisedb.com> <721BFA83-EA6F-463D-A9DF-CE78A318B73A@enterprisedb.com> <2A7DA1A8-C4AA-43DF-A985-3CA52F4DC775@enterprisedb.com> <<40724.1603 Comments: In-reply-to Tom Lane message dated "Thu, 22 Oct 2020 16:49:16 -0400" MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <43208.1603400779.1@sss.pgh.pa.us> Date: Thu, 22 Oct 2020 17:06:19 -0400 Message-ID: <43209.1603400779@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk I wrote: > Mark Dilger writes: >> It is seeking to position 32 and writing '\x77\x77\x77\x77'. x86_64 is >> little-endian, and ppc32 and sparc64 are both big-endian, right? > They are, but that should not meaningfully affect the results of > that corruption step. You zapped only one line pointer not > several, but it would look the same regardless of endiannness. Oh, wait a second. ItemIdData has the flag bits in the middle: typedef struct ItemIdData { unsigned lp_off:15, /* offset to tuple (from start of page) */ lp_flags:2, /* state of line pointer, see below */ lp_len:15; /* byte length of tuple */ } ItemIdData; meaning that for that particular bit pattern, one endianness is going to see the flags as 01 (LP_NORMAL) and the other as 10 (LP_REDIRECT). The offset/len are corrupt either way, but I'd certainly expect that amcheck would produce different complaints about those two cases. So it's unsurprising if this test case's output is endian-dependent. regards, tom lane