Re: PL/Python error checking
От | Bruce Momjian |
---|---|
Тема | Re: PL/Python error checking |
Дата | |
Msg-id | 200507100457.j6A4v2E09078@candle.pha.pa.us обсуждение исходный текст |
Ответ на | PL/Python error checking (Michael Fuhr <mike@fuhr.org>) |
Список | 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@postgresql.org -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
В списке pgsql-patches по дате отправления: