Re: [cx-oracle-users] Segmentation fault in Python 3 - Cursor - chained exceptions
Brought to you by:
atuining
From: Krishna M. IV <kri...@or...> - 2014-05-15 12:13:30
|
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 <bor...@gm... > <mailto:bor...@gm...>> 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 > <ant...@gm... <mailto:ant...@gm...>>: > > 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 > <bor...@gm... <mailto:bor...@gm...>> 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-...@li... > <mailto:cx-...@li...> > 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-...@li... > <mailto:cx-...@li...> > 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-...@li... > <mailto:cx-...@li...> > 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-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users |