master
designate-central, designate-worker, and designate-producer called server.init_host() in the parent process before service.serve() forked their cotyledon worker processes. init_host() guards itself with an _rpc_initialized flag to stay idempotent, but that flag survives the fork while the RPC listener thread it started does not. Every forked worker therefore inherited "already initialized" state and skipped starting its own listener, leaving only the parent process actually serving RPC requests regardless of the configured `workers` count. This also broke shutdown: on SIGTERM, cotyledon calls stop() on the worker processes, and rpc_server.stop() blocks waiting for a listener thread to notice the shutdown flag -- a thread that was never started in that process. Workers hung for the full 60s cotyledon graceful-shutdown timeout before being force-killed. Let each worker's own start() call init_host() lazily instead, as it already did before the eventlet-to-threading migration. Closes-Bug: #2160304 Generated-By: Claude Code 5 Sonnet Change-Id: I9d1e98976b0a10e80f3a7f4eb4cd79c41f558a80 Signed-off-by: Omer <oschwart@redhat.com>
OpenStack Designate
Designate is an OpenStack project, providing DNSaaS.
IRC: #openstack-dns @ oftc
Installation: https://docs.openstack.org/designate/latest/
API
To learn how to use Designate's API, consult the documentation available online at:
For more information on OpenStack APIs, SDKs and CLIs in general, refer to:
Development
Designate follows the OpenStack Gerrit Workflow
Setup
Setup a working environment:
git clone https://opendev.org/openstack/designate
cd designate
virtualenv .venv
. .venv/bin/activate
pip install -r requirements.txt -r test-requirements.txt
pip install -e .Building Docs
To build the documentation from the restructured text source, do the following:
Now point your browser at doc/build/html/index.html (the official documentation is published to docs.openstack.org by the maintainers.
Testing
Execute all unit tests
tox -e py3
Execute only backend tests
tox -e py3 -- unit.backend
Execute only a single test
tox -e py3 -- unit.backend.test_pdns4.PDNS4BackendTestCase.test_create_zone_success
Contributing
Install the git-review package to make life easier
pip install git-review
Branch, work, & submit:
# cut a new branch, tracking master
git checkout --track -b bug/id origin/master
# work work work
git add stuff
git commit
# rebase/squash to a single commit before submitting
git rebase -i
# submit
git-review
Other Information
- Free software: Apache license
- Documentation: https://docs.openstack.org/designate/latest/
- Release notes: https://docs.openstack.org/releasenotes/designate/
- Source: https://opendev.org/openstack/designate
- Bugs: https://bugs.launchpad.net/designate
- Blueprints: https://blueprints.launchpad.net/designate
Description
Languages
Python
93.4%
Shell
3.9%
PHP
2.5%
HTML
0.1%