From: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
---|---|
To: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: possible connection leak in dblink? |
Date: | 2011-06-15 02:41:18 |
Message-ID: | BANLkTinOnN5JpEXKSEg3XUJj1PeZu-gU-w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Jun 15, 2011 at 5:34 AM, Peter Eisentraut <peter_e(at)gmx(dot)net> wrote:
> With gcc 4.6, I get this warning:
>
> dblink.c: In function ‘dblink_send_query’:
> dblink.c:620:7: warning: variable ‘freeconn’ set but not used [-Wunused-but-set-variable]
>
> I don't know much about the internals of dblink, but judging from the
> surrounding code, I guess that this fix is necessary:
>
> diff --git i/contrib/dblink/dblink.c w/contrib/dblink/dblink.c
> index 19b98fb..e014c1a 100644
> --- i/contrib/dblink/dblink.c
> +++ w/contrib/dblink/dblink.c
> @@ -634,6 +634,10 @@ dblink_send_query(PG_FUNCTION_ARGS)
> if (retval != 1)
> elog(NOTICE, "%s", PQerrorMessage(conn));
>
> + /* if needed, close the connection to the database and cleanup */
> + if (freeconn)
> + PQfinish(conn);
> +
> PG_RETURN_INT32(retval);
> }
>
> Otherwise the connection might not get freed. Could someone verify
> that?
ISTM that the root problem is that dblink_send_query calls DBLINK_GET_CONN
though it doesn't accept the connection string as an argument. Since the first
argument in dblink_send_query must be the connection name, dblink_send_query
should call DBLINK_GET_NAMED_CONN instead. The variable 'freeconn' is used
only when DBLINK_GET_CONN is called. So, if dblink_send_query uses
DBLINK_GET_NAMED_CONN instead, the variable 'freeconn' is no longer necessary.
The similar problem exists in dblink_get_result and dblink_record_internal.
Attached patch fixes those problems.
Regards,
--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
Attachment | Content-Type | Size |
---|---|---|
dblink_bugfix_v1.patch | text/x-patch | 1.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2011-06-15 02:44:09 | Re: Why polecat and colugos are failing to build back branches |
Previous Message | Josh Kupershmidt | 2011-06-15 02:11:43 | Re: psql describe.c cleanup |