diff --git a/ironic/cmd/__init__.py b/ironic/cmd/__init__.py index 0c59a8121e..19feb64614 100644 --- a/ironic/cmd/__init__.py +++ b/ironic/cmd/__init__.py @@ -13,8 +13,10 @@ # License for the specific language governing permissions and limitations # under the License. -# NOTE(yuriyz): Do eventlet monkey patching here, not in ironic/__init__.py -# This allows API service runs under Apache. +# NOTE(yuriyz): Do eventlet monkey patching here, instead of in +# ironic/__init__.py. This allows the API service to run without monkey +# patching under Apache (which uses its own concurrency model). Mixing +# concurrency models can cause undefined behavior and potentially API timeouts. import os os.environ['EVENTLET_NO_GREENDNS'] = 'yes' diff --git a/releasenotes/notes/apache-multiple-workers-11d4ba52c89a13e3.yaml b/releasenotes/notes/apache-multiple-workers-11d4ba52c89a13e3.yaml index b67fb9a48c..860644cd81 100644 --- a/releasenotes/notes/apache-multiple-workers-11d4ba52c89a13e3.yaml +++ b/releasenotes/notes/apache-multiple-workers-11d4ba52c89a13e3.yaml @@ -1,3 +1,5 @@ --- fixes: - - Fix issue with multiple threads when ironic API service runs under Apache. + - Fixes an issue with requests to the ironic API service sometimes timing + out when running under Apache. This was due to mixing two concurrency + models (for handling multiple threads).