Re: Segmentation fault in Python 3 - Cursor - chained exceptions
Krishna Mohan IV <[email protected]>
| Newsgroups | gmane.comp.python.db.cx-oracle |
|---|---|
| Organization | Oracle Corporation |
| Message-ID | <[email protected]> |
Hi Anthony, does it require a new binary for Oracle 12c? The existing one should work with 12c client also, right? Unless you are adding some 12c specific features... thanks, krishna On 5/14/2014 7:45 PM, Anthony Tuininga wrote: > I am hoping this weekend to make a new release. It has been far too > long! I need binaries for Python 3.4 and Oracle 12c at the least. :-) > > > On Wed, May 14, 2014 at 6:28 AM, Boris Dzuba <[email protected] > <mailto:[email protected]>> wrote: > > Thank you for the quick response. Do you already have any plans, > when will new version be released ? > > > 2014-05-13 23:17 GMT+02:00 Anthony Tuininga > <[email protected] <mailto:[email protected]>>: > > Thanks for the simple program to demonstrate the problem. :-) > I have just pushed a change to the source that resolves this > issue. Apparently in Python 3 the first time the exception is > referenced it is not normalized and so the error object I am > creating is immediately accessible. The second level of > exception results in a normalized exception which means that > it can't be accessed in the same way. Fortunately the > normalization can be forced so that I can access the error > object the same way each time. A subtle and rare bug so I > appreciate the pointer! > > Anthony > > > On Tue, May 13, 2014 at 1:15 AM, Boris Dzuba > <[email protected] <mailto:[email protected]>> wrote: > > Hi all, > > The following test program gives a segmentation fault: > > C:\>python > Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:19:30) > [MSC v.1600 64 bit (AMD64)] on win32 > Type "help", "copyright", "credits" or "license" for more > information. > >>> import cx_Oracle > >>> c=cx_Oracle.connect(<connect string>).cursor() > >>> try: > ... c.execute("select") > ... except: > ... try: > ... c.execute("select") > ... except: > ... pass > ... > > C:\> > > Access Violation > Faulting application name: python.exe > Fault offset: 0x000000000000cacd > > > Platform: 64bit, Win7, Oracle Client 11g (11.2.0.1.0), > python 3.3.3, cx_Oracle 5.1.2 > > > > At a guess, the problem is because in the function > Cursor_SetErrorOffset() /Cursor.c/: > > static void Cursor_SetErrorOffset( > udt_Cursor *self) // cursor to get the error offset from > { > PyObject *type, *value, *traceback; > udt_Error *error; > > PyErr_Fetch(&type, &value, &traceback); > if (type == g_DatabaseErrorException) { > error = (udt_Error*) value; > OCIAttrGet(self->handle, OCI_HTYPE_STMT, > &error->offset, 0, > OCI_ATTR_PARSE_ERROR_OFFSET, self->environment->errorHandle); > } > PyErr_Restore(type, value, traceback); > } > OCIAttrGet() call attempts to write a value to the address > /&error->offset/, > therefore after the end of an allocated memory block of > the borrowed pointer /PyObject *value/ > > typedef struct { > PyObject_HEAD > sb4 code; > ub4 offset; > PyObject *message; > const char *context; > } udt_Error; > > > Commenting it out /* OCIAttrGet(self->handle, > OCI_HTYPE_STMT, &error->offset, 0, > OCI_ATTR_PARSE_ERROR_OFFSET, > self->environment->errorHandle);*/ > fix this crash! > > > Regards, > Boris > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser > Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS > combos. > Get unparalleled scalability from the best Selenium > testing platform available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > cx-oracle-users mailing list > cx-oracle-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org > <mailto:cx-oracle-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org> > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - > For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing > platform available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > cx-oracle-users mailing list > cx-oracle-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org > <mailto:cx-oracle-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org> > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing > platform available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > cx-oracle-users mailing list > cx-oracle-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org > <mailto:cx-oracle-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org> > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > > > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing platform available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > > > _______________________________________________ > cx-oracle-users mailing list > cx-oracle-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ cx-oracle-users mailing list cx-oracle-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org https://lists.sourceforge.net/lists/listinfo/cx-oracle-users