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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.