On 05/03/11 13:34, Antti Nivala wrote: > (Reposting, because the HTML message was distorted in the archives.) > > Hi, > > Does the following look like a Firebird 2.1.4 bug, or are we doing > something wrong? > > We are upgrading from Firebird 2.1.2.18118 to Firebird 2.1.4.18393. We > use Firebird Embedded in Windows (both 32-bit and 64-bit). > > We are encountering a repeatable crash in Firebird 2.1.4.18393 when we > execute the SQL statement "DROP INDEX IX_LOGIN_TEMP_ACCOUNTNAME_LOWER" > in our database and commit. The crash occurs during commit. It doesn't > seem to occur in the 32-bit version but occurs with the 64-bit version. > It does not occur every time, but in more than 50% of the cases at > least. For example, when repeating the test 10 times, I typically get > say 7 crashes and 3 successful runs. > > Earlier, the index has been created using the following SQL statement in > FB 2.1.4, and committed: > CREATE UNIQUE ASC INDEX IX_LOGIN_TEMP_ACCOUNTNAME_LOWER > ON LOGIN_TEMP COMPUTED BY ( LOWER( ACCOUNTNAME ) ) > > The call stack of the crash is as follows (note: fbclient.dll is > fbembed.dll, just renamed): > > Unhandled exception at 0x100b8ec8 in memory.dmp: 0xC0000005: Access > violation reading location 0xffffffffffffffff. > > fbclient.dll!CMP_release > fbclient.dll!index_block_flush > fbclient.dll!IDX_delete_index > fbclient.dll!delete_index > fbclient.dll!modify_index > fbclient.dll!DFW_perform_work > fbclient.dll!TRA_commit > fbclient.dll!commit > fbclient.dll!jrd8_commit_transaction > fbclient.dll!isc_commit_transaction > fbclient.dll!execute_request > fbclient.dll!GDS_DSQL_EXECUTE_CPP > fbclient.dll!dsql8_execute > fbclient.dll!isc_dsql_execute2_m > fbclient.dll!isc_dsql_execute2 > IBProv.dll!ib_v5::t_ib_statement_v5::execute > IBProv.dll!ibp::t_ibp_command::execute > IBProv.dll!ib_sql_pstmt::t_ib_sql_pstmt_commit::execute_sql > IBProv.dll!ibp::t_ibp_command_pstmt_data::single_exec > IBProv.dll!ibp::t_ibp_command_pstmt_data::execute_for_one_param_set > IBProv.dll!ibp::t_ibp_command_pstmt_data::execute > IBProv.dll!ibp::TIBPCommand::Execute > oledb32.dll!CCommandText::Execute > MFServer.exe!CDBSession::CommitDBTransaction > MFServer.exe!CDBSession::Commit > MFServer.exe!CApplication::UpgradeMasterDB_V39 > MFServer.exe!CApplication::UpgradeMasterDB_PerformUpgrade > MFServer.exe!CApplication::UpgradeMasterDB > MFServer.exe!CApplication::PrepareMasterDB > MFServer.exe!CApplication::InitRunningState > MFServer.exe!CServiceModuleMFServer::OnBeginRunning > MFServer.exe!CServiceModule::Run > MFServer.exe!CServiceModule::ServiceMain > sechost.dll!ScSvcctrlThreadW > kernel32.dll!BaseThreadInitThunk > ntdll.dll!RtlUserThreadStart > > The same call stack with more details is in the attachment file. > > The crash does not occur with Firebird 2.1.2.18118. > > But, I have noticed that if I perform backup & restore for the database > in Firebird 2.1.4.18393, then the crash will not occur. In other words: > > This leads to crash: > - Take the database that was used with Firebird 2.1.2 and perform a > backup & restore to it with FB 2.1.2 > - Then use Firebird 2.1.4 to create the index, commit, do something > else, drop the index, and commit => crash > > This does NOT lead to crash: > - Take the database that was used with Firebird 2.1.2 and perform a > backup & restore to it with FB 2.1.4 > - Then use Firebird 2.1.4 to create the index, commit, do something > else, drop the index, and commit => crash > > It seems that backup & restore in FB 2.1.4. somehow fixes the database, > which a backup & restore in FB 2.1.2 does not. The original database in > FB 2.1.2 does not report any errors when validated with FB 2.1.2 or > 2.1.4. > > > We can work around the problem by adding a backup & restore step in our > code. But I would like to know if this indicates some sort of bug that > FB 2.1.4 that 2.1.2 did not have and if we should refrain from using FB > 2.1.4. > Antti, this is almost for sure bug in firebird. Is it hard to create a minimum reproducible test case for it? Is data in database required for this bug to happen or metadata is enough?
BTW, backup/restore when changing FB version is anyway good idea. ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel