BIND 10 #2790: Lettuce tests timing & missed messages
BIND 10 Development
do-not-reply at isc.org
Tue Mar 12 18:09:50 UTC 2013
#2790: Lettuce tests timing & missed messages
-------------------------------------+-------------------------------------
Reporter: vorner | Owner:
Type: defect | Status: new
Priority: medium | Milestone:
Component: Unclassified | Sprint-20130319
Keywords: | Resolution:
Sensitive: 0 | CVSS Scoring:
Sub-Project: Core | Defect Severity: N/A
Estimated Difficulty: 9 | Feature Depending on Ticket:
Total Hours: 0 | Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Comment (by jinmei):
Replying to [comment:8 jelte]:
> update3: we have come to the conclusion that it is the threading that is
the culprit here; the interprocesssynclock is not thread-safe; I have
experimented with one of the branches of #2198, and that one appears to
fully solve the issue.
>
> I therefore propose to finish up #2198, and close this one.
If that (= we'll need to take care of both inter-process and
inter-thread synchronization issues regarding logging ourselves) is
our conclusion, to which I'm not necessarily opposed if log4cplus
itself can't solve it or we can find a better logging library that
meets our requirement, then I'd suggest considering outsourcing the
low level tasks as much as possible. A major concern of mine for
#2198 is that we are going to do too low-level things ourselves
(handling flock(2) ourselves and now going to deal with pthread locks
ourselves) while partially out-sourcing the feature (logging, in this
case).
I'd like to do either
1. fully control everything ourselves, not just for synchronization
issues but also the underlying logging itself, or
2. out-source as many things that are not of our main concern as
possible
Option 1 is probably not realistic especially at this stage, so, in
practice, what I'd suggest is to consider using a third party tool for
the synchronization problems. From a quick look
boost::interprocess::named_mutex can be a candidate; it can be a
unified synchronization mechanism for a multi-process and multi-thread
environment.
--
Ticket URL: <http://bind10.isc.org/ticket/2790#comment:9>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list