Skip to content

Commit ef676b0

Browse files
committed
deploy: f803ba7
1 parent 2e8d5e6 commit ef676b0

5 files changed

Lines changed: 14 additions & 6 deletions

File tree

.doctrees/biomero.doctree

454 Bytes
Binary file not shown.

.doctrees/environment.pickle

656 Bytes
Binary file not shown.

_modules/biomero/views.html

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -215,17 +215,22 @@ <h1>Source code for biomero.views</h1><div class="highlight"><pre>
215215

216216
<div class="viewcode-block" id="JobAccounting.update_view_table"><a class="viewcode-back" href="../../biomero.html#biomero.views.JobAccounting.update_view_table">[docs]</a> <span class="nd">@retry_on_database_conflict</span><span class="p">(</span><span class="n">max_retries</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
217217
<span class="k">def</span><span class="w"> </span><span class="nf">update_view_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">job_id</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">group</span><span class="p">,</span> <span class="n">task_id</span><span class="p">):</span>
218-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Update the view table with new job information.&quot;&quot;&quot;</span>
218+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Update the view table with new job information.</span>
219+
220+
<span class="sd"> Uses merge (upsert) so that if SLURM recycles a job ID the new</span>
221+
<span class="sd"> task_id/user/group overwrites the stale row instead of silently</span>
222+
<span class="sd"> failing and leaving the old mapping in place.</span>
223+
<span class="sd"> &quot;&quot;&quot;</span>
219224
<span class="k">with</span> <span class="n">EngineManager</span><span class="o">.</span><span class="n">get_session</span><span class="p">()</span> <span class="k">as</span> <span class="n">session</span><span class="p">:</span>
220225
<span class="k">try</span><span class="p">:</span>
221226
<span class="n">new_job</span> <span class="o">=</span> <span class="n">JobView</span><span class="p">(</span><span class="n">slurm_job_id</span><span class="o">=</span><span class="n">job_id</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="n">user</span><span class="p">,</span> <span class="n">group</span><span class="o">=</span><span class="n">group</span><span class="p">,</span> <span class="n">task_id</span><span class="o">=</span><span class="n">task_id</span><span class="p">)</span>
222-
<span class="n">session</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">new_job</span><span class="p">)</span>
227+
<span class="n">session</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">new_job</span><span class="p">)</span>
223228
<span class="n">session</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span>
224-
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Inserted job into view table: job_id=</span><span class="si">{</span><span class="n">job_id</span><span class="si">}</span><span class="s2">, user=</span><span class="si">{</span><span class="n">user</span><span class="si">}</span><span class="s2">, group=</span><span class="si">{</span><span class="n">group</span><span class="si">}</span><span class="s2">, task_id=</span><span class="si">{</span><span class="n">task_id</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
229+
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Upserted job into view table: job_id=</span><span class="si">{</span><span class="n">job_id</span><span class="si">}</span><span class="s2">, user=</span><span class="si">{</span><span class="n">user</span><span class="si">}</span><span class="s2">, group=</span><span class="si">{</span><span class="n">group</span><span class="si">}</span><span class="s2">, task_id=</span><span class="si">{</span><span class="n">task_id</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
225230
<span class="k">except</span> <span class="n">IntegrityError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
226231
<span class="n">session</span><span class="o">.</span><span class="n">rollback</span><span class="p">()</span>
227-
<span class="c1"># Handle the case where the job already exists in the table if necessary</span>
228-
<span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Database conflict inserting job (will retry): job_id=</span><span class="si">{</span><span class="n">job_id</span><span class="si">}</span><span class="s2">, user=</span><span class="si">{</span><span class="n">user</span><span class="si">}</span><span class="s2">, group=</span><span class="si">{</span><span class="n">group</span><span class="si">}</span><span class="s2">, error=</span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span></div>
232+
<span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Database conflict upserting job (will retry): job_id=</span><span class="si">{</span><span class="n">job_id</span><span class="si">}</span><span class="s2">, user=</span><span class="si">{</span><span class="n">user</span><span class="si">}</span><span class="s2">, group=</span><span class="si">{</span><span class="n">group</span><span class="si">}</span><span class="s2">, error=</span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
233+
<span class="k">raise</span></div>
229234

230235
<div class="viewcode-block" id="JobAccounting.get_jobs"><a class="viewcode-back" href="../../biomero.html#biomero.views.JobAccounting.get_jobs">[docs]</a> <span class="k">def</span><span class="w"> </span><span class="nf">get_jobs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">group</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
231236
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Retrieve jobs for a specific user and/or group.</span>

biomero.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2358,6 +2358,9 @@ <h1>biomero package<a class="headerlink" href="#biomero-package" title="Permalin
23582358
<dt class="sig sig-object py" id="biomero.views.JobAccounting.update_view_table">
23592359
<span class="sig-name descname"><span class="pre">update_view_table</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">job_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">user</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">group</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/biomero/views.html#JobAccounting.update_view_table"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#biomero.views.JobAccounting.update_view_table" title="Permalink to this definition"></a></dt>
23602360
<dd><p>Update the view table with new job information.</p>
2361+
<p>Uses merge (upsert) so that if SLURM recycles a job ID the new
2362+
task_id/user/group overwrites the stale row instead of silently
2363+
failing and leaving the old mapping in place.</p>
23612364
</dd></dl>
23622365

23632366
</dd></dl>

searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)