BIND 10 #1698: log initialization causes real fiasco for MacOS 10.7
BIND 10 Development
do-not-reply at isc.org
Mon Mar 5 19:24:43 UTC 2012
#1698: log initialization causes real fiasco for MacOS 10.7
-------------------------------------+-------------------------------------
Reporter: | Owner:
jinmei | Status: new
Type: | Milestone: Next-Sprint-
defect | Proposed
Priority: major | Resolution:
Component: | Sensitive: 0
logging | Sub-Project: Core
Keywords: | Estimated Difficulty: 0
Defect Severity: N/A | Total Hours: 0
Feature Depending on Ticket: |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Comment (by jinmei):
Replying to [comment:1 stephen]:
> Does replacing:
> {{{
> std::string name_;
> }}}
> with something like
> {{{
> char name_[16];
> }}}
> ... and copyying the name with which the logger is instantiated to name_
in the constructor solve the problem?
Not tested this time, but probably not because MessageInitializer
(also statically initialized) involves more complicated things that
require memory allocation:
{{{#!c++
MessageDictionary& global = MessageDictionary::globalDictionary();
// load() also needs a lot of memory allocation
std::vector<std::string> repeats = global.load(values);
// Append the IDs in the list just loaded (the "repeats") to the
global list
// of duplicate IDs.
if (!repeats.empty()) {
std::vector<std::string>& duplicates = getDuplicates();
duplicates.insert(duplicates.end(), repeats.begin(),
repeats.end());
}
}}}
In fact, when I first hit this I tried to just use a proxy for the
"logger" object, and then find it crashed in the MessageInitializer
initializer.
--
Ticket URL: <http://bind10.isc.org/ticket/1698#comment:2>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list