{"id": 1110, "title": "Ticket #1110: cron-like jobs not re-executing with dynamic provisioning", "description": "<blockquote>\nSee <a class=\"external\" href=\"https://bugzilla.redhat.com/show_bug.cgi?id=505119\">https://bugzilla.redhat.com/show_bug.cgi?id=505119</a>\n\n<p>The job has a requirement that the Memory on the slot where it runs is larger\nthan its <span class=\"wiki\"><a class=\"missing\" href=\"wiki?p=ImageSize\" title=\"Image Size\">ImageSize</a></span>.\n\n</p><p>After the job runs once the <span class=\"wiki\"><a class=\"missing\" href=\"wiki?p=ImageSize\" title=\"Image Size\">ImageSize</a></span> is updated to a more reasonable value,\nand that value is likely greater than 1MB.\n\n</p><p>The result is the job matches, but when it goes to run on the dynamically\ncreated slot its requirements prevent it.</p></blockquote>", "remarks": "<blockquote>\n<em>2011-Jan-03 12:54:51 by danb:</em> <br/>\n\nI sometimes find myself wondering why <code>RequestMemory</code> gets compared to <code>ImageSize</code> in the job's default requirements.\n\n<p></p><div class=\"verbatim\">\n<pre>( ( RequestMemory * 1024 ) &gt;= ImageSize )\n</pre></div>\n\n\n<p>Doesn't the schedd adjust its copy of the slot ad so that the advertised memory of the slot is reduced to the amount requested?  If so, then why doesn't the default memory requirement address the problem described in this ticket?\n\n</p><p></p><div class=\"verbatim\">\n<pre>( ( TARGET.Memory * 1024 ) &gt;= ImageSize )\n</pre></div>\n\n\n<p></p><hr/>\n<em>2011-Jan-03 14:14:40 by matt:</em> <br/>\n\nThe Schedd does. The Negotiator does not. Without the expression the Negotiator will hand out matches that cannot actually be used because during activation the Job's <span class=\"wiki\"><a class=\"missing\" href=\"wiki?p=ImageSize\" title=\"Image Size\">ImageSize</a></span> will be larger than the Memory requested. Without having the RequestMemory:ImageSize comparison in the Requirements, there is no way of debugging this except for looking at <span class=\"wiki\"><a class=\"missing\" href=\"wiki?p=StartLogs\" title=\"Start Logs\">StartLogs</a></span>. The comparison allows for detection of the issue via condor_q -bet, and has the benefit of preventing the creation of matches that cannot be used.\n\n<p></p><hr/>\n<em>2011-Jan-03 15:53:30 by danb:</em> <br/>\n\nWhat about replacing this:\n\n<p></p><div class=\"verbatim\">\n<pre>( ( TARGET.Memory * 1024 ) &gt;= ImageSize ) &amp;&amp; ( ( RequestMemory * 1024 ) &gt;= ImageSize )\n</pre></div>\n\n\n<p>with this:\n\n</p><p></p><div class=\"verbatim\">\n<pre>TARGET.Memory &gt;= RequestMemory\n</pre></div>\n\n\n<p></p><hr/>\n<em>2011-Jan-04 10:34:09 by matt:</em> <br/>\n\nIn that case the Schedd will still receive a match from the Negotaitor, and it may prevent the Schedd from activating the claim. If it didn't the Startd will definitely prevent activation. The means to debug such a situation still requires hitting log files instead of the usual means of -bet, and will still result in the generation of unused matches.</blockquote>", "derived_tickets": "", "attachments": "<html><head></head><body></body></html>", "check_ins": "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n<tbody><tr><td align=\"right\" valign=\"top\" width=\"160\">2010-Jan-14 17:18</td>\n<td align=\"center\" valign=\"top\" width=\"30\">\n<span class=\"icon dot\">\u00a0</span></td>\n<td align=\"left\" valign=\"top\"> \nCheck-in <span class=\"chng\"><a href=\"https://github.com/htcondor/htcondor/commit/9b03e0646c62cb48f1d6adfacef2d34b179df990\">[16898]</a></span>: Added check to compare <span class=\"wiki\"><a class=\"missing\" href=\"wiki?p=RequestMemory\" title=\"Request Memory\">RequestMemory</a></span> and <span class=\"wiki\"><a class=\"missing\" href=\"wiki?p=ImageSize\" title=\"Image Size\">ImageSize</a></span> to default Requirements <span class=\"ticket\"><a class=\"resolved\" href=\"/wiki-archive/tickets/?ticket=1110\" onclick=\"get_ticket_and_populate_wrapper('1110'); return false;\" title=\"cron-like jobs not re-executing with dynamic provisioning\">#1110</a></span>  (By <NAME> )</td></tr>\n</tbody></table>", "type": "defect", "last_change": "2011-Jan-04 10:34", "status": "resolved", "created": "2010-Jan-14 17:16", "fixed_version": "2010-Jan-14 17:16", "broken_version": "v070200", "priority": "2", "subsystem": "Tools", "assigned_to": "matt", "derived_from": "", "creator": "matt", "rust": "", "customer_group": "other", "visibility": "public", "notify": "<EMAIL>,<EMAIL>", "due_date": ""}