Uploaded image for project: 'C++ Standard Library'
  1. C++ Standard Library
  2. STDCXX-813

runtime failure in 27.objects

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: 4.2.1
    • Component/s: Tests
    • Labels:
      None
    • Environment:

      CC: Sun C++ 5.9 SunOS_sparc Patch 124863-01 2007/07/25

    • Regression:
      Regression
    • Severity:
      Runtime Error

      Description

      The 27.objects 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.

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

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                sebor Martin Sebor
                Reporter:
                sebor Martin Sebor
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: