Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1ZeVtV-0008Ri-4d for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Sep 2015 22:18:37 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1ZeVtT-0004WZ-9Q for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Sep 2015 22:18:35 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1ZeVs8-00034V-Ss for pgsql-hackers@postgresql.org; Tue, 22 Sep 2015 22:17:12 +0000 Received: from mail-by2on0058.outbound.protection.outlook.com ([207.46.100.58] helo=na01-by2-obe.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1ZeVry-0005mc-UF for pgsql-hackers@postgresql.org; Tue, 22 Sep 2015 22:17:11 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jim.Nasby@bluetreble.com; Received: from decina.local (70.113.16.71) by SN1PR11MB0687.namprd11.prod.outlook.com (10.163.207.145) with Microsoft SMTP Server (TLS) id 15.1.274.16; Tue, 22 Sep 2015 22:16:57 +0000 To: Pg Hackers From: Jim Nasby Subject: Less than ideal error reporting in pg_stat_statements Message-ID: <5601D354.5000703@BlueTreble.com> Date: Tue, 22 Sep 2015 17:16:52 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080308020804010606070906" X-Originating-IP: [70.113.16.71] X-ClientProxiedBy: SN1PR0501CA0027.namprd05.prod.outlook.com (25.163.126.165) To SN1PR11MB0687.namprd11.prod.outlook.com (25.163.207.145) X-Microsoft-Exchange-Diagnostics: 1; SN1PR11MB0687; 2:AypnswKDhuPOwH9lkPguYtPfaGwjoXwv/Cbb6DRzaOYSW84SIzU82iFpSc80euxgbmxQjr+7y6APtMX7fwF7Jd9Z9870LlZB/n4I2WQ4SeFbeau8zedCINiiaF69AAqWzV+3vBN3v7x0WcJTrkB74LrwNdlSBH2y/3Sll4nMLY0=; 3:GHWIIckQtNjGhDULeNk516g8jAf8ZC9BZaAcW9vrd1NliCm67L23NikcesDr+m9858IgjHuV01NOEG3A+w5FkOQ5SDQ0JjlT8AId4K9CDicP3v42Ot0ab0hwioNwHAc+XcQhKmJpFcCHd8lOjz1uoQ==; 25:LBx0CzvAw/3FQ+x5Jl+0Tx5g6+JVqJ9EqOvWBjdwyA25rzsFltctrVuAmH0rwd/aaVAXWxgz6PnA2WeBc79oWE1dizxAmc013U3+/jx1ynVZWEF2xtqvlZKeHyLog0KR+hczPcuOm8uFReP0W9Zdb4MuuDKkmdS+Ko99db2g15q0rl+PpTyf9d41Sb3MRno4CBbXWE9/Yy1TN+zQFZ+PP0mjMgPNNWM8NSTfrRRrQlR6fEqbJT1DEtWBgWsZw/tIjjXC2qomKgEP+A1x7aR8CQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR11MB0687; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001); SRVR:SN1PR11MB0687; BCL:0; PCL:0; RULEID:; SRVR:SN1PR11MB0687; X-Microsoft-Exchange-Diagnostics: 1; SN1PR11MB0687; 4:r9mUh4xVrFKlG/CP+5MFOr00BmA8NdkNuoQC0c4Su02ejzyBspfiyvavq2oWcM8vxIe3Hf/1+Di8HR2HVBWp3uWZg2LXGIh31tdfJqNwUPLAv585c+XyFmod0FJ1AoHoxyjLp18FKHmSe/CQ39sKHaIOsKyrSlDm7ntAO+EXy/KKJWPysGZd1uVHjYaF3mkT5cuxAzE7W8IJN+qf2XX6yXGrB2e2/uwBPlp7VfC13fSlIB0rX/XbG+BE6+vthNgwL2LBcs8BpZr/QSrFat2eABzg4Efs2YV0vT7W0oQujv8pGQ/M3I6Gqumm4eJj5xlzTmEtwWmUWma/Tqw7Dx/eWny9HgGpmnVGYlZVQkZGuQs= X-Forefront-PRVS: 0707248B64 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(199003)(189002)(40100003)(65806001)(64706001)(66066001)(84326002)(5001830100001)(77156002)(21490400002)(16601075003)(106356001)(59896002)(62966003)(122386002)(33656002)(36756003)(65956001)(101416001)(83506001)(15975445007)(92566002)(68736005)(5001860100001)(4610100001)(450100001)(568964001)(229853001)(97736004)(105586002)(54356999)(5890100001)(65816999)(87266999)(189998001)(4001350100001)(50986999)(110136002)(107886002)(81156007)(87976001)(19580395003)(80316001)(64126003)(5004730100002)(4001540100001)(512874002)(77096005)(5007970100001)(42186005)(5001920100001)(46102003)(86362001)(5001960100002)(85282002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR11MB0687; H:decina.local; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: bluetreble.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR11MB0687; 23:8XYzWQ++jB6tKVJqXKSvJs7/kUd3nLIqUTQN7r0uV?= =?us-ascii?Q?YsTLr6JGr1QzHzbpDHRzkRUcA8mNlB+GjvOBbMl9VxHJLFaM8eYC8cY7fc6S?= =?us-ascii?Q?f8XtlnMZjlvvVZYU2NOhYWdoR2qgvr/H3GTtmaqBCsmRusmlUG8hF95d3Qb3?= =?us-ascii?Q?64gYf9OyqMU+515QNP9rXC3GyJSiTMmONYYswnIpUhDtcYlsgP+nXx+hq1dq?= =?us-ascii?Q?t5i2+0Js6byM9dSqBPJuBJ0XVbGFYRMsEo1psOO2XYKryuFoJ74uYWg8kwt4?= =?us-ascii?Q?CifT/mKITTh4hIIGqNiExQpoY68flXC9cKzOd65bV/Qym/BLZrOBAAV+KbXx?= =?us-ascii?Q?IdVAQ6JMyQR1RR41nIyKH8KrC621bDASgFVGHSqMx/y5vUJGgckS5T+LwpmW?= =?us-ascii?Q?ScZSRjOqd90bb0JS0fPtNnvo9mFR4y82axbqDE3s4wUFdjUPCwY5PhKhQsZf?= =?us-ascii?Q?2Opo17UhDHpLeFfl+FMihJRZqQeKziUrJooxYGv7PrqMq7CCybJe434Th5XV?= =?us-ascii?Q?fw8NchoAAM5yd6Uo0IUDblwAorUWnpeQ1svNNwT9dKT53BbSD1cGZf8zLZf7?= =?us-ascii?Q?vALdJZ2vkJKCZkwhOKpbFmbVXh+sBAzSBTj88jyTcIBEmypRu9hUwkXa7l2Z?= =?us-ascii?Q?+YRDrUwuSh5lCgFfud8MhWSSRR7Sn6Z90II89/yRihqBBS8V3qAhZQOlbyhI?= =?us-ascii?Q?wQA86fCHKPu4jVsfZ+GCvp0gCQTb+Lg1yNpqbTjUCgvwn8hl84umfrKGpCRx?= =?us-ascii?Q?9HB3FpREd/kw7kkrE/9Ch80B4SiJeLKxEhjRAUuKwEQgGrVGESDERYbYZmM7?= =?us-ascii?Q?RPF91qzqRiRREgQMFLTQ0Iu+uU6rUf+6ON+JoO7hl6k/WgK6h936TmKQdgDe?= =?us-ascii?Q?60zd3hCkJtrndeZCzly8OiA+lFtfKgZk+mNGPzb+AdCyrf5tEWYYLr7v3U9G?= =?us-ascii?Q?Rh8VlEGUDhxRDQlNdBk+Yx1VKUB781q9uxs9PWqB6CJXUTmYv99PUW7SWgQF?= =?us-ascii?Q?H7kUgG5N0Pttb2lvXTj/CSBkzrwL6SrF0SyJz3US/QoHOa31EwcdQoqNL3fx?= =?us-ascii?Q?tRHq4e2D6ypaoInfOdvM2AELsynMFHNpra0+/xr7kqW5KQlA5N4Yvh23oquv?= =?us-ascii?Q?YGRxjCfqecEYJQdLdpMSv+LaPBEJvGR1dI2Hz53h4Odyk2J+lyZxBJwxShIy?= =?us-ascii?Q?UVGnQFX/H9cQbLIWz64eV3tcwu3HhrMQTB+AgQM4x8r4sW3j3zwCBCzvqt30?= =?us-ascii?Q?0Y6e3uH0Nw4JLYVspqOei3sJA7k0fU8HRym6cRSSZ2vSTiTQu7vJkJnCxwG9?= =?us-ascii?Q?RHPZl+kXbEHJMCwNVqqQHQuwIJNZQTxW/kmoXmlUghEM+MpZcI26YGoCy8Ea?= =?us-ascii?Q?9qZswCF6Rg6iWxvfUDyzaKKvpV8pA6SKbes2G/TRExw59Oe/aFu+p7N0swRg?= =?us-ascii?Q?0ujC5OgG+U6vV1cWEmNElA//qtLFj0Ll02/DkiFB8+MhQa9NI7z9CdreyyzK?= =?us-ascii?Q?f1yexXzJysQdg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR11MB0687; 5:IQ01/+x/4jI0X6tB9FEiskbVg7xO5IJHjDqX66i9Z3cBNbEWZilUKyllHeF+IjYLFEN+l8iUUj0esQ6/qw8RC9PW1Uta/TYlHEcBhZu6ycVm+ml4bdVbcKN6PmHdRinHKDY2vLyA6wJMFHalxQWbJg==; 24:tCeHilTO4tNbXL8BRT+1MGP+itE3eM7TbTzt5k5mTnzAIAcR2AH/xyiSBat+K4N5X6uCztTPb9dgz85jnLVUmU1gMX3SAJ6Y3oygb4Ig9pE=; 20:AioJh36UbqyUIM7ImSPNpzSihP5MqqW8Hho0xFcw8NiUih+XlMVgj+K8VBih82F27Cwpzdwag8PcRpFQrxgLZg== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: bluetreble.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2015 22:16:57.6354 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR11MB0687 X-Pg-Spam-Score: -1.9 (-) 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 --------------080308020804010606070906 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit A client was getting some hard to diagnose out of memory errors. What made this especially confusing was that there was no context reported at all, other than the (enormous) statement that triggered the error. At first I thought the lack of context indicated a palloc had failed during ereport() (since we apparently just toss the previous error when that happens), but it turns out there's some error reporting in pg_stat_statements that's less than ideal. Attached patch fixes, though I'm not sure if %lld is portable or not. I'll also argue that this is a bug and should be backpatched, but I'm not hell-bent on that. At the same time I looked for other messages that don't explicitly reference pg_stat_statements; the only others are in pg_stat_statements_internal() complaining about being called in an inappropriate function context. Presumably at that point there's a reasonable error context stack so I didn't bother with them. This still seems a bit fragile to me though. Anyone working in here has to notice that most every errmsg mentions pg_stat_statements and decide there's a good reason for that. ISTM it'd be better to push a new ErrorContextCallback onto the stack any time we enter the module. If folks think that's a good idea I'll pursue it as a separate patch. -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com --------------080308020804010606070906 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="patch.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch.diff" ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0 YXRfc3RhdGVtZW50cy5jIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMv cGdfc3RhdF9zdGF0ZW1lbnRzLmMKaW5kZXggNTliOGEyZS4uMDZhMDkxMiAx MDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3Rh dF9zdGF0ZW1lbnRzLmMKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVu dHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKQEAgLTE4OTMsMTQgKzE4OTMsMjQg QEAgcXRleHRfbG9hZF9maWxlKFNpemUgKmJ1ZmZlcl9zaXplKQogCiAJLyog QWxsb2NhdGUgYnVmZmVyOyBiZXdhcmUgdGhhdCBvZmZfdCBtaWdodCBiZSB3 aWRlciB0aGFuIHNpemVfdCAqLwogCWlmIChzdGF0LnN0X3NpemUgPD0gTWF4 QWxsb2NTaXplKQotCQlidWYgPSAoY2hhciAqKSBtYWxsb2Moc3RhdC5zdF9z aXplKTsKLQllbHNlCi0JCWJ1ZiA9IE5VTEw7Ci0JaWYgKGJ1ZiA9PSBOVUxM KQogCXsKKwkJYnVmID0gKGNoYXIgKikgbWFsbG9jKHN0YXQuc3Rfc2l6ZSk7 CisKKwkJaWYgKGJ1ZiA9PSBOVUxMKQorCQl7CisJCQllcmVwb3J0KExPRywK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9PVVRfT0ZfTUVNT1JZKSwKKwkJCQkJ IGVycm1zZygib3V0IG9mIG1lbW9yeSBhdHRlbXB0aW5nIHRvIHBnX3N0YXRf c3RhdGVtZW50IGZpbGUiKSwKKwkJCQkgZXJyZGV0YWlsKCJmaWxlIFwiJXNc Ijogc2l6ZSAlbGxkIiwgUEdTU19URVhUX0ZJTEUsIHN0YXQuc3Rfc2l6ZSkp KTsKKwkJCUNsb3NlVHJhbnNpZW50RmlsZShmZCk7CisJCQlyZXR1cm4gTlVM TDsKKwkJfQorCX0gZWxzZSB7CiAJCWVyZXBvcnQoTE9HLAorCQkJIAkvKiBJ cyB0aGVyZSBhIGJldHRlciBjb2RlIHRvIHVzZT8gSUU6IFNRTFNUQVRFIDUz MDAwLCA1MzQwMCBvciA1NDAwMCAqLwogCQkJCShlcnJjb2RlKEVSUkNPREVf T1VUX09GX01FTU9SWSksCi0JCQkJIGVycm1zZygib3V0IG9mIG1lbW9yeSIp KSk7CisJCQkJIGVycm1zZygicGdfc3RhdF9zdGF0ZW1lbnQgZmlsZSBpcyB0 b28gbGFyZ2UgdG8gcHJvY2VzcyIpLAorCQkJCSBlcnJkZXRhaWwoImZpbGUg XCIlc1wiOiBzaXplICVsbGQiLCBQR1NTX1RFWFRfRklMRSwgc3RhdC5zdF9z aXplKSkpOwogCQlDbG9zZVRyYW5zaWVudEZpbGUoZmQpOwogCQlyZXR1cm4g TlVMTDsKIAl9Cg== --------------080308020804010606070906 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --------------080308020804010606070906--