AV. Problem in MET_procedure ---------------------------- Key: CORE-4239 URL: http://tracker.firebirdsql.org/browse/CORE-4239 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 2.5.3 Environment: Vista x64. Q6600, 8GB. IBProvider Test System.
Reporter: Kovalenko Dmitry I executed my old tests (in four threads) and get the (think, reproducible) AV in Firebird's engine: Необработанное исключение в "0x0000000140256da2" в "fb_inet_server.exe": 0xC0000005: Нарушение прав доступа при записи "0x0000000000000000". ---------- [27.09.2013 08:54:24] [ExecuteTests] CommandLine: target\ibp_oledb_test_vc10_x64_Release.exe /thread_count 4 /log_dir ..\_log /log_file_prefix w64_local_d3 /cn_str "provider=LCPI.IBProvider.3;location=d:\database\ibp_test_fb25_d3.gdb;user id=gamer;password=vermut;ctype=win1251;icu_library=icuuc30.dll" /test schema* [27.09.2013 08:54:24] [ExecuteTests] Test Mask : [schema*] [27.09.2013 08:54:24] [info] Provider DLL :_IBProvider_v3_vc10_w64_i.dll [27.09.2013 08:54:24] [info] Provider Version:3.16.4.15390 [27.09.2013 08:54:24] [info] Server Name :Firebird x64 [SuperClassic]. Release build [VS2010] [27.09.2013 08:54:24] [info] Server Version :2.5.3.26640 [27.09.2013 08:54:24] [info] Client Name :Firebird SQL Server [27.09.2013 08:54:24] [info] Client Version :2.5.3.26640 [27.09.2013 08:54:24] [info] Database ODS :11.2 [27.09.2013 08:54:24] [info] Database Dialect:3 ---------------- [problem FB-thread stack] [SRC] Parameter* parameter = *ptr; // check for parameter to be null, this can only happen if the // parameter numbers get out of sync. This was added to fix bug // 10534. -Shaunak Mistry 12-May-99 if (parameter) { *desc = parameter->prm_desc; //<---------------- HERE length = MET_align(dbb, &(*desc), length); desc->dsc_address = (UCHAR *) (IPTR) length; length += desc->dsc_length; } [ASM] if (parameter) 0000000140256D99 test rcx,rcx 0000000140256D9C je 0000000140256DF1 { *desc = parameter->prm_desc; 0000000140256D9E mov rax,qword ptr [rcx+8] 0000000140256DA2 mov qword ptr [r8],rax //<------------ HERE [STACK] > fb_inet_server.exe!MET_procedure(Jrd::thread_db * > tdbb=0x305f504d545f5053, int id=67718520, bool noscan=true, unsigned short > flags=61472) Строка 5067 + 0x4 байт C++ fb_inet_server.exe!MET_lookup_procedure(Jrd::thread_db * tdbb=0x00000000053af020, const Firebird::MetaName & name={...}, bool noscan=false) Строка 3979 + 0x14 байт C++ fb_inet_server.exe!create_procedure(Jrd::thread_db * tdbb=0x000000000c99b608, short phase=-27224, Jrd::DeferredWork * work=0x000000000f2f3368, Jrd::jrd_tra * transaction=0x0000000000000001) Строка 3468 C++ fb_inet_server.exe!DFW_perform_work(Jrd::thread_db * tdbb=0x000000000c99b608, Jrd::jrd_tra * transaction=0x0000000000000000) Строка 1174 + 0x11 байт C++ fb_inet_server.exe!TRA_commit(Jrd::thread_db * tdbb=0x000000000f2f3368, Jrd::jrd_tra * transaction=0x0000000000000000, const bool retaining_flag=true) Строка 444 C++ fb_inet_server.exe!commit(Jrd::thread_db * tdbb=0x00000000053af270, Jrd::jrd_tra * transaction=0x00000000053af9b0, const bool retaining_flag=true) Строка 4539 + 0xf байт C++ fb_inet_server.exe!jrd8_commit_transaction(__int64 * user_status=0x000000000eed4720, Jrd::jrd_tra * * tra_handle=0x000000000efc0198) Строка 1744 + 0x13 байт C++ fb_inet_server.exe!isc_commit_transaction(__int64 * user_status=0x000000000eed4720, unsigned int * tra_handle=0x0000000007178910) Строка 1749 + 0x34 байт C++ fb_inet_server.exe!rem_port::end_transaction(P_OP operation=118982928, p_rlse * release=0x0000000007178910, packet * sendL=0x0000000007178910) Строка 2086 C++ fb_inet_server.exe!process_packet(rem_port * port=0x0000000000db0020, packet * sendL=0x0000000007178910, packet * receive=0x0000000000dba7a8, rem_port * * result=0x0000000000000038) Строка 3419 C++ fb_inet_server.exe!SRVR_main(rem_port * main_port=0x00000000043a6f00, unsigned short flags=0) Строка 402 + 0x1a байт C++ fb_inet_server.exe!process_connection_thread(void * arg=0x00000000043a6f10) Строка 348 + 0x14 байт C++ fb_inet_server.exe!`anonymous namespace'::threadStart(void * arg=0x0000000000000000) Строка 139 + 0x5 байт C++ ---------------- [problem FB-thread local vars] + tdbb 0x305f504d545f5053 {tdbb_default=??? database=??? attachment=??? ...} Jrd::thread_db * id 67718520 int noscan true bool flags 61472 unsigned short + jrd_160 {jrd_161=0x00000000053aeb20 "IN4 " jrd_162=0x00000000053aeb40 "SP_TMP_007_32096 " } MET_procedure::__l2::<unnamed-type-jrd_160> + jrd_151 {jrd_152=0 } MET_procedure::__l2::<unnamed-type-jrd_151> + procedure 0x0000000004022060 {prc_id=677 prc_flags=8 prc_inputs=4 ...} Jrd::jrd_prc * + jrd_190 {jrd_191={...} jrd_192=0x00000000053aea08 "SQL$32855 " jrd_193=0x00000000053aea28 "SP_TMP_007_32096 " ...} MET_procedure::__l2::<unnamed-type-jrd_190> + jrd_170 {jrd_171=0x00000000053aeb00 "SP_TMP_007_32096 " } MET_procedure::__l2::<unnamed-type-jrd_170> + dbb 0x0000000002c2de10 {dbb_sync={...} dbb_lock_mgr=0x0000000000dbeb58 dbb_event_mgr=0x0000000000000000 ...} Jrd::Database * + jrd_153 {jrd_154={...} jrd_155=27680 jrd_156=1486 ...} MET_procedure::__l2::<unnamed-type-jrd_153> + jrd_188 {jrd_189=677 } MET_procedure::__l2::<unnamed-type-jrd_188> + jrd_172 {jrd_173={...} jrd_174=0x00000000053aea88 "RDB$126807 " jrd_175=0x00000000053aeaa8 "IN4 " ...} MET_procedure::__l2::<unnamed-type-jrd_172> + jrd_163 {jrd_164={...} jrd_165=0 jrd_166=-1 ...} MET_procedure::__l2::<unnamed-type-jrd_163> + guard {mutex={...} } Jrd::Database::CheckoutLockGuard + csb_pool 0x0000000004094d78 {parent_redirect=true freeBlocks={...} extents_os=0x0000000000001770 ...} Firebird::MemoryPool * + pa_default_value {bid_internal={...} bid_quad={...} } Jrd::bid + pool 0x0000000004095928 {parent_redirect=true freeBlocks={...} extents_os=0x0000000004095fe0 ...} Firebird::MemoryPool * + context {savedThreadData=0x0000000000000000 savedPool=0x000000000c99b608 } Firebird::SubsystemContextPoolHolder<Jrd::thread_db,Firebird::MemoryPool> + csb {ptr=0x0000000004094d78 } Firebird::AutoPtr<Jrd::CompilerScratch,Firebird::SimpleDelete<Jrd::CompilerScratch> > + context {savedThreadData=0x00000000053af020 savedPool=0x0000000000000000 } Firebird::SubsystemContextPoolHolder<Jrd::thread_db,Firebird::MemoryPool> + csb {ptr=0x0000000004095928 } Firebird::AutoPtr<Jrd::CompilerScratch,Firebird::SimpleDelete<Jrd::CompilerScratch> > Unfortunately, because I used "release" Firebird's binaries, I have the problem with the exact information about all local variables. ------------ [IBProvider test thread] [THR:006088] [27.09.2013 11:05:19] [test] Prepare Command: "CREATE PROCEDURE SP_TMP_007_32096 (IN1 VARCHAR(31) CHARACTER SET UNICODE_FSS, IN2 BLOB SUB_TYPE 1 SEGMENT SIZE 256, IN3 SMALLINT, IN4 BLOB SUB_TYPE 0 SEGMENT SIZE 256) AS DECLARE VARIABLE X INTEGER; BEGIN X=0; END" [THR:006088] [27.09.2013 11:05:19] [test] EXECUTE COMMAND (or=true,rpi=true) [NO PARAMS] ... [THR:006088] [27.09.2013 11:05:19] [test] COMMIT TRANSACTION [RETAINING=false]... <AV in FB engine> -- 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 ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel