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

Reply via email to