<p dir="auto">This happened after I introduced retry() to one of my tasks.</p>
<p dir="auto">Full trace:</p>
<p dir="auto">[2011-05-03 13:12:04,922: WARNING/MainProcess] File "/srv/geri/repository/geri/manage.py", line 11, in <br>
[2011-05-03 13:12:04,923: WARNING/MainProcess] execute_manager(settings)<br>
[2011-05-03 13:12:04,924: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/django/core/management/<strong>init</strong>.py", line 438, in execute_manager<br>
[2011-05-03 13:12:04,924: WARNING/MainProcess] utility.execute()<br>
[2011-05-03 13:12:04,924: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/django/core/management/<strong>init</strong>.py", line 379, in execute<br>
[2011-05-03 13:12:04,924: WARNING/MainProcess] self.fetch_command(subcommand).run_from_argv(self.argv)<br>
[2011-05-03 13:12:04,924: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/django/core/management/base.py", line 191, in run_from_argv<br>
[2011-05-03 13:12:04,925: WARNING/MainProcess] self.execute(_args, *_options.<strong>dict</strong>)<br>
[2011-05-03 13:12:04,925: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/django/core/management/base.py", line 220, in execute<br>
[2011-05-03 13:12:04,925: WARNING/MainProcess] output = self.handle(_args, *_options)<br>
[2011-05-03 13:12:04,926: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/djcelery/management/commands/celeryd.py", line 21, in handle<br>
[2011-05-03 13:12:04,926: WARNING/MainProcess] worker.run(_args, *_options)<br>
[2011-05-03 13:12:04,926: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/celery/bin/celeryd.py", line 95, in run<br>
[2011-05-03 13:12:04,926: WARNING/MainProcess] return self.app.Worker(**kwargs).run()<br>
[2011-05-03 13:12:04,927: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/celery/apps/worker.py", line 135, in run<br>
[2011-05-03 13:12:04,927: WARNING/MainProcess] self.run_worker()<br>
[2011-05-03 13:12:04,927: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/celery/apps/worker.py", line 235, in run_worker<br>
[2011-05-03 13:12:04,928: WARNING/MainProcess] worker.start()<br>
[2011-05-03 13:12:04,928: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/celery/worker/<strong>init</strong>.py", line 247, in start<br>
[2011-05-03 13:12:04,928: WARNING/MainProcess] blocking(component.start)<br>
[2011-05-03 13:12:04,932: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/kombu/syn.py", line 14, in blocking<br>
[2011-05-03 13:12:04,940: WARNING/MainProcess] return *<em>sync_current(fun, _args, <em>_kwargs)<br>
[2011-05-03 13:12:04,941: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/kombu/syn.py", line 30, in __blocking</em></em><br>
[2011-05-03 13:12:04,941: WARNING/MainProcess] return fun(_args, *_kwargs)<br>
[2011-05-03 13:12:04,941: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/celery/worker/consumer.py", line 264, in start<br>
[2011-05-03 13:12:04,942: WARNING/MainProcess] self.consume_messages()<br>
[2011-05-03 13:12:04,942: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/celery/worker/consumer.py", line 281, in consume_messages<br>
[2011-05-03 13:12:04,942: WARNING/MainProcess] self.connection.drain_events()<br>
[2011-05-03 13:12:04,943: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/kombu/connection.py", line 139, in drain_events<br>
[2011-05-03 13:12:04,943: WARNING/MainProcess] return self.transport.drain_events(self.connection, **kwargs)<br>
[2011-05-03 13:12:04,943: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/kombu/transport/pyamqplib.py", line 223, in drain_events<br>
[2011-05-03 13:12:04,943: WARNING/MainProcess] return connection.drain_events(**kwargs)<br>
[2011-05-03 13:12:04,944: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/kombu/transport/pyamqplib.py", line 56, in drain_events<br>
[2011-05-03 13:12:04,944: WARNING/MainProcess] return self.wait_multi(self.channels.values(), timeout=timeout)<br>
[2011-05-03 13:12:04,944: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/kombu/transport/pyamqplib.py", line 83, in wait_multi<br>
[2011-05-03 13:12:04,945: WARNING/MainProcess] return amqp_method(channel, args, content)<br>
[2011-05-03 13:12:04,945: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/amqplib/client_0_8/channel.py", line 1973, in _basic_deliver<br>
[2011-05-03 13:12:04,946: WARNING/MainProcess] func(msg)<br>
[2011-05-03 13:12:04,946: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/kombu/messaging.py", line 408, in _receive_callback<br>
[2011-05-03 13:12:04,946: WARNING/MainProcess] self.receive(decoded, message)<br>
[2011-05-03 13:12:04,964: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/kombu/messaging.py", line 375, in receive<br>
[2011-05-03 13:12:04,966: WARNING/MainProcess] callback(body, message)<br>
[2011-05-03 13:12:04,966: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/celery/worker/consumer.py", line 353, in receive_message<br>
[2011-05-03 13:12:04,966: WARNING/MainProcess] eventer=self.event_dispatcher)<br>
[2011-05-03 13:12:04,967: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/celery/worker/job.py", line 294, in from_message<br>
[2011-05-03 13:12:04,967: WARNING/MainProcess] eta=maybe_iso8601(body.get("eta")),<br>
[2011-05-03 13:12:04,967: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/celery/utils/timeutils.py", line 133, in maybe_iso8601<br>
[2011-05-03 13:12:04,967: WARNING/MainProcess] return parse_iso8601(dt)<br>
[2011-05-03 13:12:04,968: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/dateutil/parser.py", line 698, in parse<br>
[2011-05-03 13:12:04,968: WARNING/MainProcess] return DEFAULTPARSER.parse(timestr, *_kwargs)<br>
[2011-05-03 13:12:04,969: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/dateutil/parser.py", line 302, in parse<br>
[2011-05-03 13:12:04,969: WARNING/MainProcess] res = self._parse(timestr, *_kwargs)<br>
[2011-05-03 13:12:04,969: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/dateutil/parser.py", line 350, in _parse<br>
[2011-05-03 13:12:04,970: WARNING/MainProcess] l = _timelex.split(timestr)<br>
[2011-05-03 13:12:04,970: WARNING/MainProcess] File "/srv/geri/env/lib/python2.6/site-packages/dateutil/parser.py", line 144, in split<br>
[2011-05-03 13:12:04,971: WARNING/MainProcess] return list(cls(s))<br>
[2011-05-03 13:12:04,971: WARNING/MainProcess] TypeError<br>
[2011-05-03 13:12:04,971: WARNING/MainProcess] :<br>
[2011-05-03 13:12:04,971: WARNING/MainProcess] iter() returned non-iterator of type '_timelex'<br>
[2011-05-03 13:12:04,972: INFO/MainProcess] process shutting down</p>
<p dir="auto">This happens probably because task logger by default is initialized with name 'celery.task.default' and worker logger with name 'celery'. Thus task logger becomes the child of the worker logger.<br>
Python logging system by default propagates messages from child logger to parent.<br>
To change this behavior <code class="notranslate">propagate</code> property of <code class="notranslate">Logger</code> object should be set to <code class="notranslate">False</code> or may be it would be better to attach handler only to the worker's logger.</p>