Hi
Now I’m
building and testing Firebird-2.5.1.26351 (got from http://www.firebirdsql.org/)
on HP-UX 11i v3 (HP Integrity server rx2800 i2 with Intel® Itanium®
processors) using aCC (HP C++ compiler).
I've met the following issue:
Despite aCC
supports __thread keyword it is set not to use it in src/jrd/common.h, so
workaround
TlsValue class is used. But when firebird programs are run Firebird::TlsValue
contextPool is not initialized and this cause the programs to get caught in an
endless loop (see create_db runtime stack contents below).
I managed
to build Firebird enabling __thread keyword use and will be testing it.
Could
the issue with TlsValue class be investigated and fixed?
Thanks a lot in advance.
Best
regard,
Elena.
create_db runtime stack contents (#0-#7 are endlessly repealed during
execution):
#0 gds__log
(text=0x4029e220 Assertion (%s) failure: %s %ld\n) at
src/jrd/gds.cpp:1185
#1
0x404f80e0:2 in inline Firebird::TlsValue::get()
(this=0x600d6ba8) at src/include/../common/classes/fb_tls.h:129
#2
0x404f8080:0 in Firebird::MemoryPool::getContextPool () at
src/common/classes/alloc.cpp:300
#3
0x40505f40:0 in Firebird::AutoStorage::getAutoMemoryPool () at
src/common/classes/alloc.cpp:2031
#4
0x40534390:2 in inline Firebird::AutoStorage::AutoStorage() () at
src/include/../common/classes/alloc.h:588
#5
0x40534380:1 in inline Firebird::AbstractString::AbstractString() () at
src/common/../common/../common/classes/fb_string.h:159
#6
0x40534370:1 in
Firebird::StringBase::StringBase
(this=0x9fffc7e0) at
src/common/../common/../common/classes/fb_string.h:609
#7
0x40539520:0 in fb_utils::getPrefix
(No.Identifier_5=0x9fffcd10, prefType=fb_utils::FB_DIR_LOG,
name=0x402b5af0 firebird.log) at src/common/utils.cpp:926
#8
0x40572ab0:0 in gds__log (text=0x4029e220 Assertion (%s)
failure: %s %ld\n) at src/jrd/gds.cpp:1185
#9
0x404f80e0:2 in inline
Firebird::TlsValue::get()
(this=0x600d6ba8) at src/include/../common/classes/fb_tls.h:129
#10
0x404f8080:0 in Firebird::MemoryPool::getContextPool () at
src/common/classes/alloc.cpp:300
#11
0x40505f40:0 in Firebird::AutoStorage::getAutoMemoryPool () at
src/common/classes/alloc.cpp:2031
#12
0x40534390:2 in inline Firebird::AutoStorage::AutoStorage() () at
src/include/../common/classes/alloc.h:588
#13
0x40534380:1 in inline Firebird::AbstractString::AbstractString() () at
src/common/../common/../common/classes/fb_string.h:159
#14
0x40534370:1 in
Firebird::StringBase::StringBase
(this=0x9fffd1a0) at
src/common/../common/../common/classes/fb_string.h:609
#15
0x40539520:0 in fb_utils::getPrefix
(No.Identifier_5=0x9fffd6d0, prefType=fb_utils::FB_DIR_LOG,
name=0x402b5af0 firebird.log) at src/common/utils.cpp:926
#16
0x40572ab0:0 in gds__log (text=0x4029e220 Assertion (%s)
failure: %s %ld\n) at src/jrd/gds.cpp:1185
#17
0x404f80e0:2 in inline
Firebird::TlsValue::get()
(this=0x600d6ba8) at src/include/../common/classes/fb_tls.h:129
#18 0x404f8080:0
in Firebird::MemoryPool::getContextPool () at src/common/classes/alloc.cpp:300
#19
0x40505f40:0 in Firebird::AutoStorage::getAutoMemoryPool () at
src/common/classes/alloc.cpp:2031
#20
0x4114f050:2 in inline Firebird::AutoStorage::AutoStorage() () at
src/include/../common/classes/alloc.h:588
#21
0x4114f050:0 in inline Firebird::InlineStorage::InlineStorage() () at
src/jrd/../jrd/../common/classes/array.h:42
#22
0x4114f050:0 in inline Firebird::Array::Array() () at
src/jrd/../jrd/../common/classes/array.h:83
#23
0x4114f040:0 in inline Firebird::HalfStaticArray::HalfStaticArray()
(this=0x9fffdb60) at
src/jrd/../jrd/../common/classes/array.h:466
#24
0x4114f030:2 in inline Firebird::Aligner::Aligner(unsigned
char const*,unsigned int) (this=0x9fffdb60, len=2,
buf=0x4047a732 ) at src/jrd/../common/classes/Aligner.h:95
#25
0x4114f020:0 in Firebird::IntlUtil::cvtUtf16ToUtf8
(obj=0x601092c0, nSrc=2, ppSrc=0x4047a732 ,
nDest=4, pDest=0x601091d8 юн«нюн«нюн«нюн«н,
err_code=0x9fffdd90, err_position=0x9fffdd94) at
src/jrd/IntlUtil.cpp:385
#26
0x408336a0:0 in Jrd::CsConvert::convert (this=0x9fffe100,
srcLen=2, src=0x4047a732 , dstLen=4, dst=0x601091d8
юн«нюн«нюн«нюн«н, badInputPos=0x0, ignoreTrailingSpaces=false) at
src/jrd/../jrd/../jrd/CsConvert.h:199
#27
0x41022f10:2 in inline Jrd::CsConvert::convert(unsigned int,unsigned
short const*,unsigned int,unsigned char*,unsigned int*,bool) () at
src/jrd/../jrd/../jrd/CsConvert.h:89
#28
0x41022dc0:1 in inline Jrd::CharSet::CharSet(unsigned short,charset*)
() at src/jrd/../jrd/../jrd/CharSet.h:58
#29
0x41022d70:0 in inline