<p dir="auto">Some notes about configuration:</p>
<ul dir="auto">
<li>pip install celery -U (3.0.19 and deps, with python-dateutil 1.5.0)</li>
<li>CELERYD_TASK_TIME_LIMIT = 1800  # 30 minutes</li>
<li>CELERYD_MAX_TASKS_PER_CHILD = 100000</li>
</ul>
<p dir="auto">Here's some (hopefully) helpful diagnostic information:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="(Pdb) hp.heap().get_rp()
Reference Pattern by &lt;[dict of] class&gt;.
 0: _ --- [-] 425547 (__builtin__.cell | __builtin__.weakcallableproxy | __bu...
 1: a      [-] 34934 dict (no owner): 0x38e1ee0*32, 0x4fd8040*3, 0x4fd8160*16...
 2: aa ---- [-] 15515 dict of billiard.pool.ApplyResult: 0x3aabd10..., 0x4fae190
 3: a3       [-] 15515 billiard.pool.ApplyResult: 0x37fc0d0, 0x3a4c410...
 4: a4 ------ [-] 15490 tuple: 0x1240f50*1, 0x38b7850*1, 0x3a4c190*1...
 5: a5         [-] 15490 celery.utils.timer2.Entry: 0x38aed50, 0x38aedb8...
 6: a6 -------- [-] 15490 tuple: 0x38bc280*3, 0x38bc320*3, 0x3a540a0*3...
 7: a7           [+] 1 list: 0x38920e0*15491
 8: a5b ------- [-] 7 dict of billiard.pool.ApplyResult: 0xcfccd90..., 0xcfd3cd0
 9: a5ba         [+] 7 billiard.pool.ApplyResult: 0xcfccd90, 0xcfd3690...
&lt;Type e.g. '_.more' for more.&gt;
(Pdb) hp.heap().get_rp()
Reference Pattern by &lt;[dict of] class&gt;.
 0: _ --- [-] 796231 (__builtin__.cell | __builtin__.weakcallableproxy | __bu...
 1: a      [-] 66062 dict (no owner): 0x38e1ee0*40, 0x4fd8040*3, 0x4fd8160*16...
 2: aa ---- [-] 21741 dict of billiard.pool.ApplyResult: 0x3aabd10..., 0x4fae190
 3: a3       [-] 21741 billiard.pool.ApplyResult: 0x37fc0d0, 0x3a4c410...
 4: a4 ------ [-] 21709 tuple: 0x1240f50*1, 0x38b7850*1, 0x3a4c190*1...
 5: a5         [-] 21709 celery.utils.timer2.Entry: 0x38aed50, 0x38aedb8...
 6: a6 -------- [-] 21709 tuple: 0x38bc280*3, 0x38bc320*3, 0x3a540a0*3...
 7: a7           [+] 1 list: 0x38920e0*21709
 8: a5b ------- [-] 8 dict of billiard.pool.ApplyResult: 0x10789a50...
 9: a5ba         [+] 8 billiard.pool.ApplyResult: 0x10789a50, 0x10789b90...
&lt;Type e.g. '_.more' for more.&gt;
(Pdb) hp.heap().get_rp()
Reference Pattern by &lt;[dict of] class&gt;.
 0: _ --- [-] 2767466 (__builtin__.cell | __builtin__.weakcallableproxy | __b...
 1: a      [-] 213471 dict (no owner): 0x38e1ee0*10, 0x4fd8040*3...
 2: aa ---- [-] 51209 dict of billiard.pool.ApplyResult: 0x3aabd10..., 0x4fae190
 3: a3       [-] 51209 billiard.pool.ApplyResult: 0x37fc0d0, 0x3a4c410...
 4: a4 ------ [-] 51207 tuple: 0x1240f50*1, 0x38b7850*1, 0x3a4c190*1...
 5: a5         [-] 51207 celery.utils.timer2.Entry: 0x38aed50, 0x38aedb8...
 6: a6 -------- [-] 51207 tuple: 0x38bc280*3, 0x38bc320*3, 0x3a540a0*3...
 7: a7           [+] 1 list: 0x38920e0*51212
 8: a5b ------- [-] 8 dict of billiard.pool.ApplyResult: 0x21c8bcd0...
 9: a5ba         [+] 8 billiard.pool.ApplyResult: 0x21c8bcd0, 0x21d46150...
&lt;Type e.g. '_.more' for more.&gt;
(Pdb) heap = hp.heap()
(Pdb) heap[0]
Partition of a set of 367501 objects. Total size = 159517240 bytes.
 Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
     0 367501 100 159517240 100 159517240 100 dict (no owner)
(Pdb) heap[0].byrcs
Partition of a set of 367501 objects. Total size = 159517240 bytes.
 Index  Count   %     Size   % Cumulative  % Referrers by Kind (class / dict of class)
     0  45910  12 48113680  30  48113680  30 celery.worker.job.Request
     1  91820  25 47047712  29  95161392  60 celery.worker.job.Request, dict (no owner)
     2 137730  37 38564400  24 133725792  84 kombu.transport.librabbitmq.Message
     3  45942  13 12863760   8 146589552  92 celery.utils.timer2.Entry
     4  45911  12 12855080   8 159444632 100 dict (no owner)
     5    138   0    39408   0 159484040 100 dict of guppy.etc.Glue.Owner
     6     42   0    24048   0 159508088 100 dict of guppy.etc.Glue.Share
     7      3   0     6984   0 159515072 100 dict of guppy.heapy.UniSet.Summary_str
     8      1   0     1048   0 159516120 100 __builtin__.cell
     9      2   0      560   0 159516680 100 &lt;Nothing&gt;
&lt;2 more rows. Type e.g. '_.more' to view.&gt;"><pre class="notranslate"><code class="notranslate">(Pdb) hp.heap().get_rp()
Reference Pattern by &lt;[dict of] class&gt;.
 0: _ --- [-] 425547 (__builtin__.cell | __builtin__.weakcallableproxy | __bu...
 1: a      [-] 34934 dict (no owner): 0x38e1ee0*32, 0x4fd8040*3, 0x4fd8160*16...
 2: aa ---- [-] 15515 dict of billiard.pool.ApplyResult: 0x3aabd10..., 0x4fae190
 3: a3       [-] 15515 billiard.pool.ApplyResult: 0x37fc0d0, 0x3a4c410...
 4: a4 ------ [-] 15490 tuple: 0x1240f50*1, 0x38b7850*1, 0x3a4c190*1...
 5: a5         [-] 15490 celery.utils.timer2.Entry: 0x38aed50, 0x38aedb8...
 6: a6 -------- [-] 15490 tuple: 0x38bc280*3, 0x38bc320*3, 0x3a540a0*3...
 7: a7           [+] 1 list: 0x38920e0*15491
 8: a5b ------- [-] 7 dict of billiard.pool.ApplyResult: 0xcfccd90..., 0xcfd3cd0
 9: a5ba         [+] 7 billiard.pool.ApplyResult: 0xcfccd90, 0xcfd3690...
&lt;Type e.g. '_.more' for more.&gt;
(Pdb) hp.heap().get_rp()
Reference Pattern by &lt;[dict of] class&gt;.
 0: _ --- [-] 796231 (__builtin__.cell | __builtin__.weakcallableproxy | __bu...
 1: a      [-] 66062 dict (no owner): 0x38e1ee0*40, 0x4fd8040*3, 0x4fd8160*16...
 2: aa ---- [-] 21741 dict of billiard.pool.ApplyResult: 0x3aabd10..., 0x4fae190
 3: a3       [-] 21741 billiard.pool.ApplyResult: 0x37fc0d0, 0x3a4c410...
 4: a4 ------ [-] 21709 tuple: 0x1240f50*1, 0x38b7850*1, 0x3a4c190*1...
 5: a5         [-] 21709 celery.utils.timer2.Entry: 0x38aed50, 0x38aedb8...
 6: a6 -------- [-] 21709 tuple: 0x38bc280*3, 0x38bc320*3, 0x3a540a0*3...
 7: a7           [+] 1 list: 0x38920e0*21709
 8: a5b ------- [-] 8 dict of billiard.pool.ApplyResult: 0x10789a50...
 9: a5ba         [+] 8 billiard.pool.ApplyResult: 0x10789a50, 0x10789b90...
&lt;Type e.g. '_.more' for more.&gt;
(Pdb) hp.heap().get_rp()
Reference Pattern by &lt;[dict of] class&gt;.
 0: _ --- [-] 2767466 (__builtin__.cell | __builtin__.weakcallableproxy | __b...
 1: a      [-] 213471 dict (no owner): 0x38e1ee0*10, 0x4fd8040*3...
 2: aa ---- [-] 51209 dict of billiard.pool.ApplyResult: 0x3aabd10..., 0x4fae190
 3: a3       [-] 51209 billiard.pool.ApplyResult: 0x37fc0d0, 0x3a4c410...
 4: a4 ------ [-] 51207 tuple: 0x1240f50*1, 0x38b7850*1, 0x3a4c190*1...
 5: a5         [-] 51207 celery.utils.timer2.Entry: 0x38aed50, 0x38aedb8...
 6: a6 -------- [-] 51207 tuple: 0x38bc280*3, 0x38bc320*3, 0x3a540a0*3...
 7: a7           [+] 1 list: 0x38920e0*51212
 8: a5b ------- [-] 8 dict of billiard.pool.ApplyResult: 0x21c8bcd0...
 9: a5ba         [+] 8 billiard.pool.ApplyResult: 0x21c8bcd0, 0x21d46150...
&lt;Type e.g. '_.more' for more.&gt;
(Pdb) heap = hp.heap()
(Pdb) heap[0]
Partition of a set of 367501 objects. Total size = 159517240 bytes.
 Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
     0 367501 100 159517240 100 159517240 100 dict (no owner)
(Pdb) heap[0].byrcs
Partition of a set of 367501 objects. Total size = 159517240 bytes.
 Index  Count   %     Size   % Cumulative  % Referrers by Kind (class / dict of class)
     0  45910  12 48113680  30  48113680  30 celery.worker.job.Request
     1  91820  25 47047712  29  95161392  60 celery.worker.job.Request, dict (no owner)
     2 137730  37 38564400  24 133725792  84 kombu.transport.librabbitmq.Message
     3  45942  13 12863760   8 146589552  92 celery.utils.timer2.Entry
     4  45911  12 12855080   8 159444632 100 dict (no owner)
     5    138   0    39408   0 159484040 100 dict of guppy.etc.Glue.Owner
     6     42   0    24048   0 159508088 100 dict of guppy.etc.Glue.Share
     7      3   0     6984   0 159515072 100 dict of guppy.heapy.UniSet.Summary_str
     8      1   0     1048   0 159516120 100 __builtin__.cell
     9      2   0      560   0 159516680 100 &lt;Nothing&gt;
&lt;2 more rows. Type e.g. '_.more' to view.&gt;
</code></pre></div>
<p dir="auto">the dependency on future-0.18.2 adds many packages that squat on py3 stdlib names eg:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/_dummy_thread/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/_markupbase/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/_thread/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/builtins/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/copyreg/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/future-0.18.2.dist-info/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/future/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/html/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/http/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/libfuturize/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/libpasteurize/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/past/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/queue/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/reprlib/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/socketserver/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/tkinter/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/winreg/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/xmlrpc/*"><pre class="notranslate"><code class="notranslate">    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/_dummy_thread/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/_markupbase/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/_thread/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/builtins/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/copyreg/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/future-0.18.2.dist-info/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/future/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/html/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/http/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/libfuturize/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/libpasteurize/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/past/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/queue/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/reprlib/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/socketserver/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/tkinter/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/winreg/*
    /home/graingert/.virtualenvs/celery2/lib/python2.7/site-packages/xmlrpc/*
</code></pre></div>
<p dir="auto">this breaks packages that rely on feature detection of these modules.</p>
<p dir="auto">I propose replacing future with six because:</p>
<ul dir="auto">
<li>future does not provide a wheel, six has a wheel</li>
<li>future last release Oct 31, 2019, six released Oct 31, 2019</li>
<li>future is 829.2 kB, six is (11.0 kB)</li>
<li>celery already depends on six, via kombu and importlib-metadata, and so swapping out future with six would save 829.2 kB, rather than just 818.2 kB</li>
</ul>

<h1 dir="auto">Checklist</h1>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have verified that the issue exists against the <code class="notranslate">master</code> branch of Celery.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> This has already been asked to the <a href="https://groups.google.com/forum/#!forum/celery-users" rel="nofollow">discussion group</a> first.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have read the relevant section in the<br>
<a href="http://docs.celeryproject.org/en/latest/contributing.html#other-bugs" rel="nofollow">contribution guide</a><br>
on reporting bugs.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/issues?q=is%3Aissue+label%3A%22Issue+Type%3A+Bug+Report%22+-label%3A%22Category%3A+Documentation%22">issues list</a><br>
for similar or identical bug reports.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have checked the <a href="https://github.com/celery/celery/pulls?q=is%3Apr+label%3A%22PR+Type%3A+Bugfix%22+-label%3A%22Category%3A+Documentation%22">pull requests list</a><br>
for existing proposed fixes.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have checked the <a href="https://github.com/celery/celery/commits/master">commit log</a><br>
to find out if the bug was already fixed in the master branch.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have included all related issues and possible duplicate issues<br>
in this issue (If there are none, check this box anyway).</li>
</ul>
<h2 dir="auto">Mandatory Debugging Information</h2>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have included the output of <code class="notranslate">celery -A proj report</code> in the issue.<br>
(if you are not able to do this, then at least specify the Celery<br>
version affected).</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have verified that the issue exists against the <code class="notranslate">master</code> branch of Celery.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have included the contents of <code class="notranslate">pip freeze</code> in the issue.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have included all the versions of all the external dependencies required<br>
to reproduce this bug.</li>
</ul>
<h2 dir="auto">Optional Debugging Information</h2>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one Python version<br>
and/or implementation.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one message broker and/or<br>
result backend.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one version of the message<br>
broker and/or result backend.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one operating system.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one workers pool.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue with autoscaling, retries,<br>
ETA/Countdown &amp; rate limits disabled.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue after downgrading<br>
and/or upgrading Celery and its dependencies.</li>
</ul>
<h2 dir="auto">Related Issues and Possible Duplicates</h2>

<h4 dir="auto">Related Issues</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h4 dir="auto">Possible Duplicates</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h2 dir="auto">Environment &amp; Settings</h2>

<p dir="auto"><strong>Celery version</strong>:</p>

<details>
<summary><b><code class="notranslate">celery report</code> Output:</b></summary>
<p dir="auto">
</p><div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=""><pre class="notranslate"><code class="notranslate"></code></pre></div>
<p dir="auto"></p>
</details>
<h1 dir="auto">Steps to Reproduce</h1>
<h2 dir="auto">Required Dependencies</h2>

<ul dir="auto">
<li><strong>Minimal Python Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Celery Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Kombu Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Broker Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Result Backend Version</strong>: N/A or Unknown</li>
<li><strong>Minimal OS and/or Kernel Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Broker Client Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Result Backend Client Version</strong>: N/A or Unknown</li>
</ul>
<h3 dir="auto">Python Packages</h3>

<details>
<summary><b><code class="notranslate">pip freeze</code> Output:</b></summary>
<p dir="auto">
</p><div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=""><pre class="notranslate"><code class="notranslate"></code></pre></div>
<p dir="auto"></p>
</details>
<h3 dir="auto">Other Dependencies</h3>

<details>
<p dir="auto">
N/A
</p>
</details>
<h2 dir="auto">Minimally Reproducible Test Case</h2>

<details>
<p dir="auto">
</p><div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content=""><pre class="notranslate"></pre></div>
<p dir="auto"></p>
</details>
<h1 dir="auto">Expected Behavior</h1>

<h1 dir="auto">Actual Behavior</h1>