BIND 10 #326: Race condition in first startup (when database file does not exist)
BIND 10 Development
do-not-reply at isc.org
Mon Aug 22 15:28:16 UTC 2011
#326: Race condition in first startup (when database file does not exist)
-------------------------------------+-------------------------------------
Reporter: jelte | Owner: UnAssigned
Type: | Status: reviewing
defect | Milestone:
Priority: major | Sprint-20110830
Component: data | Resolution:
source | Sensitive: 0
Keywords: | Sub-Project: DNS
Defect Severity: | Estimated Difficulty: 8
Medium | Total Hours: 0
Feature Depending on Ticket: |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Changes (by jelte):
* owner: jelte => UnAssigned
* status: assigned => reviewing
Comment:
Did a bit of refactoring the initialization as i was fixing this;
What it does now is that it checks the schema version in the database (in
a normal connection). If the result indicates the table does not appear to
exist, it tries to get an exclusive lock. Once it has that, it checks the
version *again*. If it has not been created by now, it does so now.
oh and the c++ version now actually checks the schema version :)
I've implemented this algorithm in the python datasrc module, and both the
old and the new c++ code (those two are quite similar, the setup code got
almost completely copied, save for some var names). I only added tests for
the new code, as i suspect we'll drop the old implementation soonish.
--
Ticket URL: <http://bind10.isc.org/ticket/326#comment:10>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list