Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1Z0ty0-0006nb-4J for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Jun 2015 15:55:32 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1Z0txz-0004BF-EE for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Jun 2015 15:55:31 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1Z0txv-00044l-0a; Fri, 05 Jun 2015 15:55:27 +0000 Received: from mail-bl2on0076.outbound.protection.outlook.com ([65.55.169.76] helo=na01-bl2-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1Z0txo-00041Y-4X; Fri, 05 Jun 2015 15:55:22 +0000 Authentication-Results: postgresql.org; dkim=none (message not signed) header.d=none; Received: from decina.attlocal.net (2602:306:ce8b:3460:65f0:b806:f32d:feba) by BY2PR11MB0677.namprd11.prod.outlook.com (25.163.111.19) with Microsoft SMTP Server (TLS) id 15.1.172.22; Fri, 5 Jun 2015 15:55:15 +0000 Message-ID: <5571C660.3030404@BlueTreble.com> Date: Fri, 5 Jun 2015 10:55:12 -0500 From: Jim Nasby User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: Michael Paquier , Craig Ringer CC: Stephen Frost , Josh Berkus , Noah Misch , Bruce Momjian , Andres Freund , Robert Haas , Tom Lane , Magnus Hagander , "pgsql-hackers@postgresql.org" , pgsql-core Subject: Re: [CORE] Restore-reliability mode References: <20150529223321.GB6535@alap3.anarazel.de> <12510.1432958887@sss.pgh.pa.us> <20150530154559.GA25053@momjian.us> <20150530204727.GJ13944@alap3.anarazel.de> <20150531024845.GB13697@momjian.us> <20150603135049.GA74753@tornado.leadboat.com> <556F3798.6010707@agliodbs.com> <20150604144317.GT26667@tamriel.snowman.net> In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [2602:306:ce8b:3460:65f0:b806:f32d:feba] X-ClientProxiedBy: CO2PR18CA0036.namprd18.prod.outlook.com (25.161.80.46) To BY2PR11MB0677.namprd11.prod.outlook.com (25.163.111.19) X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR11MB0677; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:BY2PR11MB0677; BCL:0; PCL:0; RULEID:; SRVR:BY2PR11MB0677; X-Forefront-PRVS: 05986C03E0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(24454002)(479174004)(377454003)(51704005)(40100003)(59896002)(5001960100002)(93886004)(189998001)(36756003)(19580395003)(4001350100001)(5001770100001)(46102003)(65816999)(86362001)(50986999)(54356999)(122386002)(83506001)(87266999)(76176999)(47776003)(92566002)(87976001)(53416004)(42186005)(33656002)(62966003)(77156002)(15395725005)(23676002)(2950100001)(15975445007)(50466002)(65956001)(3826002)(85282002)(336755003)(18886065003); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR11MB0677; H:decina.attlocal.net; FPR:; SPF:None; MLV:sfv; LANG:en; X-OriginatorOrg: bluetreble.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2015 15:55:15.2805 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR11MB0677 X-Pg-Spam-Score: -3.0 (---) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org On 6/4/15 11:28 PM, Michael Paquier wrote: * More configuration variations; ./configure, initdb options, and *.conf * More edge-case testing. (ie: what happens to each varlena as it approaches 1GB? 1B tables test. Etc.) * More race-condition testing, like the tool Peter used heavily during ON CONFLICT development (written by Jeff Janes?) * More non-SQL testing. For example, the logic in HeapTupleSatisfies* is quite complicated yet there's no tests dedicated to ensuring the logic is correct because it'd be extremely difficult (if not impossible) to construct those tests at a SQL level. Testing them with direct test calls to HeapTupleSatisfies* wouldn't be difficult, but we have no machinery to do C level testing. >> Is pg_tap a reasonable starting point for this sort of testing? > IMO, using the TAP machinery would be a good base for that. What lacks > is a basic set of perl routines that one can easily use to set of test > scenarios. I think Stephen was referring specifically to pgTap (http://pgtap.org/). Isn't our TAP framework just different output from pg_regress? Is there documentation on our TAP stuff? >> >How would a test that would've caught the multixact issues look? > I have not followed closely those discussions, not sure about that. I've thought about this and unfortunately I think this may be a scenario that's just too complex to completely protect against with a test. What might help though is having better testing of edge cases (such as MXID wrap) and then combining that with other forms of testing, such as pg_upgrade and streaming rep. testing. Test things like "What happens if we pg_upgrade a cluster that's in danger of wraparound?" -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Data in Trouble? Get it in Treble! http://BlueTreble.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers