From fe764c21145af1eac3f58600ef619f803759171a Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Wed, 16 Jul 2014 10:56:08 -0400 Subject: [PATCH] Fix an issue with the callback receiver that prevents preserving database connections across multiprocessing processes during process recycling --- awx/main/management/commands/run_callback_receiver.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/awx/main/management/commands/run_callback_receiver.py b/awx/main/management/commands/run_callback_receiver.py index 4d36bd0521..10c3a5a351 100644 --- a/awx/main/management/commands/run_callback_receiver.py +++ b/awx/main/management/commands/run_callback_receiver.py @@ -20,6 +20,7 @@ from django.contrib.auth.models import User from django.utils.dateparse import parse_datetime from django.utils.timezone import now, is_aware, make_aware from django.utils.tzinfo import FixedOffset +from django.db import connection # AWX from awx.main.models import * @@ -56,7 +57,7 @@ class CallbackReceiver(object): worker_queues = [] if use_workers: - + connection.close() for idx in range(WORKERS): queue_port_actual = queue_port + "-%s" % str(idx) queue_context = zmq.Context() @@ -121,6 +122,7 @@ class CallbackReceiver(object): queue_actual[0] = 0 print("Recycling worker process") queue_actual[2].join() + connection.close() w = Process(target=self.callback_worker, args=(queue_port + "-%s" % str(total_messages % WORKERS),)) w.daemon = True w.start()