[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: |
|
||||||||
| 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 |
| Comment by Ernie Hershey [ 06/May/15 ] |
|
Will |