Assert at MET_current
---------------------
Key: CORE-5396
URL: http://tracker.firebirdsql.org/browse/CORE-5396
Project: Firebird Core
Issue Type: Bug
Components: Engine
Affects Versions: 3.0.2
Environment: Windows 10 Pro x64, IBProvider Test System, Outside snow.
Reporter: Kovalenko Dmitry
Firebird 3.0.2.32629. Original source code, custom DEBUG build VS2015 SP3,
SuperServer, x64.
IBProvider tests. 4 test threads.
Problem in test thread #3 [table name: TEST_TABLE_6327]
Crash stack
engine12.dll!fb_assert_impl(const char * msg, const char * file, int
line, bool do_abort) Line 40 C++
> engine12.dll!MET_current(Jrd::thread_db * tdbb, Jrd::jrd_rel *
> relation) Line 5303 C++
engine12.dll!VIO_gc_record(Jrd::thread_db * tdbb, Jrd::jrd_rel *
relation) Line 2073 C++
engine12.dll!purge(Jrd::thread_db * tdbb, Jrd::record_param * rpb) Line
5938 C++
engine12.dll!VIO_chase_record_version(Jrd::thread_db * tdbb,
Jrd::record_param * rpb, Jrd::jrd_tra * transaction, Firebird::MemoryPool *
pool, bool writelock, bool noundo) Line 1234 C++
engine12.dll!VIO_next_record(Jrd::thread_db * tdbb, Jrd::record_param *
rpb, Jrd::jrd_tra * transaction, Firebird::MemoryPool * pool, bool onepage)
Line 3015 C++
engine12.dll!garbage_collector(void * arg) Line 4894 C++
engine12.dll!`anonymous namespace'::ThreadArgs::run() Line 78 C++
engine12.dll!threadStart(void * arg) Line 94 C++
Local variables [MET_current]:
+ attachment 0x0000000003a95920 {att_pool=0x0000000003a921b0
{pool=0x0000000003a91e10 {smallObjects={freeObjects=...} ...} } ...}
Jrd::Attachment *
+ jrd_481 {jrd_482=4156 }
MET_current::__l2::<unnamed-type-jrd_481>
+ jrd_483 {jrd_484=0 jrd_485=1 }
MET_current::__l2::<unnamed-type-jrd_483>
- relation 0x0000000030bf37b0 {rel_pool=0x0000000003a921b0
{pool=0x0000000003a91e10 {smallObjects={freeObjects=...} ...} } ...}
Jrd::jrd_rel *
+ pool_alloc<9> {...} pool_alloc<9>
+ rel_pool 0x0000000003a921b0 {pool=0x0000000003a91e10
{smallObjects={freeObjects=0x0000000003a91e18 {0x0000000000000000 <NULL>, ...}
...} ...} } Firebird::MemoryPool *
rel_id 4156 unsigned short
rel_current_fmt 0 unsigned short
rel_flags 800 unsigned long
+ rel_current_format 0x0000000000000000 <NULL>
Jrd::Format *
+ rel_name {data=0x0000000030bf37d0 "TEST_TABLE_6327"
count=15 } Firebird::MetaName
+ rel_owner_name {data=0x0000000030bf37f4 "" count=0 }
Firebird::MetaName
+ rel_security_name {data=0x0000000030bf3818 "" count=0 }
Firebird::MetaName
+ rel_formats 0x0000000000000000 <NULL>
Jrd::vec<Jrd::Format *> *
+ rel_fields 0x0000000000000000 <NULL>
Jrd::vec<Jrd::jrd_fld *> *
+ rel_view_rse 0x0000000000000000 <NULL> Jrd::RseNode *
+ rel_view_contexts {sortMode=1 sorted=true }
Firebird::SortedArray<Jrd::ViewContext
*,Firebird::EmptyStorage<Jrd::ViewContext *>,unsigned
short,Jrd::ViewContext,Firebird::DefaultComparator<unsigned short> >
+ rel_file 0x0000000000000000 <NULL>
Jrd::ExternalFile *
+ rel_gc_records {...} Firebird::HalfStaticArray<Jrd::Record
*,4>
rel_use_count 0 unsigned short
rel_sweep_count 2 unsigned short
rel_scan_count 0 short
+ rel_existence_lock 0x0000000093600148
{lck_dbb=0x000000000208ec50 {dbb_sync={lockState={...} waiters={...}
monitorCount=...} ...} ...} Jrd::Lock *
+ rel_partners_lock 0x0000000030bf3a48
{lck_dbb=0x000000000208ec50 {dbb_sync={lockState={...} waiters={...}
monitorCount=...} ...} ...} Jrd::Lock *
+ rel_rescan_lock 0x0000000093600090 {lck_dbb=0x000000000208ec50
{dbb_sync={lockState={...} waiters={...} monitorCount=...} ...} ...}
Jrd::Lock *
+ rel_gc_lock 0x0000000093600200 {lck_dbb=0x000000000208ec50
{dbb_sync={lockState={...} waiters={...} monitorCount=...} ...} ...}
Jrd::Lock *
+ rel_index_locks 0x0000000000000000 <NULL> Jrd::IndexLock *
+ rel_index_blocks 0x0000000000000000 <NULL>
Jrd::IndexBlock *
+ rel_pre_erase 0x0000000000000000 <NULL>
Firebird::ObjectsArray<Jrd::Trigger,Firebird::Array<Jrd::Trigger
*,Firebird::InlineStorage<Jrd::Trigger *,8> > > *
+ rel_post_erase 0x0000000000000000 <NULL>
Firebird::ObjectsArray<Jrd::Trigger,Firebird::Array<Jrd::Trigger
*,Firebird::InlineStorage<Jrd::Trigger *,8> > > *
+ rel_pre_modify 0x0000000000000000 <NULL>
Firebird::ObjectsArray<Jrd::Trigger,Firebird::Array<Jrd::Trigger
*,Firebird::InlineStorage<Jrd::Trigger *,8> > > *
+ rel_post_modify 0x0000000000000000 <NULL>
Firebird::ObjectsArray<Jrd::Trigger,Firebird::Array<Jrd::Trigger
*,Firebird::InlineStorage<Jrd::Trigger *,8> > > *
+ rel_pre_store 0x0000000000000000 <NULL>
Firebird::ObjectsArray<Jrd::Trigger,Firebird::Array<Jrd::Trigger
*,Firebird::InlineStorage<Jrd::Trigger *,8> > > *
+ rel_post_store 0x0000000000000000 <NULL>
Firebird::ObjectsArray<Jrd::Trigger,Firebird::Array<Jrd::Trigger
*,Firebird::InlineStorage<Jrd::Trigger *,8> > > *
+ rel_primary_dpnds {prim_reference_ids=0x0000000000000000
<NULL> prim_relations=0x0000000000000000 <NULL> prim_indexes=...}
Jrd::prim
+ rel_foreign_refs {frgn_reference_ids=0x0000000000000000
<NULL> frgn_relations=0x0000000000000000 <NULL> frgn_indexes=...}
Jrd::frgn
+ rel_drop_mutex {spinlock={DebugInfo=0xffffffffffffffff
{Type=??? CreatorBackTraceIndex=??? CriticalSection=??? ...} ...} ...}
Firebird::Mutex
+ rel_pages_inst 0x0000000000000000 <NULL>
Firebird::SortedArray<Jrd::RelationPages
*,Firebird::EmptyStorage<Jrd::RelationPages
*>,__int64,Jrd::RelationPages,Firebird::DefaultComparator<__int64> > *
+ rel_pages_base {rel_pages=0x0000000093600cf8 {...}
rel_instance_id=0 rel_index_root=453499 ...} Jrd::RelationPages
+ rel_pages_free 0x0000000000000000 <NULL>
Jrd::RelationPages *
+ tdbb 0x0000000007a9f780 {defaultPool=0x0000000001ff8d20
{pool=0x0000000001bb7cb0 {smallObjects={freeObjects=...} ...} } ...}
Jrd::thread_db *
Last items from IBProvider logs:
-----------------------------------------------------------------------------------------
Thread1:
[THR:010660] [15.11.2016 11:38:43] * START TEST
[rowset.update.upd_row__defer_data.auto_tr.tr_READCOMMITTED.separate.modify_tr_REPEATABLEREAD]
[THR:010660] [15.11.2016 11:38:43] *
[THR:010660] [15.11.2016 11:38:43] * PREPARE
[THR:010660] [15.11.2016 11:38:43] * RUN
[THR:010660] [15.11.2016 11:38:43] [tmp_table] create pooled data source...
[THR:010660] [15.11.2016 11:38:43] [tmp_table] connect to database ...OK
[THR:010660] [15.11.2016 11:38:43] [tmp_table] session.create(data_source)
[THR:010660] [15.11.2016 11:38:43] [tmp_table] CREATE TMP TABLE ...
[THR:010660] [15.11.2016 11:38:43] [tmp_table] EXEC IMMED:
"SET TRANSACTION WAIT"
[THR:010660] [15.11.2016 11:38:43] [tmp_table] GENERATE ID [GEN_ID_DDL].
Count:1... range: 6329...6329
[THR:010660] [15.11.2016 11:38:43] [tmp_table] EXEC IMMED:
"create table TEST_TABLE_6329
(TEST_ID INTEGER NOT NULL PRIMARY KEY,
COL_BLOB BLOB SUB_TYPE TEXT CHARACTER SET WIN1251,
COL_ARRAY INTEGER[1:2])"
[THR:010660] [15.11.2016 11:38:43] [tmp_table] COMMIT TRANSACTION
[RETAINING=false]...
[THR:010660] [15.11.2016 11:38:43] [tmp_table] TMP TABLE NAME: TEST_TABLE_6329
[THR:010660] [15.11.2016 11:38:43] [test] set_init_prop: [auto_commit]=true
[THR:010660] [15.11.2016 11:38:43] [test] set_init_prop:
[auto_commit_level]=4096
[THR:010660] [15.11.2016 11:38:43] [test] set_init_prop: [ctype]=win1251
[THR:010660] [15.11.2016 11:38:43] [test] set_init_prop:
[modify_trans_level]=65536
[THR:010660] [15.11.2016 11:38:43] [test] set_init_prop: [modify_trans_type]=2
[THR:010660] [15.11.2016 11:38:43] [test]
-----------------------------------------------------------------------------------------
Thread2:
[THR:007212] [15.11.2016 11:38:43] * START TEST
[rowset.update.upd_row__defer_data.auto_tr.tr_REPEATABLEREAD.mutable.modify_tr_READCOMMITTED]
[THR:007212] [15.11.2016 11:38:43] *
[THR:007212] [15.11.2016 11:38:43] * PREPARE
[THR:007212] [15.11.2016 11:38:43] * RUN
[THR:007212] [15.11.2016 11:38:43] [tmp_table] create pooled data source...
[THR:007212] [15.11.2016 11:38:43] [tmp_table] connect to database ...OK
[THR:007212] [15.11.2016 11:38:43] [tmp_table] session.create(data_source)
[THR:007212] [15.11.2016 11:38:43] [tmp_table] CREATE TMP TABLE ...
-----------------------------------------------------------------------------------------
Thread3 [exec problem statement]:
[THR:007412] [15.11.2016 11:38:43] [test] EXECUTE COMMAND (or=true,rpi=true)
[NO PARAMS] ...
[THR:007412] [15.11.2016 11:38:43] [test] FETCH(FORWARD)... OK
[THR:007412] [15.11.2016 11:38:43] [test] FETCH TO EOF(FORWARD)... OK
[THR:007412] [15.11.2016 11:38:43] [tmp_table] DROP TMP TABLE TEST_TABLE_6327...
[THR:007412] [15.11.2016 11:38:43] [tmp_table] create pooled data source...
[THR:007412] [15.11.2016 11:38:43] [tmp_table] connect to database ...OK
[THR:007412] [15.11.2016 11:38:43] [tmp_table] session.create(data_source)
[THR:007412] [15.11.2016 11:38:43] [tmp_table] EXEC IMMED:
"SET TRANSACTION WAIT"
[THR:007412] [15.11.2016 11:38:43] [tmp_table] EXEC IMMED:
"DROP TABLE TEST_TABLE_6327"
-----------------------------------------------------------------------------------------
Thread4:
[THR:009340] [15.11.2016 11:38:43] [test] CREATE OPEN ROWSET ...OK
[THR:009340] [15.11.2016 11:38:43] [test] "Own Changes Visible"=FALSE [0]
[THR:009340] [15.11.2016 11:38:43] [test] "IRowsetChange"=TRUE [-1]
[THR:009340] [15.11.2016 11:38:43] [test] "IRowsetUpdate"=FALSE [0]
[THR:009340] [15.11.2016 11:38:43] [test] "update_sql"=bstr"update
TEST_TABLE_6328 set TEST_ID=:NEW.TEST_ID, COL_BLOB=NULL, COL_ARRAY=NULL
where TEST_ID=:OLD.TEST_ID"
--
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
------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel