incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Lemings" <Eric.Lemi...@roguewave.com>
Subject RE: [jira] Commented: (STDCXX-811) [Solaris Threads] SIGSEGV in 22.locale.statics.mt.cpp
Date Wed, 02 Apr 2008 22:55:16 GMT
 
file stdcxx/trunk/src/locale_global.cpp:
...
 56         setlocale (_RWSTD_LC_ALL, rhs.name ().c_str ());
...

setlocale() is not a MTS function, is it?  From what I see,
it looks like std::locale::global() is being called from
two threads with the same rhs object.

>From the Solaris setlocale(3C) man page:

"NOTES
     It is unsafe for any thread to  change  locale  (by  calling
     setlocale()  with  a  non-null  locale  argument)  in a mul-
     tithreaded application while any other thread in the  appli-
     cation  is  using  any  locale-sensitive  routine. To change
     locale in a multithreaded application, setlocale() should be
     called  prior  to  using any locale-sensitive routine. Using
     setlocale() to query the current locale is safe and  can  be
     used  anywhere  in  a  multithreaded application except when
     some other thread is changing locale."

Brad.

> -----Original Message-----
> From: Eric Lemings (JIRA) [mailto:jira@apache.org] 
> Sent: Wednesday, April 02, 2008 4:39 PM
> To: Eric Lemings
> Subject: [jira] Commented: (STDCXX-811) [Solaris Threads] 
> SIGSEGV in 22.locale.statics.mt.cpp
> 
> 
>     [ 
> https://issues.apache.org/jira/browse/STDCXX-811?page=com.atla
> ssian.jira.plugin.system.issuetabpanels:comment-tabpanel&focus
> edCommentId=12584863#action_12584863 ] 
> 
> Eric Lemings commented on STDCXX-811:
> -------------------------------------
> 
> Here's a stack trace where the test is failing, just for the record.
> 
> {noformat}
> [user@host tests]$ dbx ./22.locale.statics.mt core
> For information about new features see `help changes'
> To remove this message, put `dbxenv suppress_startup_message 
> 7.6' in your .dbxrc
> Reading 22.locale.statics.mt
> dbx: warning: core object name "22.locale.stati" matches
> object name "22.locale.statics.mt" within the limit of 14. 
> assuming they match
> core file header read successfully
> Reading ld.so.1
> ...
> Reading zh_TW.UTF-8@zhuyin.so.3
> t@5 (l@5) terminated by signal SEGV (no mapping at the fault address)
> 0xffffffff7f60dbb8: defrag+0x0078:      ld       [%g5 + 16], %o5
> Current function is std::locale::global
>    56           setlocale (_RWSTD_LC_ALL, rhs.name ().c_str ());
> (dbx) where
> current thread: t@5
>   [1] defrag(0xffffffff59200000, 0x59200160, 
> 0xffffffff7f72cb18, 0xffffffff59200010, 0xffffffff592000e0, 
> 0x4f383835392d3520), at 0xffffffff7f60dbb8
>   [2] get_lcinterface(0xffffffff7f72c1b8, 0xffffffff7f72c370, 
> 0xffffffff7e3fb708, 0x0, 0x2000, 0xffffffff7f627728), at 
> 0xffffffff7f60e1b8
>   [3] informrtld(0x21e0, 0x2000, 0xffffffff7e95e988, 
> 0xffffffff7eae6000, 0x158954, 0x101010101010101), at 
> 0xffffffff7e98d6fc
>   [4] _setlocale(0xffffffff7c9052f0, 0xffffffff7e9dbc7e, 0x6, 
> 0xffffffff7c905230, 0x2000, 0xffffffff7eaf00b0), at 0xffffffff7e98d458
> =>[5] std::locale::global(rhs = STRUCT), line 56 in 
> "locale_global.cpp"
>   [6] test_global(_ARG1 = 0xffffffff7fffe9b8), line 95 in 
> "22.locale.statics.mt.cpp"
> (dbx)
> {noformat}
> 
> 
> > [Solaris Threads] SIGSEGV in 22.locale.statics.mt.cpp
> > -----------------------------------------------------
> >
> >                 Key: STDCXX-811
> >                 URL: 
> https://issues.apache.org/jira/browse/STDCXX-811
> >             Project: C++ Standard Library
> >          Issue Type: Bug
> >          Components: 22. Localization
> >    Affects Versions: 4.2.0
> >            Reporter: Martin Sebor
> >            Assignee: Eric Lemings
> >            Priority: Critical
> >             Fix For: 4.2.1
> >
> >   Original Estimate: 4h
> >          Time Spent: 1h
> >  Remaining Estimate: 3h
> >
> > Regardless of the compiler (gcc or Sun C++), when compiled 
> with Solaris Threads instead of POSIX threads, the 
> [22.locale.statics.mt|http://svn.apache.org/repos/asf/stdcxx/t
> runk/tests/localization/22.locale.statics.mt.cpp] fails at 
> runtime with SIGSEGV or SIGHUP, suggesting a problem with the 
> uses of Solaris threads mutexes in the library.
> > I'm assuming this is not a regression but we need to check 
> the results of the test in 4.2.0 to make sure. If it is one, 
> it would make the priority of this issue a Blocker. 
> Otherwise, if it's not a new problem, we might be able to 
> defer it post 4.2.1 if it's too hard to fix.
> 
> -- 
> 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