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-813) runtime failure in 27.objects
Date Mon, 31 Mar 2008 03:40:25 GMT

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

Martin Sebor commented on STDCXX-813:
-------------------------------------

>From the stack trace it looks as though {{\_\_rw::__rw_vfmtwhat()}} called to construct
an exception object tries to either lock or unlock a mutex which fails by throwing an exception
and the whole process gets into an infinite recursion...

> runtime failure in 27.objects
> -----------------------------
>
>                 Key: STDCXX-813
>                 URL: https://issues.apache.org/jira/browse/STDCXX-813
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: trunk
>         Environment: CC: Sun C++ 5.9 SunOS_sparc Patch 124863-01 2007/07/25
>            Reporter: Martin Sebor
>            Priority: Blocker
>             Fix For: 4.2.1
>
>
> The [27.objects|http://svn.apache.org/repos/asf/stdcxx/trunk/tests/iostream/27.objects.cpp]
test seems to get itself into an infinite recursion -- see below. This was observed with Sun
C++ 5.9 but the test seems to be failing on other platforms (e.g., IBM XLC++ on AIX or HP
aCC 6.16 on HP-UX/IPF ) as well.
> {noformat}
> $ nice gmake -r 27.objects && dbx -q -c"check -all;run;where" 27.objects
> CC -c -D_RWSTDDEBUG   -mt -I/amd/devco/sebor/stdcxx/include -I/build/sebor/stdcxx-suncc-5.9_j1-15D/i
> nclude -I/amd/devco/sebor/stdcxx/tests/include  -library=%none -g  -m64 +w -errtags -erroff=hidef
  
> /amd/devco/sebor/stdcxx/tests/iostream/27.objects.cpp
> CC 27.objects.o -o 27.objects -L/build/sebor/stdcxx-suncc-5.9_j1-15D/rwtest -lrwtest15D
-library=%no
> ne  -mt  -m64 -L/build/sebor/stdcxx-suncc-5.9_j1-15D/lib  -R/build/sebor/stdcxx-suncc-5.9_j1-15D/lib
> :/build/sebor/stdcxx-suncc-5.9_j1-15D/rwtest -lstd15D  -lm 
> rm 27.objects.o
> access checking - ON
> memuse checking - ON
> Running: 27.objects 
> (process id 6866)
> RTC: Enabling Error Checking...
> RTC: Running program...
> # INFO (S1) (10 lines):
> # TEXT: 
> # COMPILER: SunPro, __SUNPRO_CC = 0x590
> # ENVIRONMENT: sparc-v9 running sunos-5.10
> # FILE: 27.objects.cpp
> # COMPILED: Mar 30 2008, 13:46:10
> # COMMENT: 
> ############################################################
> # CLAUSE: lib.iostream.objects
> # INFO (S1) (3 lines):
> # TEXT: checking whether objects are initialized
> # CLAUSE: lib.iostream.objects
> # INFO (S1) (4 lines):
> # TEXT: checking tied stream objects
> # CLAUSE: lib.iostream.objects
> # LINE: 151
> # INFO (S1) (4 lines):
> # TEXT: checking for std::ios_base::unitbuf in flags
> # CLAUSE: lib.iostream.objects
> # LINE: 168
> 000000
> # INFO (S1) (4 lines):
> # TEXT: exercising the ability to tie each stream to itself without causing a deadlock
> # CLAUSE: lib.iostream.objects
> # LINE: 242
> [replacement operator new (72)]
> ffffffff6b7219d0 [replacement operator new (72)]
> ffffffff6b721d00 [replacement operator new (72)]
> ffffffff6b722030 [replacement operator new (72)]
> ffffffff6b722ca0 [replacement operator new (72)]
> ffffffff6b7235d0 [replacement operator new (72)]
> ffffffff6b723f00 # INFO (S1) (4 lines):
> # TEXT: exercising the ability to tie stream objects together without causing a deadlock
> # CLAUSE: lib.iostream.objects
> # LINE: 268
> ffffffff6b721d00 t@1 (l@1) signal SEGV (no mapping at the fault address) in get_quick_stack_info
at 
> 0xffffffff71d255a0
> 0xffffffff71d255a0: get_quick_stack_info+0x0014:        stx      %o0, [%i0]
> Current function is __rw::__rw_mutex_base::_C_acquire
>   329           if (0 != _RWSTD_MUTEX_LOCK (_C_mutex))
> current thread: t@1
> =>[1] __rw::__rw_mutex_base::_C_acquire(this = 0x100011000), line 329 in "_mutex.h"
>   [2] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f8004f8, __mutex = CLASS), line
560 in "_mutex.h"
>   [3] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f8006b8),
line 586 in "exception.cpp"
>   [4] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [5] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [6] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f800908, __mutex = CLASS), line
560 in "_mutex.h"
>   [7] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f800ac8),
line 586 in "exception.cpp"
>   [8] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [9] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [10] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f800d18, __mutex = CLASS), line
560 in "_mutex.h"
>   [11] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f800ed8),
line 586 in "exception.cpp"
>   [12] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [13] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [14] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f801128, __mutex = CLASS), line
560 in "_mutex.h"
>   [15] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f8012e8),
line 586 in "exception.cpp"
>   [16] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [17] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [18] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f801538, __mutex = CLASS), line
560 in "_mutex.h"
>   [19] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f8016f8),
line 586 in "exception.cpp"
>   [20] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [21] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [22] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f801948, __mutex = CLASS), line
560 in "_mutex.h"
>   [23] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f801b08),
line 586 in "exception.cpp"
>   [24] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [25] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [26] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f801d58, __mutex = CLASS), line
560 in "_mutex.h"
>   [27] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f801f18),
line 586 in "exception.cpp"
>   [28] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [29] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [30] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f802168, __mutex = CLASS), line
560 in "_mutex.h"
>   [31] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f802328),
line 586 in "exception.cpp"
>   [32] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [33] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [34] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f802578, __mutex = CLASS), line
560 in "_mutex.h"
>   [35] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f802738),
line 586 in "exception.cpp"
>   [36] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [37] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [38] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f802988, __mutex = CLASS), line
560 in "_mutex.h"
>   [39] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f802b48),
line 586 in "exception.cpp"
>   [40] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [41] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [42] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f802d98, __mutex = CLASS), line
560 in "_mutex.h"
>   [43] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f802f58),
line 586 in "exception.cpp"
>   [44] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [45] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [46] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f8031a8, __mutex = CLASS), line
560 in "_mutex.h"
>   [47] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f803368),
line 586 in "exception.cpp"
>   [48] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [49] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [50] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f8035b8, __mutex = CLASS), line
560 in "_mutex.h"
>   [51] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f803778),
line 586 in "exception.cpp"
>   [52] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [53] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [54] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f8039c8, __mutex = CLASS), line
560 in "_mutex.h"
>   [55] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f803b88),
line 586 in "exception.cpp"
>   [56] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [57] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [58] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f803dd8, __mutex = CLASS), line
560 in "_mutex.h"
>   [59] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f803f98),
line 586 in "exception.cpp"
>   [60] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [61] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [62] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f8041e8, __mutex = CLASS), line
560 in "_mutex.h"
>   [63] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f8043a8),
line 586 in "exception.cpp"
>   [64] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [65] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [66] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f8045f8, __mutex = CLASS), line
560 in "_mutex.h"
>   [67] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f8047b8),
line 586 in "exception.cpp"
>   [68] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [69] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [70] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f804a08, __mutex = CLASS), line
560 in "_mutex.h"
>   [71] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f804bc8),
line 586 in "exception.cpp"
>   [72] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [73] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [74] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f804e18, __mutex = CLASS), line
560 in "_mutex.h"
>   [75] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f804fd8),
line 586 in "exception.cpp"
>   [76] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [77] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [78] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f805228, __mutex = CLASS), line
560 in "_mutex.h"
>   [79] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f8053e8),
line 586 in "exception.cpp"
>   [80] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [81] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [82] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f805638, __mutex = CLASS), line
560 in "_mutex.h"
>   [83] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f8057f8),
line 586 in "exception.cpp"
>   [84] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [85] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [86] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f805a48, __mutex = CLASS), line
560 in "_mutex.h"
>   [87] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f805c08),
line 586 in "exception.cpp"
>   [88] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [89] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [90] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f805e58, __mutex = CLASS), line
560 in "_mutex.h"
>   [91] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f806018),
line 586 in "exception.cpp"
>   [92] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [93] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [94] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f806268, __mutex = CLASS), line
560 in "_mutex.h"
>   [95] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f806428),
line 586 in "exception.cpp"
>   [96] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
>   [97] __rw::__rw_mutex_base::_C_acquire(this = 0xffffffff6b719398), line 330 in "_mutex.h"
>   [98] __rw::__rw_guard::__rw_guard(this = 0xffffffff7f806678, __mutex = CLASS), line
560 in "_mutex.h"
>   [99] __rw::__rw_vfmtwhat(buf = (nil), bufsize = 0, id = 10, va = 0xffffffff7f806838),
line 586 in "exception.cpp"
>   [100] __rw::__rw_throw(id = 10, ...), line 825 in "exception.cpp"
> {noformat}

-- 
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