https://dev.arvados.org/https://dev.arvados.org/favicon.ico?15576888422016-05-11T18:34:35ZArvadosArvados - Idea #9180: [PySDK] Avoid overreplication in KeepClienthttps://dev.arvados.org/issues/9180?journal_id=389792016-05-11T18:34:35ZBrett Smithbrett.smith@curii.com
<ul><li><strong>Target version</strong> set to <i>Arvados Future Sprints</i></li></ul> Arvados - Idea #9180: [PySDK] Avoid overreplication in KeepClienthttps://dev.arvados.org/issues/9180?journal_id=398962016-06-08T19:40:45ZRadhika Chippadaradhika@curoverse.com
<ul><li><strong>Assigned To</strong> set to <i>Lucas Di Pentima</i></li></ul> Arvados - Idea #9180: [PySDK] Avoid overreplication in KeepClienthttps://dev.arvados.org/issues/9180?journal_id=398982016-06-08T19:41:51ZRadhika Chippadaradhika@curoverse.com
<ul><li><strong>Target version</strong> changed from <i>Arvados Future Sprints</i> to <i>2016-06-22 sprint</i></li></ul> Arvados - Idea #9180: [PySDK] Avoid overreplication in KeepClienthttps://dev.arvados.org/issues/9180?journal_id=400342016-06-13T20:40:21ZLucas Di Pentimalucas.dipentima@curii.com
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>In Progress</i></li></ul> Arvados - Idea #9180: [PySDK] Avoid overreplication in KeepClienthttps://dev.arvados.org/issues/9180?journal_id=401842016-06-16T19:05:45ZTom Cleggtom@curii.com
<ul></ul><p>(Notes from offline discussion)</p>
<p>The fix might be as easy as skipping <code class="python syntaxhl"><span class="bp">self</span><span class="p">.</span><span class="n">_todo_lock</span><span class="p">.</span><span class="n">release</span><span class="p">()</span></code> in <code class="python syntaxhl"><span class="n">ThreadLimiter</span><span class="p">.</span><span class="n">__exit__</span></code> if <code class="python syntaxhl"><span class="n">save_response</span><span class="p">()</span></code> was called with <code class="python syntaxhl"><span class="n">replicas_stored</span> <span class="o">></span> <span class="mi">0</span></code></p>
<p>Unit-testing ThreadLimiter directly might be easier than (and preferable to) testing whether it's having the desired effect on KeepClient.</p> Arvados - Idea #9180: [PySDK] Avoid overreplication in KeepClienthttps://dev.arvados.org/issues/9180?journal_id=401922016-06-16T23:15:29ZLucas Di Pentimalucas.dipentima@curii.com
<ul></ul><p>Commit <a class="changeset" title="9180: Changed some of the logic on ThreadLimiter and made unit tests to validate the new behaviou..." href="https://dev.arvados.org/projects/arvados/repository/arvados/revisions/4aaa1f6aeae33dc353ea3a70f901065b4f694fed">4aaa1f6</a></p>
<p>Wrote a couple unit tests to reproduce the behaviour testing ThreadLimiter directly as Tom suggested (thanks!), and proposed a slight change in its logic. It was no enough to avoid releasing the lock when a thread ended successfully because on total success the code locked, so I added an additional counter to keep track of failed threads and check if the wanted replication is achieved at <i>exit</i>()</p> Arvados - Idea #9180: [PySDK] Avoid overreplication in KeepClienthttps://dev.arvados.org/issues/9180?journal_id=402522016-06-20T19:55:21ZPeter Amstutzpeter.amstutz@curii.com
<ul></ul><p>Looks good to me, please merge.</p> Arvados - Idea #9180: [PySDK] Avoid overreplication in KeepClienthttps://dev.arvados.org/issues/9180?journal_id=402552016-06-20T20:05:06ZLucas Di Pentimalucas.dipentima@curii.com
<ul><li><strong>Status</strong> changed from <i>In Progress</i> to <i>Resolved</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>Applied in changeset arvados|commit:22e066d43cb09beb21c4cd5b12a787b81a00f97e.</p>