[FB-Tracker] Created: (CORE-5566) Server crashes while restoring backup if the shadow file already exists

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[FB-Tracker] Created: (CORE-5566) Server crashes while restoring backup if the shadow file already exists

JIRA tracker@firebirdsql.org
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