#8328 closed Bugs (wontfix)
chrono crashes visual studio 2012 regression tests
| Reported by: | Owned by: | viboes | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | chrono |
| Version: | Boost Development Trunk | Severity: | Problem |
| Keywords: | io_ex | Cc: |
Description
The following tests crash causing a popup debug window (which causes problems on the machine running regression tests) when running the visual studio regression tests on windows:
- io_ex1_d
- io_ex1_h
- v1_io_ex1_h
I will attach the stack traces and windows minidump files.
Attachments (3)
Change History (18)
by , 10 years ago
| Attachment: | io_ex1_d-callstack.txt added |
|---|
comment:2 by , 10 years ago
Replying to Thomas Kent <teeks99@…>:
I also have the minidump files (about 11MB each)
Sorry I don't use visual studio and I don't know how to make use of these files. Thanks anyway.
comment:3 by , 10 years ago
From the regression test I see that there is error for MSVC 11, but it works for MSVC 10. Unfortunately I have not installed MSVC 11.
Anyway as the trace show there is an error on the test Jamfile as even if the test is named v1_ it is using version 2. See the patch below.
Index: Jamfile.v2
===================================================================
--- Jamfile.v2 (revision 83520)
+++ Jamfile.v2 (working copy)
@@ -110,7 +110,7 @@
: <define>BOOST_CHRONO_HEADER_ONLY
<define>BOOST_ERROR_CODE_HEADER_ONLY
#<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
- <define>BOOST_CHRONO_VERSION=2
+ #<define>BOOST_CHRONO_VERSION=1
: v1_$(sources[1]:B)_h ]
;
}
Could you try this test forcing the version 2
Index: boost/chrono/config.hpp =================================================================== --- boost/chrono/config.hpp (revision 83520) +++ boost/chrono/config.hpp (working copy) @@ -14,7 +14,7 @@ #include <boost/config.hpp> #if !defined BOOST_CHRONO_VERSION -#define BOOST_CHRONO_VERSION 1 +#define BOOST_CHRONO_VERSION 2 #else #if BOOST_CHRONO_VERSION!=1 && BOOST_CHRONO_VERSION!=2 #error "BOOST_CHRONO_VERSION must be 1 or 2"
to see if there is something that makes io V2 incompatible with V1.
comment:4 by , 10 years ago
| Status: | new → assigned |
|---|
follow-up: 6 comment:5 by , 10 years ago
Those changes didn't seem to affect anything....assuming my bjam skills are correct. After making the changes (in boost-trunk\libs\chrono\test) I ran "b2 toolset=msvc-11.0 -a". Is that what I should have done?
comment:6 by , 10 years ago
Replying to Thomas Kent <teeks99@…>:
Those changes didn't seem to affect anything....assuming my bjam skills are correct. After making the changes (in boost-trunk\libs\chrono\test) I ran "b2 toolset=msvc-11.0 -a". Is that what I should have done?
Have you applied the change to boost/chrono/config.hpp?
comment:7 by , 10 years ago
Yes, before running the above bjam command I applied the change to config.hpp and to Jamfile.v2.
comment:8 by , 10 years ago
This seems a regression with the I/O library of msvc-11.0. Do you know if there are some bugs associated to msvc-11.0 that could be related?
For the time being I'm unable to debug it. I will appreciate if you could you try to do a deeper analysis and post it here.
comment:9 by , 9 years ago
| Severity: | Regression → Problem |
|---|
This is not a regression as Boost.Chrono can not anticipate the behavior of new compilers.
comment:10 by , 9 years ago
| Summary: | chrono crashes visual studio regression tests → chrono crashes visual studio 2012 regression tests |
|---|
comment:12 by , 9 years ago
| Resolution: | → wontfix |
|---|---|
| Status: | assigned → closed |
The test are passing with msvn 9, 10 and 12. I will not try to fix it.
comment:13 by , 9 years ago
If we're not going to fix this for msvc-11.0, can we just BOOST_FAIL() the tests for that compiler version, so that it doesn't keep crashing the whole regression test?
comment:15 by , 9 years ago
Does this patch avoids the crach
svn diff libs/chrono/example/io_ex1.cpp
Index: libs/chrono/example/io_ex1.cpp
===================================================================
--- libs/chrono/example/io_ex1.cpp (revision 86380)
+++ libs/chrono/example/io_ex1.cpp (working copy)
@@ -53,10 +53,13 @@
<< ClockTick(3) + nanoseconds(10) << '\n';
cout << "\nsystem_clock::now() = " << system_clock::now() << '\n';
+#if defined _MSC_VER && _MSC_VER == 1700
+#else
#if BOOST_CHRONO_VERSION==2
cout << "\nsystem_clock::now() = " << time_fmt(chrono::timezone::local) << system_clock::now() << '\n';
cout << "\nsystem_clock::now() = " << time_fmt(chrono::timezone::local,"%Y/%m/%d") << system_clock::now() << '\n';
#endif
+#endif
#ifdef BOOST_CHRONO_HAS_CLOCK_STEADY
cout << "steady_clock::now() = " << steady_clock::now() << '\n';
Committed revision [86384].

io_ex1_d callstack