Opened 10 years ago

Closed 9 years ago

Last modified 9 years ago

#8328 closed Bugs (wontfix)

chrono crashes visual studio 2012 regression tests

Reported by: Thomas Kent <teeks99@…> 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)

io_ex1_d-callstack.txt (2.3 KB ) - added by Thomas Kent <teeks99@…> 10 years ago.
io_ex1_d callstack
io_ex1_h-callstack.txt (2.3 KB ) - added by Thomas Kent <teeks99@…> 10 years ago.
io)ex1_h callstack
v1_io_ex1_h-callstack.txt (2.3 KB ) - added by Thomas Kent <teeks99@…> 10 years ago.
v1_io_ex1_h callstack

Download all attachments as: .zip

Change History (18)

by Thomas Kent <teeks99@…>, 10 years ago

Attachment: io_ex1_d-callstack.txt added

io_ex1_d callstack

by Thomas Kent <teeks99@…>, 10 years ago

Attachment: io_ex1_h-callstack.txt added

io)ex1_h callstack

by Thomas Kent <teeks99@…>, 10 years ago

Attachment: v1_io_ex1_h-callstack.txt added

v1_io_ex1_h callstack

in reply to:  1 comment:2 by viboes, 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 viboes, 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 viboes, 10 years ago

Status: newassigned

comment:5 by Thomas Kent <teeks99@…>, 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?

in reply to:  5 comment:6 by viboes, 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 Thomas Kent <teeks99@…>, 10 years ago

Yes, before running the above bjam command I applied the change to config.hpp and to Jamfile.v2.

comment:8 by viboes, 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.

Last edited 9 years ago by viboes (previous) (diff)

comment:9 by viboes, 9 years ago

Severity: RegressionProblem

This is not a regression as Boost.Chrono can not anticipate the behavior of new compilers.

comment:10 by viboes, 9 years ago

Summary: chrono crashes visual studio regression testschrono crashes visual studio 2012 regression tests

comment:11 by viboes, 9 years ago

Have you reported the issue to Microsoft?

comment:12 by viboes, 9 years ago

Resolution: wontfix
Status: assignedclosed

The test are passing with msvn 9, 10 and 12. I will not try to fix it.

comment:13 by Thomas Kent <teeks99@…>, 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:14 by viboes, 9 years ago

Ok. I will do.

comment:15 by viboes, 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].

Last edited 9 years ago by viboes (previous) (diff)
Note: See TracTickets for help on using tickets.