On 12/21/13 12:39, Dmitry Kovalenko wrote:
> Guten morgen.
>
> I have the problem on the client side [32-bit process] with fbclient.dll
> [v3.0.0.30761, debug build].
>
> interface.cpp line 3232
> 3232| fb_assert(statement->haveException() == 0); //<------
> 3233| statement->clearException();
>
> This assert really needed?

I tend to agree with Dmitry that this assertion is rather suspicious.
We get some error condition (in Dmitry's case OOM) when prefetching 
records. If the client did fetch from cursor that many records it would 
get an error message. But because exception is stored inside statement 
and client is closing cursor looks like client does not need as many 
records as were prefetched. Therefore stored error should really be 
cleaned up when closing cursor, and assertion is not needed.

Other opinions?

> ------------------------------------------ statement contains the next
> status_vector:
>
> - statement 0x0fc023c8 {rsr_next=0x00000000 {rsr_next=??? rsr_rdb=???
> rsr_rtr=??? ...} rsr_rdb=0x0f107724 {rdb_iface=...} ...} Rsr *
> Firebird::GlobalStorage {...} Firebird::GlobalStorage
> + TypedHandle<68> {blockType=rem_type_rsr (68) } TypedHandle<68>
> + rsr_next 0x00000000 {rsr_next=??? rsr_rdb=??? rsr_rtr=??? ...} Rsr *
> + rsr_rdb 0x0f107724 {rdb_iface={ptr=0x00000000 {...} } rdb_port=0x0f10bc60
> {port_sync={ptr=0x0cd8f588 {...} } ...} ...} Rdb *
> + rsr_rtr 0x0f10d1cc {rtr_rdb=0x0f107724 {rdb_iface={ptr=0x00000000 {...} }
> rdb_port=0x0f10bc60 {port_sync={ptr=...} ...} ...} ...} Rtr *
> + rsr_iface {ptr=0x00000000 {...} } Firebird::RefPtr<Firebird::IStatement>
> + rsr_cursor {ptr=0x00000000 {...} } Firebird::RefPtr<Firebird::IResultSet>
> + rsr_bind_format 0x00000000 {fmt_length=??? fmt_net_length=???
> fmt_desc={count=??? capacity=??? data=??? } } rem_fmt *
> + rsr_select_format 0x0eaf7178 {fmt_length=284 fmt_net_length=296
> fmt_desc={count=12 capacity=12 data=0x0fc02544 {dsc_dtype=...} } } rem_fmt *
> + rsr_user_select_format 0x0eaf7178 {fmt_length=284 fmt_net_length=296
> fmt_desc={count=12 capacity=12 data=0x0fc02544 {dsc_dtype=...} } } rem_fmt *
> + rsr_format 0x0eaf7178 {fmt_length=284 fmt_net_length=296
> fmt_desc={count=12 capacity=12 data=0x0fc02544 {dsc_dtype=...} } } rem_fmt *
> + rsr_message 0x0db14628 {msg_next=0x0db7c92c {msg_next=0x0db7c958
> {msg_next=0x0bf95324 {msg_next=0x0db7cb10 {...} ...} ...} ...} ...} RMessage
> *
> + rsr_buffer 0x0f0af54c {msg_next=0x0db14628 {msg_next=0x0db7c92c
> {msg_next=0x0db7c958 {msg_next=0x0bf95324 {...} ...} ...} ...} ...} RMessage
> *
> - rsr_status 0x0db404f4 {m_status_vector={m_status_vector={...} }
> m_raised=false } Firebird::StatusHolder *
> - m_status_vector {m_status_vector={...} } Firebird::DynamicStatusVector
> - m_status_vector {...} Firebird::HalfStaticArray<int,20>
> - Firebird::Array<int,Firebird::InlineStorage<int,20> > {count=3
> capacity=20 data=0x0db404f8 {1} }
> Firebird::Array<int,Firebird::InlineStorage<int,20>
> - Firebird::InlineStorage<int,20> {buffer=0x0db404f8 {1, 335544430, 0,
> -858993460, -858993460, -858993460, -858993460, -858993460, -858993460,
> ...} } Firebird::InlineStorage<int,20>
> + Firebird::AutoStorage {...} Firebird::AutoStorage
> - buffer 0x0db404f8 {1, 335544430, 0, -858993460, -858993460, -858993460,
> -858993460, -858993460, -858993460, ...} int[20]
> [0] 1 int
> [1] 335544430 int //<------------------------------ isc_virmemexh
> [2] 0 int
> [3] -858993460 int
>
>
> ----------------------------------- Stack of call:
>> fbclient_30.dll!Remote::ResultSet::freeClientData(Firebird::IStatus *
> status=0x040fb86c, bool force=false)Строка 3232 C++
>    fbclient_30.dll!Remote::ResultSet::close(Firebird::IStatus *
> status=0x040fb86c)Строка 3299 C++
>    fbclient_30.dll!Why::YResultSet::close(Firebird::IStatus *
> status=0x040fb86c)Строка 4297 C++
>    fbclient_30.dll!`anonymous
> namespace'::IscStatement::closeCursor(Why::StatusVector *
> status=0x040fb86c)Строка 842 C++
>    fbclient_30.dll!isc_dsql_free_statement(int * userStatus=0x040fb920, void
> * * stmtHandle=0x06620480, unsigned short option=1)Строка 2385 C++
>    
> _IBProvider_v3_vc11xp_d.dll!IBP_ISC_API__dsql_free_statement(isc_base::t_isc_provider
> * isc_provider=0x08a85648, isc_base::t_isc_connection *
> isc_connection=0x093da398, isc_base::t_isc_status_vector &
> arg1__status_vector={...}, void * * arg2__stmt_handle_ptr=0x06620480,
> unsigned short arg3__op_id=1)Строка 209 C++
>    
> _IBProvider_v3_vc11xp_d.dll!isc_base::t_isc_connection::dangerous__drop_stmt_data(isc_base::t_isc_statement_data
> * stmt_data=0x06620470)Строка 699 C++
>    _IBProvider_v3_vc11xp_d.dll!ib_v5::t_ib_statement_v5::drop()Строка 668 C++
>    
> _IBProvider_v3_vc11xp_d.dll!ib_v5::t_ib_statement_v5::~t_ib_statement_v5()Строка
> 45 C++
>
>
> ----------------
> Regards,
> Kovalenko Dmitry.
> www.ibprovider.com
>
>
>
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT
> organizations don't have a clear picture of how application performance
> affects their revenue. With AppDynamics, you get 100% visibility into your
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
>
>
> Firebird-Devel mailing list, web interface at 
> https://lists.sourceforge.net/lists/listinfo/firebird-devel


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to