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

[XLC++ 7,8,9] ABRT in 22.locale.num.get.mt

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 4.2.1
    • Fix Version/s: 4.2.1
    • Component/s: Tests
    • Labels:
      None
    • 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

    • Severity:
      Incorrect Behavior

      Description

      On AIX, when compiled with XLC++, the test 22.locale.num.get.mt.cpp fails with a SIGABRT. This failure is not likely to be an indication of a thread safety problem because it happens consistently for non-reentrant builds.

      This is a new test for 4.2.1, so it is considered a regression.

      $ 22.locale.num.get.mt
      # INFO (S1) (10 lines):
      # TEXT: 
      # COMPILER: IBM VisualAge C++, __IBMCPP__ = 900
      # ENVIRONMENT: powerpc/LP64 running aix-5.3
      # FILE: 22.locale.num.get.mt.cpp
      # COMPILED: Apr  9 2008, 16:38:10
      # COMMENT: thread safety
      ############################################################
      
      # CLAUSE: lib.locale.num.get
      
      # NOTE (S2) (5 lines):
      # TEXT: executing "locale -a > /tmp/tmpfile-w1Upya"
      # CLAUSE: lib.locale.num.get
      # FILE: process.cpp
      # LINE: 279
      
      # INFO (S1) (3 lines):
      # TEXT: testing std::num_get<charT> with 8 threads, 100000 iterations each, in 32 locales \
        { "C" "POSIX" "AR_DZ.UTF-8" "AR_BH" "AR_AA.UTF-8" "AR_BH.UTF-8" "AR_AE.UTF-8" \
          "AR_DZ" "AR_EG.UTF-8" "AR_EG" "AR_AE" "AR_AA" "AR_JO" "AR_JO.UTF-8" "AR_KW" \
          "AR_KW.UTF-8" "AR_LB" "AR_LB.UTF-8" "AR_MA" "AR_MA.UTF-8" "AR_OM" "AR_OM.UTF-8" \
          "AR_QA" "AR_QA.UTF-8" "AR_SA" "AR_SA.UTF-8" "AR_SY" "AR_SY.UTF-8" "AR_TN" \ 
          "AR_TN.UTF-8" "AR_YE" "AR_YE.UTF-8" }
      # CLAUSE: lib.locale.num.get
      
      # INFO (S1) (3 lines):
      # TEXT: exercising std::num_get<char>
      # CLAUSE: lib.locale.num.get
      
      /amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.num.get.mt.cpp:245: \
        test_get_data<char,std::char_traits<char> >: Assertion '! (state & std::ios_base::failbit)' failed.
      IOT/Abort trap (core dumped)
      
      $ dbx 22.locale.num.get.mt
      Type 'help' for help.
      [using memory image in core]
      reading symbolic information ...
      
      IOT/Abort trap in pthread_kill at 0x90000006ce3a5bc ($t2)
      0x90000006ce3a5bc (pthread_kill+0x88) e8410028         ld   r2,0x28(r1)
      (dbx) where
      pthread_kill(??, ??) at 0x90000006ce3a5bc
      _p_raise(??) at 0x90000006ce39ff8
      raise.raise(??) at 0x90000000005893c
      abort() at 0x900000000083c0c
      __rw_assert_fail__4__rwFPCcT1iT1() at 0x10008b45c
      unnamed block in 22.locale.num.get.mt.void test_get_data<char,std::char_traits<char> >( \
          const MyNumData&,\
          const std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >&, \
          const std::istreambuf_iterator<char,std::char_traits<char> >&,\
          const std::istreambuf_iterator<char,std::char_traits<char> >&, \
          std::basic_ios<char,std::char_traits<char> >&)\
          (data = &(...), np = &(...), iter = &(...), end = &(...), io = &(...)), line 245 in "22.locale.num.get.mt.cpp"
      22.locale.num.get.mt.void test_get_data<char,std::char_traits<char> >( \
          const MyNumData&, \
          const std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >&, \
          const std::istreambuf_iterator<char,std::char_traits<char> >&, \
          const std::istreambuf_iterator<char,std::char_traits<char> >&, \
          std::basic_ios<char,std::char_traits<char> >&)
          (data = &(...), np = &(...), iter = &(...), end = &(...), io = &(...)), line 245 in "22.locale.num.get.mt.cpp"
      unnamed block in thread_func(void*)( = 0x0fffffffffffef50), line 349 in "22.locale.num.get.mt.cpp"
      unnamed block in thread_func(void*)( = 0x0fffffffffffef50), line 349 in "22.locale.num.get.mt.cpp"
      thread_func(void*)( = 0x0fffffffffffef50), line 349 in "22.locale.num.get.mt.cpp"
      (dbx) quit
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                vitek Travis Vitek
                Reporter:
                vitek Travis Vitek
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 2h Original Estimate - 2h
                  2h
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 4h
                  4h