<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Baserow 2.3.1 spawns 29 celery workers → daily OOM (worker env var ignored)]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">since updating to package 1.33.x (Baserow 2.3.1) my instance restarts several times a day due to OOM, even after raising the memory limit from 4 GB to 6 GB.</p>
<h2>Diagnosis</h2>
<p dir="auto"><code>ps aux --sort=-rss</code> inside the container shows <strong>29 celery processes</strong>: three queue masters (<code>celery</code>, <code>export</code>, and the new <code>automation_workflow</code> queue introduced with 2.3) each forking ~8 children (= CPU core count) at ~225 MB RSS each:</p>
<pre><code>cloudron  32  ... celery -A baserow worker -l INFO -Q automation_workflow
cloudron  36  ... celery -A baserow worker -l INFO -Q export
cloudron  39  ... celery -A baserow worker -l INFO -Q celery
(+ ~8 forked children per queue)
</code></pre>
<p dir="auto">Note the workers are started <strong>without any <code>--concurrency</code> parameter</strong>, so celery defaults to one fork per CPU core, per queue.</p>
<p dir="auto">I have <code>export BASEROW_AMOUNT_OF_WORKERS=1</code> set in <code>/app/data/env.sh</code> (sourced correctly at line 15 of <a href="http://start.sh" target="_blank" rel="noopener noreferrer nofollow ugc">start.sh</a>), but it has no effect:</p>
<pre><code>grep -rn "AMOUNT_OF_WORKERS\|concurrency" /app/pkg/start.sh
# (no output)
</code></pre>
<p dir="auto">This variable is only consumed by the upstream Baserow image's entrypoint (which translates it into <code>--concurrency</code>). The Cloudron package's <a href="http://start.sh" target="_blank" rel="noopener noreferrer nofollow ugc">start.sh</a> launches the workers directly via supervisord without that translation, so the variable is silently ignored. With three full fork pools this makes 4 GB (previously fine) insufficient, and the new third queue explains why it surfaced with the 2.3 update.</p>
<h2>Suggested fix</h2>
<p dir="auto">Pass <code>--concurrency ${BASEROW_AMOUNT_OF_WORKERS:-1}</code> (or a sensible default) to the celery worker commands in the supervisor config / <a href="http://start.sh" target="_blank" rel="noopener noreferrer nofollow ugc">start.sh</a>, like the upstream image does.</p>
<h2>Workaround for anyone affected</h2>
<p dir="auto">Since celery reads its config from Django settings (<code>namespace="CELERY"</code>), you can force the concurrency via a <code>sitecustomize.py</code>. Create <code>/app/data/sitecustomize.py</code>:</p>
<pre><code class="language-python">import os
os.environ["DJANGO_SETTINGS_MODULE"] = "sitecustomize"

from baserow.config.settings.base import *  # noqa
CELERY_WORKER_CONCURRENCY = 1
</code></pre>
<p dir="auto">and add to <code>/app/data/env.sh</code>:</p>
<pre><code class="language-bash">export PYTHONPATH="/app/data:$PYTHONPATH"
</code></pre>
<p dir="auto">After a restart the process count drops from 29 to 8 and memory usage is back to normal. (Remember to remove this again once the package is fixed.)</p>
<p dir="auto">Happy to provide more logs if needed. Thanks!</p>
]]></description><link>https://forum.cloudron.io/topic/15704/baserow-2.3.1-spawns-29-celery-workers-daily-oom-worker-env-var-ignored</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 20:34:30 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/15704.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Jul 2026 10:42:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Baserow 2.3.1 spawns 29 celery workers → daily OOM (worker env var ignored) on Tue, 14 Jul 2026 09:57:03 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="plugin-mentions-user plugin-mentions-a" href="/user/sclemens" aria-label="Profile: sclemens">@<bdi>sclemens</bdi></a><br />
Thanks for confirming the fix and always happy to help.</p>
]]></description><link>https://forum.cloudron.io/post/126758</link><guid isPermaLink="true">https://forum.cloudron.io/post/126758</guid><dc:creator><![CDATA[james]]></dc:creator><pubDate>Tue, 14 Jul 2026 09:57:03 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 2.3.1 spawns 29 celery workers → daily OOM (worker env var ignored) on Tue, 14 Jul 2026 09:56:17 GMT]]></title><description><![CDATA[<p dir="auto">Confirmed fixed in package 1.38.1 — celery now starts with --concurrency ${BASEROW_AMOUNT_OF_WORKERS:-1}, memory is back to normal (~2.5–3 GB instead of 6+). The new <a href="http://env.sh" target="_blank" rel="noopener noreferrer nofollow ugc">env.sh</a> template documenting both worker variables is a nice touch. Thanks for the quick fix!</p>
]]></description><link>https://forum.cloudron.io/post/126757</link><guid isPermaLink="true">https://forum.cloudron.io/post/126757</guid><dc:creator><![CDATA[sclemens]]></dc:creator><pubDate>Tue, 14 Jul 2026 09:56:17 GMT</pubDate></item></channel></rss>