Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1ezqf5-0002HM-89 for pgsql-hackers@arkaria.postgresql.org; Sat, 24 Mar 2018 21:25:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1ezqf3-00047R-Mf for pgsql-hackers@arkaria.postgresql.org; Sat, 24 Mar 2018 21:25:13 +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.89) (envelope-from ) id 1ezqf3-00046n-87; Sat, 24 Mar 2018 21:25:13 +0000 Received: from out5-smtp.messagingengine.com ([66.111.4.29]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1ezqev-0004u3-7E; Sat, 24 Mar 2018 21:25:11 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id B7588209B1; Sat, 24 Mar 2018 17:25:03 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute5.internal (MEProxy); Sat, 24 Mar 2018 17:25:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=anarazel.de; h= cc:content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=c2iosadhINIiwv5sVTREo9jYtk1/Eq181zgTdgW4s+E=; b=P8zsmQLo dlySRyX/mQCIhjhoQE8tR09GdtlzrAm2wzDD2qQ7JU1IJZiTzNY3aVlkAthKYJ2L +ySH0FX7CQb0ZlcwbSVU7BR+NoU4ez1GbUODwNWAAer1+HTJ1JYoi4L2KkFPwF34 bHGJYKnzy5+lIpk5IoMfeHGB7HcKmzlph6fK78g6iQyZGmdkluAXJkPxWvm1qoEt HcXJOaFoziw0+tBH3S7OkCZ/4mrzuZOL0a250DpwBa09VBjabHNCTqsQ7EjqpmSS xmSNxszkSTI5dkcvKHAZF96cVInozyD4A52RUhot5RM+HZCGtWOJq/AtCHk/y/0R 4V9E1/hUCoOIRw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=c2iosadhINIiwv5sVTREo9jYtk1/E q181zgTdgW4s+E=; b=SwSWPpPUCYDTxfLEGuqbdmTT/9thsbq8n63gVD//xwOLH M0H1qHDGw0C1iyd2cxtwXLL3q2FQSGKVi/WYd+4x4aJeoiPQ3DHwY8MTbXAZy0zC MbOFW0Zmb1ojc/7Yp44JYLfJRs3BI4ltyFMcohsNYs+Y1h0L0Rfp4D7ItD1uhWKU vnx6/JOUlSyAQnp6efiPFmHIyIwU36mWZsAyP5r85XFRZNDcwFZkqZ7pBXGf11CA p9xXFNwQJeNjtl48yVaeOVsoekNHOhEWwBC5Rf8n9VNbMNP4Jwmqq4luIyau0uYg MNP2KDaXKuNxS1RrJthuiyTlsh1EKX8tQ9Bvh2zlg== X-ME-Sender: Received: from intern.anarazel.de (unknown [136.24.76.189]) by mail.messagingengine.com (Postfix) with ESMTPA id 6326F7E1BD; Sat, 24 Mar 2018 17:25:03 -0400 (EDT) Date: Sat, 24 Mar 2018 14:25:02 -0700 From: Andres Freund To: Tom Lane , Peter Eisentraut Cc: pgsql-committers@postgresql.org, pgsql-hackers@postgresql.org Subject: Re: pgsql: Avoid premature free of pass-by-reference CALL arguments. Message-ID: <20180324212502.wt4serghfidge2on@alap3.anarazel.de> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk On 2018-02-10 18:37:17 +0000, Tom Lane wrote: > Avoid premature free of pass-by-reference CALL arguments. > src/test/regress/expected/create_procedure.out | 12 +++++++---- > src/test/regress/sql/create_procedure.sql | 4 +++- > 3 files changed, 33 insertions(+), 11 deletions(-) There's a recent llvm buildfarm animal failure related to this: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=pogona&dt=2018-03-24%2020%3A10%3A01 *** /home/bf/build/buildfarm-pogona/HEAD/pgsql.build/../pgsql/src/test/regress/expected/create_procedure.out 2018-03-23 08:10:44.326010286 +0100 --- /home/bf/build/buildfarm-pogona/HEAD/pgsql.build/src/test/regress/results/create_procedure.out 2018-03-24 21:15:28.749352165 +0100 *************** *** 44,50 **** SELECT * FROM cp_test ORDER BY b COLLATE "C"; a | b ---+------- ! 1 | 0 1 | a 1 | xyzzy (3 rows) --- 44,50 ---- SELECT * FROM cp_test ORDER BY b COLLATE "C"; a | b ---+------- ! 1 | 9 1 | a 1 | xyzzy (3 rows) With the differening output created by: CREATE PROCEDURE ptest1(x text) LANGUAGE SQL AS $$ INSERT INTO cp_test VALUES (1, x); $$; CALL ptest1(substring(random()::text, 1, 1)); -- ok, volatile arg At first I was gosh darned confused, this really didn't seem likely to be an LLVM induced failure. And it turns out it isn't. If the value returned by random() is very small, the text representation switches to scientific notation like 8.26204195618629e-05. So, perhaps we should choose a different volatile function here? Greetings, Andres Freund