Skip site navigation (1) Skip section navigation (2)

Re: PL/Python error checking

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: (view raw, whole thread or download thread mbox)
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:
> 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

[ Attachment, skipping... ]

> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org

  Bruce Momjian                        |
  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

In response to

pgsql-patches by date

Next:From: Bruce MomjianDate: 2005-07-10 04:58:24
Subject: Re: PL/Python error checking
Previous:From: Bruce MomjianDate: 2005-07-10 04:56:03
Subject: Re: regexp_replace

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group