[SERVER-10307] Break unlisted circular dependency between logger and foundation libraries. Created: 23/Jul/13  Updated: 22/Jul/15  Resolved: 22/Jul/15

Status: Closed
Project: Core Server
Component/s: Build, Logging
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Andy Schwerin Assignee: Unassigned
Resolution: Done Votes: 0
Labels: build-needs-definition, build-planning
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-11637 Make libraries composable Closed
Backwards Compatibility: Fully Compatible
Sprint: Platform 7 08/10/15
Participants:

 Description   

The "mongo/foundation" library depends on "mongo/logger/logger", but "mongo/logger/logger" has an unlisted circular dependency back to "mongo/foundation" for time_support.cpp. mongo/util/time_support.cpp in turn depends on mongo/util/assert_util.cpp, which depends on various parts of the logger. To break the dependency chain, split out of time_support.cpp the basic functions for reading the current time and formatting times and dates. Then, remove the fasserts() from those functions, which should provably never fire. Put those functions into a basic time library in "base". Also, there is a verify() in ramlog.cpp, which we should be able to eliminate by making RamLog::toHTML a free function implemented in the webserver library.



 Comments   
Comment by Andrew Morrow (Inactive) [ 22/Jul/15 ]

This was fixed as a side effect of SERVER-9666

Comment by Ernie Hershey [ 06/May/15 ]

Will SERVER-9666 cover this?

Generated at Thu Feb 08 03:22:49 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.