Server crashes while restoring backup if the shadow file already exists -----------------------------------------------------------------------
Key: CORE-5566 URL: http://tracker.firebirdsql.org/browse/CORE-5566 Project: Firebird Core Issue Type: Bug Components: Engine Reporter: Dmitry Yemanov gbak -c -rep C:\TEMP\TEST.FBK C:\TEMP\TEST.FDB Database is configured to have a shadow at C:\TEMP\CITYCARD.SHD. If there's no such a file, restore succeeds. If the file exists, expected error is reported: gbak: ERROR:I/O error during "CreateFile (create)" operation for file "C:\TEMP\CITYCARD.SHD" gbak: ERROR: Error while trying to create file gbak: ERROR: Файл существует. gbak:Exiting before completion due to errors but then the engine crashes with the following stack: msvcr100d.dll!memcmp() Line 127 Asm engine12.dll!Firebird::MetaName::compare(const Firebird::MetaName & m={...}) Line 90 + 0x38 bytes C++ engine12.dll!Firebird::MetaName::operator==(const Firebird::MetaName & m={...}) Line 96 + 0x32 bytes C++ engine12.dll!PAR_find_proc_field(const Jrd::jrd_prc * procedure=0x00000000033f2260, const Firebird::MetaName & name={...}) Line 771 + 0x16 bytes C++ engine12.dll!Jrd::FieldNode::parse(Jrd::thread_db * tdbb=0x000000000012a4f0, Firebird::MemoryPool & pool={...}, Jrd::CompilerScratch * csb=0x000000000341ad50, const unsigned char blrOp='') Line 4855 + 0x15 bytes C++ engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::CompilerScratch * csb=0x000000000341ad50) Line 1611 + 0x4b bytes C++ engine12.dll!PAR_parse_value(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::CompilerScratch * csb=0x000000000341ad50) Line 1544 + 0xf bytes C++ engine12.dll!parseMap(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::CompilerScratch * csb=0x000000000341ad50, unsigned long stream=0x00000001) Line 3326 + 0x15 bytes C++ engine12.dll!Jrd::UnionSourceNode::parse(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::CompilerScratch * csb=0x000000000341ad50, const short blrOp=0x004c) Line 1641 + 0x1a bytes C++ engine12.dll!PAR_parseRecordSource(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::CompilerScratch * csb=0x000000000341ad50) Line 1281 + 0x15 bytes C++ engine12.dll!PAR_rse(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::CompilerScratch * csb=0x000000000341ad50, short rse_op=0x0043) Line 1306 + 0x15 bytes C++ engine12.dll!PAR_rse(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::CompilerScratch * csb=0x000000000341ad50) Line 1426 + 0x15 bytes C++ engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::CompilerScratch * csb=0x000000000341ad50) Line 1587 + 0x15 bytes C++ engine12.dll!PAR_blr(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::jrd_rel * relation=0x000000000341a750, const unsigned char * blr=0x0000000000129298, unsigned long blr_length=0x000001d8, Jrd::CompilerScratch * view_csb=0x0000000000000000, Jrd::CompilerScratch * * csb_ptr=0x00000000001295f8, Jrd::JrdStatement * * statementPtr=0x0000000000000000, const bool trigger=false, unsigned short flags=0x0000) Line 235 + 0x1a bytes C++ engine12.dll!MET_parse_blob(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::jrd_rel * relation=0x000000000341a750, Jrd::bid * blob_id=0x0000000000129898, Jrd::CompilerScratch * * csb_ptr=0x00000000001295f8, Jrd::JrdStatement * * statementPtr=0x0000000000000000, const bool trigger=false, bool validationExpr=false) Line 7750 + 0x58 bytes C++ engine12.dll!MET_get_dependencies(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::jrd_rel * relation=0x000000000341a750, const unsigned char * blob=0x0000000000000000, const unsigned long blob_length=0x00000000, Jrd::CompilerScratch * view_csb=0x0000000000000000, Jrd::bid * blob_id=0x0000000000129898, Jrd::JrdStatement * * statementPtr=0x0000000000000000, Jrd::CompilerScratch * * csb_ptr=0x0000000000129a18, const Firebird::MetaName & object_name={...}, int type=0x00000001, unsigned short flags=0x0000, Jrd::jrd_tra * transaction=0x000000000308c710, const Firebird::MetaName & domain_validation={...}) Line 5826 + 0x8d bytes C++ engine12.dll!MET_scan_relation(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::jrd_rel * relation=0x000000000341a750) Line 8796 + 0x92 bytes C++ engine12.dll!scan_relation(Jrd::thread_db * tdbb=0x000000000012a4f0, short phase=0x0003, Jrd::DeferredWork * work=0x0000000003414b98, Jrd::jrd_tra * __formal=0x000000000308c710) Line 10983 C++ engine12.dll!DFW_perform_work(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::jrd_tra * transaction=0x000000000308c710) Line 4746 + 0x28 bytes C++ engine12.dll!TRA_commit(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::jrd_tra * transaction=0x000000000308c710, const bool retaining_flag=false) Line 380 C++ engine12.dll!commit(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::jrd_tra * transaction=0x000000000308c710, const bool retaining_flag=false) Line 5484 C++ engine12.dll!JRD_commit_transaction(Jrd::thread_db * tdbb=0x000000000012a4f0, Jrd::jrd_tra * transaction=0x000000000308c710) Line 7729 C++ engine12.dll!Jrd::JTransaction::commit(Firebird::CheckStatusWrapper * user_status=0x000000000012a6e8) Line 2203 C++ engine12.dll!Firebird::ITransactionBaseImpl<Jrd::JTransaction,Firebird::CheckStatusWrapper,Firebird::IReferenceCountedImpl<Jrd::JTransaction,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IVersionedImpl<Jrd::JTransaction,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::ITransaction> > > > >::cloopcommitDispatcher(Firebird::ITransaction * self=0x00000000024c9040, Firebird::IStatus * status=0x000000000012a9d0) Line 7105 + 0x36 bytes C++ fbclient.dll!Firebird::ITransaction::commit<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper * status=0x000000000012a9c8) Line 1109 C++ fbclient.dll!Why::YTransaction::commit(Firebird::CheckStatusWrapper * status=0x000000000012a9c8) Line 4781 C++ fbclient.dll!isc_commit_transaction(__int64 * userStatus=0x000000000012aac0, unsigned int * traHandle=0x000000000012b100) Line 1711 C++ gbak.exe!close_out_transaction(gbak_action action=RESTORE, unsigned int * handle=0x000000000012b100) Line 1741 C++ gbak.exe!gbak(Firebird::UtilSvc * uSvc=0x00000000004b07a0) Line 1321 C++ gbak.exe!main(int argc=0x00000009, char * * argv=0x0000000001c626f0) Line 64 + 0x1f bytes C++ gbak.exe!__tmainCRTStartup() Line 555 + 0x19 bytes C gbak.exe!mainCRTStartup() Line 371 C kernel32.dll!BaseThreadInitThunk() + 0xd bytes [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] ntdll.dll!RtlUserThreadStart() + 0x21 bytes -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel