[
https://issues.apache.org/jira/browse/STDCXX-886?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12590593#action_12590593
]
Travis Vitek commented on STDCXX-886:
-------------------------------------
As I mentioned in STDCXX-846, I know there are workarounds. I suggested either
skipping these 'bad' locales or to terminate the stream with traits::eof(). It
would also work to limit the length of the input sequence as you have just
proposed. Unfortunately that doesn't fix the more general case shown in the
test program shown in STDCXX-846.
> [HP aCC 6.16] SIGABRT in 22.locale.num.get.mt
> ---------------------------------------------
>
> Key: STDCXX-886
> URL: https://issues.apache.org/jira/browse/STDCXX-886
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Tests
> Affects Versions: trunk
> Environment: $ uname -sr && model && aCC -V
> HP-UX B.11.31
> ia64 hp server rx2660
> aCC: HP C/aC++ B3910B A.06.16 [Nov 26 2007]
> Reporter: Martin Sebor
> Fix For: 4.2.2
>
>
> The test fails with {{SIGABRT}} in nightly builds but it look like a thread
> safety problem because it fails even with a single thread. Here's the output
> including the stack trace:
> {noformat}
> $ ./22.locale.num.get.mt --nthreads=1 2>&1 | c++filt
> # INFO (S1) (10 lines):
> # TEXT:
> # COMPILER: HP aCC, __HP_aCC = 61600, __EDG_VERSION__ = 308
> # ENVIRONMENT: ia64 running hp-ux
> # FILE: 22.locale.num.get.mt.cpp
> # COMPILED: Apr 16 2008, 17:48:24
> # COMMENT: thread safety
> ############################################################
> # CLAUSE: lib.locale.num.get
> # NOTE (S2) (5 lines):
> # TEXT: executing "locale -a > /var/tmp/tmpfile-005971"
> # CLAUSE: lib.locale.num.get
> # FILE: process.cpp
> # LINE: 276
> # INFO (S1) (3 lines):
> # TEXT: testing std::num_get<charT> with 1 thread, 100000 iterations each, in
> 32 locales { "C" "POSIX" "C.iso88591" "C.iso885915" "C.utf8" "univ.utf8"
> "ar_DZ.arabic8" "ar_DZ.utf8" "ar_SA.arabic8" "ar_SA.iso88596" "ar_SA.utf8"
> "bg_BG.iso88595" "bg_BG.utf8" "zh_CN.gb18030" "zh_CN.hp15CN" "zh_CN.utf8"
> "zh_HK.hkbig5" "zh_HK.utf8" "zh_TW.big5" "zh_TW.ccdc" "zh_TW.eucTW"
> "zh_TW.utf8" "cs_CZ.iso88592" "cs_CZ.utf8" "da_DK.iso88591" "[EMAIL
> PROTECTED]" "da_DK.roman8" "da_DK.utf8" "nl_NL.iso88591" "[EMAIL PROTECTED]"
> "nl_NL.roman8" "nl_NL.utf8" }
> # CLAUSE: lib.locale.num.get
> # INFO (S1) (3 lines):
> # TEXT: exercising std::num_get<char>
> # CLAUSE: lib.locale.num.get
> /amd/devco/sebor/stdcxx/tests/localization/22.locale.num.get.mt.cpp:245: void
> test_get_data(const MyNumData &, const std::num_get<charT,
> std::istreambuf_iterator<_CharT, std::char_traits<_CharT>>> &, const
> std::istreambuf_iterator<_CharT, _Traits> &, const
> std::istreambuf_iterator<_CharT, _Traits> &, std::basic_ios<charT, Traits> &)
> [with charT = char, Traits = std::char_traits<char>]: Assertion '! (state &
> std::ios_base::failbit)' failed.
> (0) 0xc000000006227a90 __rw::__rw_assert_fail(char const*,char
> const*,int,char const*) + 0x170 at /amd/devco/sebor/stdcxx/src/assert.cpp:103
> [/build/sebor/stdcxx-aCC-6.16-15D/lib/libstd15D.sl]
> (1) 0x4000000000031c90 void test_get_data<char,std::char_traits<char>
> >(MyNumData
> const&,std::num_get<(%0=)char,std::istreambuf_iterator<std::num_get,std::char_traits<std::num_get>
> > > const&,(%0=)char<std::num_get,(%1=)std::char_traits<char> >
> const&,std::num_get<(%0=)char,std::istreambuf_iterator<std::num_get,std::char_traits<std::num_get>
> > >
> const,std::basic_ios<std::num_get,std::istreambuf_iterator<std::num_get,std::char_traits<std::num_get>
> > >&) + 0x4e0 at
> /amd/devco/sebor/stdcxx/tests/localization/22.locale.num.get.mt.cpp:245
> [./22.locale.num.get.mt]
> (2) 0x4000000000030690 thread_func(void*) + 0x350 at
> /amd/devco/sebor/stdcxx/tests/localization/22.locale.num.get.mt.cpp:354
> [./22.locale.num.get.mt]
> (3) 0xc0000000000dfa90 __pthread_bound_body + 0x170 at
> /ux/core/libs/threadslibs/src/common/pthreads/pthread.c:4871
> [/usr/lib/hpux64/libpthread.so.1]
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.