From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Michael Fuhr <mike(at)fuhr(dot)org> |
Cc: | pgsql-patches(at)postgresql(dot)org |
Subject: | Re: PL/Python error checking |
Date: | 2005-07-10 04:57:01 |
Message-ID: | 200507100457.j6A4v2E09078@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
Patch applied. Thanks.
---------------------------------------------------------------------------
Michael Fuhr wrote:
> This patch addresses the problem mentioned in the "process crash
> when a plpython function returns unicode" thread:
>
> http://archives.postgresql.org/pgsql-bugs/2005-06/msg00105.php
>
> In several places PL/Python was calling PyObject_Str() and then
> PyString_AsString() without checking if the former had returned
> NULL to indicate an error. PyString_AsString() doesn't expect a
> NULL argument, so passing one causes a segmentation fault. This
> patch adds checks for NULL and raises errors via PLy_elog(), which
> prints details of the underlying Python exception. The patch also
> adds regression tests for these checks. All tests pass on my
> Solaris 9 box running HEAD and Python 2.4.1.
>
> In one place the patch doesn't call PLy_elog() because that could
> cause infinite recursion; see the comment I added. I'm not sure
> how to test that particular case or whether it's even possible to
> get an error there: the value that the code should check is the
> Python exception type, so I wonder if a NULL value "shouldn't
> happen." This patch converts NULL to "Unknown Exception" but I
> wonder if an Assert() would be appropriate.
>
> The patch is against HEAD but the same changes should be applied
> to earlier versions because they have the same problem. The patch
> might not apply cleanly against earlier versions -- will the committer
> take care of little differences or should I submit different versions
> of the patch?
>
> --
> Michael Fuhr
> http://www.fuhr.org/~mfuhr/
[ Attachment, skipping... ]
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2005-07-10 04:58:24 | Re: PL/Python error checking |
Previous Message | Bruce Momjian | 2005-07-10 04:56:03 | Re: regexp_replace |