Bug 2225259 - sip6-6.6.2-1.el9 introduces a regression bug when using sub-classed C++ exceptions
Summary: sip6-6.6.2-1.el9 introduces a regression bug when using sub-classed C++ excep...
Keywords:
Status: VERIFIED
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: sip6
Version: 9.2
Hardware: All
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Jan Grulich
QA Contact: Tomas Pelka
URL:
Whiteboard:
Depends On:
Blocks: 2225605
TreeView+ depends on / blocked
 
Reported: 2023-07-24 19:16 UTC by Steve Barcomb
Modified: 2023-07-25 15:00 UTC (History)
2 users (show)

Fixed In Version: sip6-6.6.2-2.el9
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 2225605 (view as bug list)
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-163186 0 None None None 2023-07-24 19:17:37 UTC

Description Steve Barcomb 2023-07-24 19:16:55 UTC
Customer description:

We are see a regression bug between sip6-6.5.1 and sip6-6.6.2. Basically code like this no longer works and results in a compilation error while doing the sip-build.

  31   │ %Exception mylib::Exception(SIP_Exception) /PyName=mylibException/ {
  32   │ %TypeHeaderCode
  33   │ #include <Exception.h>
  34   │ %End
  35   │ %RaiseCode
  36   │     const char *detail = sipExceptionRef.what();
  37   │     if (mylib::TimeoutException *te = dynamic_cast<mylib::TimeoutException *>(&sipExceptionRef)) {
  38   │         SIP_BLOCK_THREADS
  39   │         PyErr_SetString(sipException_mylib_TimeoutException, detail);
  40   │         SIP_UNBLOCK_THREADS
  41   │     }
  42   │     else if (mylib::MetadataException *me = dynamic_cast<mylib::MetadataException *>(&sipExceptionRef)) {
  43   │         SIP_BLOCK_THREADS
  44   │         PyErr_SetString(sipException_mylib_MetadataException, detail);
  45   │         SIP_UNBLOCK_THREADS
  46   │     }
  47   │     else {
  48   │         SIP_BLOCK_THREADS
  49   │         PyErr_SetString(sipException_mylib_Exception, detail);
  50   │         SIP_UNBLOCK_THREADS
  51   │     }
  52   │ %End
  53   │ 
  54   │ }; // Exception
  55   │ 
  56   │ %Exception mylib::TimeoutException(mylib::Exception) /PyName=mylibTimeoutException/ {
  57   │ %TypeHeaderCode
  58   │ #include <Exception.h>
  59   │ %End
  60   │ %RaiseCode
  61   │     const char *detail = sipExceptionRef.what();
  62   │     SIP_BLOCK_THREADS
  63   │     PyErr_SetString(sipException_mylib_TimeoutException, detail);
  64   │     SIP_UNBLOCK_THREADS
  65   │ %End
  66   │ }; // TimeoutException

The bug has already been fixed by the upstream project in the 6.6 branch with this commit.
https://www.riverbankcomputing.com/hg/sip/rev/1430b279a3c9

Define the value or impact to you or the business
This bug was impeding our progress towards moving to el9 since it was breaking builds of internal software. As a short term stop gap we can downgrade to sip6-6.5.1 on our build machine. But that is not a tenable long term solution.


Note You need to log in before you can comment on or make changes to this bug.