<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body smarttemplateinserted="true" bgcolor="#FFFFFF" text="#000000">
    <div id="smartTemplate4-template"> </div>
    <br>
    <div id="smartTemplate4-quoteHeader"><br>
      <hr>
      <div><b>From: </b>Lars Marowsky-Bree <a class="moz-txt-link-rfc2396E" href="mailto:lmb@suse.com"><lmb@suse.com></a></div>
      <div><b>Sent: </b> 2013-12-06 13:44:53 E</div>
      <div><b>To: </b>The Pacemaker cluster resource manager
        <a class="moz-txt-link-rfc2396E" href="mailto:pacemaker@oss.clusterlabs.org"><pacemaker@oss.clusterlabs.org></a></div>
      <div><b>Subject: </b>Re: [Pacemaker] monitor on-fail=ignore not
        restarting when resource reported as stopped</div>
      <br>
    </div>
    <blockquote cite="mid:20131206184453.GC3464@suse.de" type="cite">
      <pre wrap="">On 2013-12-06T11:21:02, Patrick Hemmer <a class="moz-txt-link-rfc2396E" href="mailto:pacemaker@feystorm.net"><pacemaker@feystorm.net></a> wrote:

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <pre wrap="">So where is the problem? If the script returns "ERROR" than pacemaker has to 
acct accordingly.
</pre>
        </blockquote>
        <pre wrap="">If the script returns "ERROR" the `on-fail=ignore` should make it do
nothing. Amazon's API failed, we need to just retry again later.
If the script returns "STOPPED", this isn't an error. The script queried
the resource, found it was stopped, and reported it as stopped.
Pacemaker should act accordingly and start it back up.
</pre>
      </blockquote>
      <pre wrap="">
For a resource that pacemaker expects to be started, it's an error if it
is found to be stopped. Pacemaker can't tell if it is really cleanly
stopped, or died, or ...</pre>
    </blockquote>
    Oh, and I'll quote the OCF spec on this one:<br>
    <br>
    <tt>1     generic or unspecified error (current practice)</tt><tt><br>
    </tt><tt>    The "monitor" operation shall return this for a
      crashed, hung or</tt><tt><br>
    </tt><tt>    otherwise non-functional resource.</tt><tt><br>
    </tt><tt><br>
    </tt><tt>7     program is not running</tt><tt><br>
    </tt><tt>    Note: This is not the error code to be returned by a
      successful</tt><tt><br>
    </tt><tt>    "stop" operation. A successful "stop" operation shall
      return 0.</tt><tt><br>
    </tt><tt>    The "monitor" action shall return this value only for a
    </tt><tt><br>
    </tt><tt>    _cleanly_ stopped resource. If in doubt, it should
      return 1.</tt><br>
    <br>
    So the OCF spec very clearly states that OCF_ERR_GENERIC means it's
    failed. OCF_NOT_RUNNING means it shut down cleanly. So yes,
    pacemaker can tell if it cleanly stopped.<br>
    <br>
    <blockquote cite="mid:20131206184453.GC3464@suse.de" type="cite">
      <pre wrap="">

If you want Pacemaker to recover failed resources, do not set
on-fail="ignore". I still don't quite get why you set that when you
obviously don't want the associated behaviour?


Regards,
    Lars

</pre>
    </blockquote>
    <br>
  </body>
</html>