Details
Description
ISSUE SUMMARY
On Windows 7 and 8, mongoexport crashes when documents to be exported contain a timestamp greater than 3001-01-01T07:59:59.999Z.
USER IMPACT
Documents containing these high timestamps can't be exported using mongoexport.
WORKAROUNDS
Use mongodump to dump collections with documents containing these large timestamps.
AFFECTED VERSIONS
MongoDB production releases 2.6.0 and 2.6.1 are affected by this issue.
FIX VERSION
The fix is included in the 2.6.2 production release.
RESOLUTION DETAILS
Do not attempt to convert these high timestamps to an ISO String, but export them as {"$numberLong": "<milliseconds>"} instead.
Original description
If a document contains a timestamp greater than 3001-01-01T07:59:59.999Z then mongoexport will crash attempting to export it when run on Windows. Known to occur on Windows 7 & 8.
The crash dump produced by running a debug build (and following the steps to reproduce) is as follows:
>mongoexport.exe -d test -c test
|
connected to: 127.0.0.1
|
2014-04-28T17:01:01.367+1000 *** C runtime error: f:\dd\vctools\crt_bld\self_64_amd64\crt\src\wcsftime.c(589) : Assertion failed: ( ( timeptr->tm_mon >=0 ) && ( timeptr->tm_mon <= 11 ) ), terminating
|
2014-04-28T17:01:01.394+1000 Fatal Assertion 17006
|
2014-04-28T17:01:01.851+1000 mongoexport.exe ...\src\mongo\util\stacktrace.cpp(172) mongo::printStackTrace+0x5b
|
2014-04-28T17:01:01.860+1000 mongoexport.exe ...\src\mongo\util\log.cpp(127) mongo::logContext+0xd8
|
2014-04-28T17:01:01.873+1000 mongoexport.exe ...\src\mongo\util\assert_util.cpp(139) mongo::fassertFailed+0x94
|
2014-04-28T17:01:01.885+1000 mongoexport.exe ...\src\mongo\util\stacktrace.cpp(288) mongo::crtDebugCallback+0x107
|
2014-04-28T17:01:01.898+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\dbgrptt.c(609) _VCrtDbgReportW+0x7c1
|
2014-04-28T17:01:01.914+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\dbgrpt.c(263) _CrtDbgReportWV+0x50
|
2014-04-28T17:01:01.930+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\dbgrpt.c(279) _CrtDbgReportW+0x60
|
2014-04-28T17:01:01.947+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\wcsftime.c(589) _W_expandtime+0xaa9
|
2014-04-28T17:01:01.968+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\wcsftime.c(323) _Wcsftime_l+0x48b
|
2014-04-28T17:01:01.992+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\strftime.c(285) _Strftime_l+0x4be
|
2014-04-28T17:01:02.013+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\strftime.c(190) strftime+0x43
|
2014-04-28T17:01:02.033+1000 mongoexport.exe ...\src\mongo\util\time_support.cpp(125) mongo::`anonymous namespace'::_dateToISOString+0x82
|
2014-04-28T17:01:02.059+1000 mongoexport.exe ...\src\mongo\util\time_support.cpp(191) mongo::dateToISOStringLocal+0x5a
|
2014-04-28T17:01:02.085+1000 mongoexport.exe ...\src\mongo\db\jsobj.cpp(218) mongo::BSONElement::jsonString+0x12ed
|
2014-04-28T17:01:02.105+1000 mongoexport.exe ...\src\mongo\db\jsobj.cpp(479) mongo::BSONObj::jsonString+0x16e
|
2014-04-28T17:01:02.126+1000 mongoexport.exe ...\src\mongo\tools\export.cpp(224) Export::run+0xbb7
|
2014-04-28T17:01:02.148+1000 mongoexport.exe ...\src\mongo\tools\tool.cpp(143) mongo::Tool::main+0x4a7
|
2014-04-28T17:01:02.170+1000 mongoexport.exe ...\src\mongo\tools\tool.cpp(387) wmain+0xec
|
2014-04-28T17:01:02.188+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crt0.c(241) __tmainCRTStartup+0xec
|
2014-04-28T17:01:02.211+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crt0.c(164) wmainCRTStartup+0xe
|
2014-04-28T17:01:02.232+1000
|
2014-04-28T17:01:02.239+1000 *** unhandled exception 0x80000003 at 0x000007FC4712478A, terminating
|
2014-04-28T17:01:02.259+1000 *** stack trace for unhandled exception:
|
2014-04-28T17:01:02.709+1000 KERNELBASE.dll DebugBreak+0x2
|
2014-04-28T17:01:02.722+1000 mongoexport.exe ...\src\mongo\util\debug_util.cpp(48) mongo::mongo_breakpoint+0x22
|
2014-04-28T17:01:02.738+1000 mongoexport.exe ...\src\mongo\util\debug_util.h(65) mongo::breakpoint+0x25
|
2014-04-28T17:01:02.756+1000 mongoexport.exe ...\src\mongo\util\assert_util.cpp(140) mongo::fassertFailed+0x99
|
2014-04-28T17:01:02.775+1000 mongoexport.exe ...\src\mongo\util\stacktrace.cpp(288) mongo::crtDebugCallback+0x107
|
2014-04-28T17:01:02.797+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\dbgrptt.c(609) _VCrtDbgReportW+0x7c1
|
2014-04-28T17:01:02.815+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\dbgrpt.c(263) _CrtDbgReportWV+0x50
|
2014-04-28T17:01:02.835+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\dbgrpt.c(279) _CrtDbgReportW+0x60
|
2014-04-28T17:01:02.857+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\wcsftime.c(589) _W_expandtime+0xaa9
|
2014-04-28T17:01:02.879+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\wcsftime.c(323) _Wcsftime_l+0x48b
|
2014-04-28T17:01:02.901+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\strftime.c(285) _Strftime_l+0x4be
|
2014-04-28T17:01:02.921+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\strftime.c(190) strftime+0x43
|
2014-04-28T17:01:02.941+1000 mongoexport.exe ...\src\mongo\util\time_support.cpp(125) mongo::`anonymous namespace'::_dateToISOString+0x82
|
2014-04-28T17:01:02.958+1000 mongoexport.exe ...\src\mongo\util\time_support.cpp(191) mongo::dateToISOStringLocal+0x5a
|
2014-04-28T17:01:02.971+1000 mongoexport.exe ...\src\mongo\db\jsobj.cpp(218) mongo::BSONElement::jsonString+0x12ed
|
2014-04-28T17:01:02.986+1000 mongoexport.exe ...\src\mongo\db\jsobj.cpp(479) mongo::BSONObj::jsonString+0x16e
|
2014-04-28T17:01:03.002+1000 mongoexport.exe ...\src\mongo\tools\export.cpp(224) Export::run+0xbb7
|
2014-04-28T17:01:03.016+1000 mongoexport.exe ...\src\mongo\tools\tool.cpp(143) mongo::Tool::main+0x4a7
|
2014-04-28T17:01:03.029+1000 mongoexport.exe ...\src\mongo\tools\tool.cpp(387) wmain+0xec
|
2014-04-28T17:01:03.044+1000 mongoexport.exe f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crt0.c(241) __tmainCRTStartup+0xec
|
2014-04-28T17:01:03.068+1000
|
2014-04-28T17:01:03.074+1000 writing minidump diagnostic file C:\Users\Xarium\Documents\GitHub\mongo\mongoexport.2014-04-28T07-01-03.mdmp
|
2014-04-28T17:01:03.194+1000 *** immediate exit due to unhandled exception
|