stdcxx-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-845) [XLC++ 7,8,9] SEGV in 22.locale.messages.mt
Date Mon, 05 May 2008 19:15:55 GMT

    [ https://issues.apache.org/jira/browse/STDCXX-845?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12594311#action_12594311
] 

Martin Sebor commented on STDCXX-845:
-------------------------------------

I see. So the test does, in fact, exercise the cache. It just doesn't necessarily exercise
its reallocation, unless it runs enough threads. Maybe we should enhance the test to have
each thread open more than 1 catalog.

Btw., it also occurs to me that a more efficient implementation of the facet might be possible:
instead of having each call to {{messages::open()}} with the same name open a new catalog
(and allocate a file descriptor) we could check to see if the same catalog is already open
and if so return the cached handle. If we should implement this enhancement the test should
also be enhanced to manipulate at least some distinct catalogs.

> [XLC++ 7,8,9] SEGV in 22.locale.messages.mt
> -------------------------------------------
>
>                 Key: STDCXX-845
>                 URL: https://issues.apache.org/jira/browse/STDCXX-845
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 22. Localization
>    Affects Versions: 4.2.1
>         Environment: AIX 5.3 PowerPC IBM XLC++ 9.0 
> AIX 5.3 PowerPC IBM XLC++ 8.0 
> AIX 5.3 PowerPC IBM XLC++ 7.0 
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>             Fix For: 4.2.2
>
>         Attachments: stdcxx-845.patch
>
>   Original Estimate: 4h
>          Time Spent: 9h
>  Remaining Estimate: 0h
>
> On AIX, when compiled with XLC++ the test 22.locale.messages.mt fails with {{SIGSEGV}}
or {{SIGABRT}}.
> {{SIGSEGV}} on XLC++ 7.0 for 12a, 12d
> {{SIGABRT}} on XLC++ 7.0 for 15a, 15s, 15S
> {{SIGSEGV}} on XLC++ 8.0 for 12a, 12d, 12D, 15a, 15A
> {{SIGABRT}} on XLC++ 8.0 for 15S
> {{SIGSEGV}} on XLC++ 9.0 for 12a, 15a, 15A
> {{SIGABRT}} on XLC++ 9.0 for 15s
> Here is the output for a 12S build...
> {noformat}
> $ dbx 22.locale.messages.mt 
> # INFO (S1) (10 lines):
> # TEXT: 
> # COMPILER: IBM VisualAge C++, __IBMCPP__ = 900
> # ENVIRONMENT: powerpc/LP64 running aix-5.3
> # FILE: 22.locale.messages.mt.cpp
> # COMPILED: Apr  9 2008, 16:38:10
> # COMMENT: thread safety
> ############################################################
> # CLAUSE: lib.locale.messages
> # NOTE (S2) (5 lines):
> # TEXT: executing "gencat rwstdmessages.cat rwstdmessages.msg"
> # CLAUSE: lib.locale.messages
> # FILE: process.cpp
> # LINE: 279
> # INFO (S1) (3 lines):
> # TEXT: testing std::messages<charT> with 8 threads, 100000 iterations each
> # CLAUSE: lib.locale.messages
> # INFO (S1) (3 lines):
> # TEXT: exercising std::messages<char>
> # CLAUSE: lib.locale.messages
> Segmentation fault (core dumped)
> $ dbx 22.locale.messages.mt 
> Type 'help' for help.
> [using memory image in core]
> reading symbolic information ...
> Segmentation fault in strchr.strchr at 0x900000000048ec0 ($t2)
> 0x900000000048ec0 (strchr+0x140) 8d230001       lbzu   r9,0x1(r3)
> (dbx) where
> strchr.strchr() at 0x900000000048ec0
> _C_get_std_facet(__rw::__rw_facet::_C_facet_type,__rw::__rw_facet*(*)(unsigned long,const
char*)) const() at 0x100027970
> __rw_get_facet_by_id__4__rwFRCQ2_3std6localeRCQ2_4__rw13__rw_facet_idPCQ2_3std7codecvtXTcTcTPc_@AF18_13()
at 0x100070e54
> do_get__Q2_3std8messagesXTc_CFiN21RCQ2_3std12basic_stringXTcTQ2_3std11char_traitsXTc_TQ2_3std9allocatorXTc__()
at 0x1000373ec
> get__Q2_3std8messagesXTc_CFiN21RCQ2_3std12basic_stringXTcTQ2_3std11char_traitsXTc_TQ2_3std9allocatorXTc__()
at 0x100037178
> 22.locale.messages.mt.void test_get<char>( \
>   const std::messages<char>&,int,int,int,const std::basic_string<char,std::char_traits<char>,std::allocator<char>
>&) \
>   (msgs = &(...), cat = 0, set = 4, msgid = 4, dflt = &(...)), line 153 in "22.locale.messages.mt.cpp"
> unnamed block in thread_func(void*)( = 0x0ffffffffffff2e0), line 189 in "22.locale.messages.mt.cpp"
> thread_func(void*)( = 0x0ffffffffffff2e0), line 189 in "22.locale.messages.mt.cpp"
> (dbx) quit
> {noformat}
> This is a new test for 4.2.1, so it is a regression.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message