You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "James Birdsall (JIRA)" <qp...@incubator.apache.org> on 2009/10/29 02:28:59 UTC

[jira] Created: (QPID-2168) C++ broker crashes when declaring durable binding with SQL persistence provider loaded

C++ broker crashes when declaring durable binding with SQL persistence provider loaded
--------------------------------------------------------------------------------------

                 Key: QPID-2168
                 URL: https://issues.apache.org/jira/browse/QPID-2168
             Project: Qpid
          Issue Type: Bug
          Components: C++ Broker
    Affects Versions: 0.6
         Environment: Windows Server 2008
            Reporter: James Birdsall
             Fix For: 0.6


The SQL persistence provider creates the QpidStore database on startup if it is not already present. The first time I run the smoke test after this, declaring durable exchanges and queues succeeds, but declaring the first durable binding (between a durable exchange and a durable queue) causes the broker to crash. This same set of operations works fine if the persistence provider is not loaded.

ChildEBP          RetAddr
00cbc68c 66cde9ad MSVCR90D!get_pgmptr+0x1c5
00cbc9c8 66cb02ee MSVCR90D!abort+0x2d
00cbc9fc 66cb19e0 MSVCR90D!terminate+0x6e
00cbca10 66cb1b26 MSVCR90D!_FrameUnwindFilter+0x40
00cbd02c 66cb1c15 MSVCR90D!_FrameUnwindFilter+0x186
00cbd04c 66cb151a MSVCR90D!_FrameUnwindFilter+0x275
00cbd0c4 66cb11d7 MSVCR90D!_ValidateWrite+0x4ba
00cbd0f4 66cb04ac MSVCR90D!_ValidateWrite+0x177
00cbd130 772cb6d1 MSVCR90D!_CxxFrameHandler3+0x2c
00cbd154 772cb6a3 ntdll32!RtlUnwind+0x25c
00cbd1fc 772aee57 ntdll32!RtlUnwind+0x22e
00cbd580 66caf8f2 ntdll32!KiUserExceptionDispatcher+0xf
00cbd5c0 676b2da9 MSVCR90D!CxxThrowException+0x52
00cbd5e0 676b2b20 mssql_stored!_com_raise_error(
                        HRESULT hr = 0x80040e2f,
                        struct IErrorInfo * perrinfo = 0x00000000`03b3ce60)+0x39
00cbd610 676a322d mssql_stored!_com_issue_errorex(
                        HRESULT hr = 0x80040e2f,
                        struct IUnknown * punk = 0x00000000`072a58f0,
                        struct _GUID * riid = 0x00000000`676c2a24 {0000050e-0000-0010-8000-00aa006d2ea4})+0xd0
00cbd654 676a1a89 mssql_stored!Recordset15::Update(
                        class _variant_t * Fields = 0x00000000`676d1638,
                        class _variant_t * Values = 0x00000000`676d1638)+0xbd
00cbd77c 67684d6c mssql_stored!qpid::store::ms_sql::BindingRecordset::add(
                        unsigned int64 exchangeId = 0,
                        class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * queueName = 0x00000000`02ed7258,  // this is "Q1" as expected
                        class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * routingKey = 0x00000000`02edc0ac,     // this is "key1" as expected
                        class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0x3b9
00cbd8b8 6708520e mssql_stored!qpid::store::ms_sql::MSSqlProvider::bind(
                        class qpid::broker::PersistableExchange * exchange = 0x00000000`02ed33b8,
                        class qpid::broker::PersistableQueue * queue = 0x00000000`02ed7240,
                        class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * key = 0x00000000`02edc0ac,
                        class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0xec
00cbd8dc 5aaee2af stored!qpid::store::MessageStorePlugin::bind(
                        class qpid::broker::PersistableExchange * exchange = 0x00000000`02ed33b8,
                        class qpid::broker::PersistableQueue * queue = 0x00000000`02ed7240,
                        class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * key = 0x00000000`02edc0ac,
                        class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0x4e
00cbd998 5ab3d50f qpidbrokerd!qpid::broker::MessageStoreModule::bind(
                        class qpid::broker::PersistableExchange * e = 0x00000000`02ed33b8,
                        class qpid::broker::PersistableQueue * q = 0x00000000`02ed7240,
                        class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * k = 0x00000000`02edc0ac,
                        class qpid::framing::FieldTable * a = 0x00000000`02edc0cc)+0x8f


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Resolved: (QPID-2168) C++ broker crashes when declaring durable binding with SQL persistence provider loaded

Posted by "Steve Huston (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2168?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steve Huston resolved QPID-2168.
--------------------------------

    Resolution: Fixed
      Assignee: Steve Huston

Fixed on trunk r831167.

> C++ broker crashes when declaring durable binding with SQL persistence provider loaded
> --------------------------------------------------------------------------------------
>
>                 Key: QPID-2168
>                 URL: https://issues.apache.org/jira/browse/QPID-2168
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.6
>         Environment: Windows Server 2008
>            Reporter: James Birdsall
>            Assignee: Steve Huston
>             Fix For: 0.6
>
>
> The SQL persistence provider creates the QpidStore database on startup if it is not already present. The first time I run the smoke test after this, declaring durable exchanges and queues succeeds, but declaring the first durable binding (between a durable exchange and a durable queue) causes the broker to crash. This same set of operations works fine if the persistence provider is not loaded.
> ChildEBP          RetAddr
> 00cbc68c 66cde9ad MSVCR90D!get_pgmptr+0x1c5
> 00cbc9c8 66cb02ee MSVCR90D!abort+0x2d
> 00cbc9fc 66cb19e0 MSVCR90D!terminate+0x6e
> 00cbca10 66cb1b26 MSVCR90D!_FrameUnwindFilter+0x40
> 00cbd02c 66cb1c15 MSVCR90D!_FrameUnwindFilter+0x186
> 00cbd04c 66cb151a MSVCR90D!_FrameUnwindFilter+0x275
> 00cbd0c4 66cb11d7 MSVCR90D!_ValidateWrite+0x4ba
> 00cbd0f4 66cb04ac MSVCR90D!_ValidateWrite+0x177
> 00cbd130 772cb6d1 MSVCR90D!_CxxFrameHandler3+0x2c
> 00cbd154 772cb6a3 ntdll32!RtlUnwind+0x25c
> 00cbd1fc 772aee57 ntdll32!RtlUnwind+0x22e
> 00cbd580 66caf8f2 ntdll32!KiUserExceptionDispatcher+0xf
> 00cbd5c0 676b2da9 MSVCR90D!CxxThrowException+0x52
> 00cbd5e0 676b2b20 mssql_stored!_com_raise_error(
>                         HRESULT hr = 0x80040e2f,
>                         struct IErrorInfo * perrinfo = 0x00000000`03b3ce60)+0x39
> 00cbd610 676a322d mssql_stored!_com_issue_errorex(
>                         HRESULT hr = 0x80040e2f,
>                         struct IUnknown * punk = 0x00000000`072a58f0,
>                         struct _GUID * riid = 0x00000000`676c2a24 {0000050e-0000-0010-8000-00aa006d2ea4})+0xd0
> 00cbd654 676a1a89 mssql_stored!Recordset15::Update(
>                         class _variant_t * Fields = 0x00000000`676d1638,
>                         class _variant_t * Values = 0x00000000`676d1638)+0xbd
> 00cbd77c 67684d6c mssql_stored!qpid::store::ms_sql::BindingRecordset::add(
>                         unsigned int64 exchangeId = 0,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * queueName = 0x00000000`02ed7258,  // this is "Q1" as expected
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * routingKey = 0x00000000`02edc0ac,     // this is "key1" as expected
>                         class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0x3b9
> 00cbd8b8 6708520e mssql_stored!qpid::store::ms_sql::MSSqlProvider::bind(
>                         class qpid::broker::PersistableExchange * exchange = 0x00000000`02ed33b8,
>                         class qpid::broker::PersistableQueue * queue = 0x00000000`02ed7240,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * key = 0x00000000`02edc0ac,
>                         class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0xec
> 00cbd8dc 5aaee2af stored!qpid::store::MessageStorePlugin::bind(
>                         class qpid::broker::PersistableExchange * exchange = 0x00000000`02ed33b8,
>                         class qpid::broker::PersistableQueue * queue = 0x00000000`02ed7240,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * key = 0x00000000`02edc0ac,
>                         class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0x4e
> 00cbd998 5ab3d50f qpidbrokerd!qpid::broker::MessageStoreModule::bind(
>                         class qpid::broker::PersistableExchange * e = 0x00000000`02ed33b8,
>                         class qpid::broker::PersistableQueue * q = 0x00000000`02ed7240,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * k = 0x00000000`02edc0ac,
>                         class qpid::framing::FieldTable * a = 0x00000000`02edc0cc)+0x8f

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Commented: (QPID-2168) C++ broker crashes when declaring durable binding with SQL persistence provider loaded

Posted by "James Birdsall (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-2168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12772206#action_12772206 ] 

James Birdsall commented on QPID-2168:
--------------------------------------

Confirmed, the broker no longer crashes.

> C++ broker crashes when declaring durable binding with SQL persistence provider loaded
> --------------------------------------------------------------------------------------
>
>                 Key: QPID-2168
>                 URL: https://issues.apache.org/jira/browse/QPID-2168
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.6
>         Environment: Windows Server 2008
>            Reporter: James Birdsall
>            Assignee: Steve Huston
>             Fix For: 0.6
>
>
> The SQL persistence provider creates the QpidStore database on startup if it is not already present. The first time I run the smoke test after this, declaring durable exchanges and queues succeeds, but declaring the first durable binding (between a durable exchange and a durable queue) causes the broker to crash. This same set of operations works fine if the persistence provider is not loaded.
> ChildEBP          RetAddr
> 00cbc68c 66cde9ad MSVCR90D!get_pgmptr+0x1c5
> 00cbc9c8 66cb02ee MSVCR90D!abort+0x2d
> 00cbc9fc 66cb19e0 MSVCR90D!terminate+0x6e
> 00cbca10 66cb1b26 MSVCR90D!_FrameUnwindFilter+0x40
> 00cbd02c 66cb1c15 MSVCR90D!_FrameUnwindFilter+0x186
> 00cbd04c 66cb151a MSVCR90D!_FrameUnwindFilter+0x275
> 00cbd0c4 66cb11d7 MSVCR90D!_ValidateWrite+0x4ba
> 00cbd0f4 66cb04ac MSVCR90D!_ValidateWrite+0x177
> 00cbd130 772cb6d1 MSVCR90D!_CxxFrameHandler3+0x2c
> 00cbd154 772cb6a3 ntdll32!RtlUnwind+0x25c
> 00cbd1fc 772aee57 ntdll32!RtlUnwind+0x22e
> 00cbd580 66caf8f2 ntdll32!KiUserExceptionDispatcher+0xf
> 00cbd5c0 676b2da9 MSVCR90D!CxxThrowException+0x52
> 00cbd5e0 676b2b20 mssql_stored!_com_raise_error(
>                         HRESULT hr = 0x80040e2f,
>                         struct IErrorInfo * perrinfo = 0x00000000`03b3ce60)+0x39
> 00cbd610 676a322d mssql_stored!_com_issue_errorex(
>                         HRESULT hr = 0x80040e2f,
>                         struct IUnknown * punk = 0x00000000`072a58f0,
>                         struct _GUID * riid = 0x00000000`676c2a24 {0000050e-0000-0010-8000-00aa006d2ea4})+0xd0
> 00cbd654 676a1a89 mssql_stored!Recordset15::Update(
>                         class _variant_t * Fields = 0x00000000`676d1638,
>                         class _variant_t * Values = 0x00000000`676d1638)+0xbd
> 00cbd77c 67684d6c mssql_stored!qpid::store::ms_sql::BindingRecordset::add(
>                         unsigned int64 exchangeId = 0,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * queueName = 0x00000000`02ed7258,  // this is "Q1" as expected
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * routingKey = 0x00000000`02edc0ac,     // this is "key1" as expected
>                         class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0x3b9
> 00cbd8b8 6708520e mssql_stored!qpid::store::ms_sql::MSSqlProvider::bind(
>                         class qpid::broker::PersistableExchange * exchange = 0x00000000`02ed33b8,
>                         class qpid::broker::PersistableQueue * queue = 0x00000000`02ed7240,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * key = 0x00000000`02edc0ac,
>                         class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0xec
> 00cbd8dc 5aaee2af stored!qpid::store::MessageStorePlugin::bind(
>                         class qpid::broker::PersistableExchange * exchange = 0x00000000`02ed33b8,
>                         class qpid::broker::PersistableQueue * queue = 0x00000000`02ed7240,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * key = 0x00000000`02edc0ac,
>                         class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0x4e
> 00cbd998 5ab3d50f qpidbrokerd!qpid::broker::MessageStoreModule::bind(
>                         class qpid::broker::PersistableExchange * e = 0x00000000`02ed33b8,
>                         class qpid::broker::PersistableQueue * q = 0x00000000`02ed7240,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * k = 0x00000000`02edc0ac,
>                         class qpid::framing::FieldTable * a = 0x00000000`02edc0cc)+0x8f

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Closed: (QPID-2168) C++ broker crashes when declaring durable binding with SQL persistence provider loaded

Posted by "James Birdsall (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2168?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James Birdsall closed QPID-2168.
--------------------------------


> C++ broker crashes when declaring durable binding with SQL persistence provider loaded
> --------------------------------------------------------------------------------------
>
>                 Key: QPID-2168
>                 URL: https://issues.apache.org/jira/browse/QPID-2168
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.6
>         Environment: Windows Server 2008
>            Reporter: James Birdsall
>            Assignee: Steve Huston
>             Fix For: 0.6
>
>
> The SQL persistence provider creates the QpidStore database on startup if it is not already present. The first time I run the smoke test after this, declaring durable exchanges and queues succeeds, but declaring the first durable binding (between a durable exchange and a durable queue) causes the broker to crash. This same set of operations works fine if the persistence provider is not loaded.
> ChildEBP          RetAddr
> 00cbc68c 66cde9ad MSVCR90D!get_pgmptr+0x1c5
> 00cbc9c8 66cb02ee MSVCR90D!abort+0x2d
> 00cbc9fc 66cb19e0 MSVCR90D!terminate+0x6e
> 00cbca10 66cb1b26 MSVCR90D!_FrameUnwindFilter+0x40
> 00cbd02c 66cb1c15 MSVCR90D!_FrameUnwindFilter+0x186
> 00cbd04c 66cb151a MSVCR90D!_FrameUnwindFilter+0x275
> 00cbd0c4 66cb11d7 MSVCR90D!_ValidateWrite+0x4ba
> 00cbd0f4 66cb04ac MSVCR90D!_ValidateWrite+0x177
> 00cbd130 772cb6d1 MSVCR90D!_CxxFrameHandler3+0x2c
> 00cbd154 772cb6a3 ntdll32!RtlUnwind+0x25c
> 00cbd1fc 772aee57 ntdll32!RtlUnwind+0x22e
> 00cbd580 66caf8f2 ntdll32!KiUserExceptionDispatcher+0xf
> 00cbd5c0 676b2da9 MSVCR90D!CxxThrowException+0x52
> 00cbd5e0 676b2b20 mssql_stored!_com_raise_error(
>                         HRESULT hr = 0x80040e2f,
>                         struct IErrorInfo * perrinfo = 0x00000000`03b3ce60)+0x39
> 00cbd610 676a322d mssql_stored!_com_issue_errorex(
>                         HRESULT hr = 0x80040e2f,
>                         struct IUnknown * punk = 0x00000000`072a58f0,
>                         struct _GUID * riid = 0x00000000`676c2a24 {0000050e-0000-0010-8000-00aa006d2ea4})+0xd0
> 00cbd654 676a1a89 mssql_stored!Recordset15::Update(
>                         class _variant_t * Fields = 0x00000000`676d1638,
>                         class _variant_t * Values = 0x00000000`676d1638)+0xbd
> 00cbd77c 67684d6c mssql_stored!qpid::store::ms_sql::BindingRecordset::add(
>                         unsigned int64 exchangeId = 0,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * queueName = 0x00000000`02ed7258,  // this is "Q1" as expected
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * routingKey = 0x00000000`02edc0ac,     // this is "key1" as expected
>                         class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0x3b9
> 00cbd8b8 6708520e mssql_stored!qpid::store::ms_sql::MSSqlProvider::bind(
>                         class qpid::broker::PersistableExchange * exchange = 0x00000000`02ed33b8,
>                         class qpid::broker::PersistableQueue * queue = 0x00000000`02ed7240,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * key = 0x00000000`02edc0ac,
>                         class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0xec
> 00cbd8dc 5aaee2af stored!qpid::store::MessageStorePlugin::bind(
>                         class qpid::broker::PersistableExchange * exchange = 0x00000000`02ed33b8,
>                         class qpid::broker::PersistableQueue * queue = 0x00000000`02ed7240,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * key = 0x00000000`02edc0ac,
>                         class qpid::framing::FieldTable * args = 0x00000000`02edc0cc)+0x4e
> 00cbd998 5ab3d50f qpidbrokerd!qpid::broker::MessageStoreModule::bind(
>                         class qpid::broker::PersistableExchange * e = 0x00000000`02ed33b8,
>                         class qpid::broker::PersistableQueue * q = 0x00000000`02ed7240,
>                         class std::basic_string<char,std::char_traits<char>,std::allocator<char> > * k = 0x00000000`02edc0ac,
>                         class qpid::framing::FieldTable * a = 0x00000000`02edc0cc)+0x8f

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org