You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@stdcxx.apache.org by "Travis Vitek (JIRA)" <ji...@apache.org> on 2008/04/09 21:23:24 UTC
[jira] Created: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
[XLC++ 7,8,9] SEGV in 22.locale.time.get
----------------------------------------
Key: STDCXX-847
URL: https://issues.apache.org/jira/browse/STDCXX-847
Project: C++ Standard Library
Issue Type: Bug
Components: Test Driver
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
Fix For: 4.2.1
On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
This is the stack dump at the time of the crash.
{noformat}
Segmentation fault in __xisdigit at 0xd033cc00
0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
(dbx) where
__xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
__strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
strftime(??, ??, ??, ??) at 0xd0341c48
unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
(invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
(invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
(dbx) list 920,940
920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
921
922 // exercise time (time_get::get_time())
923 FUNCTION ("get_time");
924
925 int len;
926
927 {
928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
930 // Tru64 UNIX)
931 char buf [128];
932 const std::tm tmb = mktm (0, 0, 1);
933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
934 }
935
936 const int hour = 11 == len ? 12 : 0;
937
938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
(dbx) quit
{noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Assigned: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Travis Vitek reassigned STDCXX-847:
-----------------------------------
Assignee: Travis Vitek
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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.1
>
> Attachments: test-stdcxx-847.cpp
>
> Original Estimate: 4h
> Time Spent: 1h
> Remaining Estimate: 4h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12589607#action_12589607 ]
Martin Sebor commented on STDCXX-847:
-------------------------------------
It sure does look like an AIX bug. The usual process is to:
# file a bug report with the OS vendor (either via your [PartnerWorld|https://www-304.ibm.com/usrsrvc/account/userservices/jsp/login.jsp?persistPage=true] account or through [PSERV|https://techsupport.services.ibm.com/server/pserv])
# create an External issue in Jira with the test case for the bug
# track the vendor's bug status in the External issue
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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.1
>
> Original Estimate: 4h
> Time Spent: 6h
> Remaining Estimate: 0h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Travis Vitek updated STDCXX-847:
--------------------------------
Attachment: test-stdcxx-847.cpp
Attaching simplified testcase. It appears that this change is related to the rw_locale_query() call, as the failure is eliminated if the locale name is hardcoded.
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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
> Fix For: 4.2.1
>
> Attachments: test-stdcxx-847.cpp
>
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Travis Vitek updated STDCXX-847:
--------------------------------
Fix Version/s: (was: 4.2.1)
4.2.2
Deferred to 4.2.2
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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
>
> Original Estimate: 4h
> Time Spent: 8h
> Remaining Estimate: 0h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Travis Vitek updated STDCXX-847:
--------------------------------
Attachment: (was: test-stdcxx-847.cpp)
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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.1
>
> Original Estimate: 4h
> Time Spent: 1h
> Remaining Estimate: 4h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12591778#action_12591778 ]
Travis Vitek commented on STDCXX-847:
-------------------------------------
I'm still working with IBM on this one.
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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
>
> Original Estimate: 4h
> Time Spent: 8h
> Remaining Estimate: 0h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12594679#action_12594679 ]
Martin Sebor commented on STDCXX-847:
-------------------------------------
That's one option. Another would be to store the data in svn and have the driver search the stored data first and then check the results against the actual data obtained from the system. This might mean a few trips back and forth on machines with some locales missing but in most cases it would avoid the overhead of going to the OS at all. But your solution is probably more reliable and might be less elaborate to implement.
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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
>
> Original Estimate: 4h
> Time Spent: 8h
> Remaining Estimate: 0h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12589383#action_12589383 ]
Travis Vitek commented on STDCXX-847:
-------------------------------------
Okay, here is a reduced testcase and the output.
{noformat}
$ cat t.cpp && xlC -g t.cpp -o ./t && ./t
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main (int, char**)
{
FILE* pipe = popen ("locale -a", "r");
if (!pipe)
return 1;
char buf [128];
while (fgets (buf, sizeof (buf), pipe)) {
const size_t len = strlen (buf);
buf [len ? len - 1 : 0] = '\0';
setlocale (LC_CTYPE, buf);
}
pclose (pipe);
if (!setlocale (LC_ALL, "EN_US"))
return 2;
const time_t t = time (0);
const tm *ptm = localtime (&t);
strftime (buf, sizeof buf, "%Y", ptm);
return 0;
}
Segmentation fault (core dumped)
$ dbx ./t
Type 'help' for help.
warning: The core file is not a fullcore. Some info may
not be available.
[using memory image in core]
reading symbolic information ...
Segmentation fault in __xisdigit at 0xd033cc08
0xd033cc08 (__xisdigit+0x1c) 80650134 lwz r3,0x134(r5)
(dbx) where
__xisdigit(0x28165874, 0x59) at 0xd033cc08
doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
__strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
strftime(??, ??, ??, ??) at 0xd0341c48
main( = 1, = 0x2ff22ac4), line 29 in "t.cpp"
(dbx) quit
{noformat}
So this looks to be a libc bug. Not sure what to do about it yet, but I'm pretty sure we can postpone finishing this until after 4.2.1.
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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.1
>
> Original Estimate: 4h
> Time Spent: 1h
> Remaining Estimate: 4h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12589633#action_12589633 ]
Martin Sebor commented on STDCXX-847:
-------------------------------------
Sorry, I misunderstood.
I'd try to narrow down the test case a bit more to see if there's a specific locale or sequence of locales that triggers the segfault. If so, then you might be able to avoid that locale or sequence.
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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.1
>
> Original Estimate: 4h
> Time Spent: 6h
> Remaining Estimate: 0h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12590623#action_12590623 ]
Travis Vitek commented on STDCXX-847:
-------------------------------------
I've spent some time trying to reduce this further and I've come up with nothing. I think the best thing to do right now is to just mark the failure as expected and revisit this when we get an update from IBM.
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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.1
>
> Original Estimate: 4h
> Time Spent: 6h
> Remaining Estimate: 0h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12594415#action_12594415 ]
Travis Vitek commented on STDCXX-847:
-------------------------------------
One possible workaround would be to write a utility to capture the locale data and write it out to a file in $(BUILDDIR). Then the {{rw_locales()}} and {{rw_query_locales()}} functions could just load up this file and read the data from there.
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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
>
> Original Estimate: 4h
> Time Spent: 8h
> Remaining Estimate: 0h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (STDCXX-847) [XLC++ 7,8,9] SEGV in
22.locale.time.get
Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12589608#action_12589608 ]
Travis Vitek commented on STDCXX-847:
-------------------------------------
Yeah, I know about that. I'm actually in the middle of doing that already. I was just saying I don't know what to do about it in the test or {{rw_locale_query()}} to avoid the crash.
> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
> Key: STDCXX-847
> URL: https://issues.apache.org/jira/browse/STDCXX-847
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Test Driver
> 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.1
>
> Original Estimate: 4h
> Time Spent: 6h
> Remaining Estimate: 0h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000 lwz r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1, = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
> 920 TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
> 921
> 922 // exercise time (time_get::get_time())
> 923 FUNCTION ("get_time");
> 924
> 925 int len;
> 926
> 927 {
> 928 // determine whether "%X" is equivalent to "%I:%M:%S %p"
> 929 // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
> 930 // Tru64 UNIX)
> 931 char buf [128];
> 932 const std::tm tmb = mktm (0, 0, 1);
> 933 len = std::strftime (buf, sizeof buf, "%X", &tmb);
> 934 }
> 935
> 936 const int hour = 11 == len ? 12 : 0;
> 937
> 938 TEST (T ( 0, 0, 0), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 939 TEST (T ( 0, 0, 1), "%X", len, "X", 0, 11 == len ? Good : Eof);
> 940 TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.