<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 24, 2018 at 7:00 AM, Dan Kenigsberg <span dir="ltr">&lt;<a href="mailto:danken@redhat.com" target="_blank">danken@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ravi&#39;s patch is in, but a similar problem remains, and the test cannot<br>
be put back into its place.<br>
<br>
It seems that while Vdsm was taken down, a couple of getCapsAsync<br>
requests queued up. At one point, the host resumed its connection,<br>
before the requests have been cleared of the queue. After the host is<br>
up, the following tests resume, and at a pseudorandom point in time,<br>
an old getCapsAsync request times out and kills our connection.<br>
<br>
I believe that as long as ANY request is on flight, the monitoring<br>
lock should not be released, and the host should not be declared as<br>
up.<br>
<div class="HOEnZb"><div class="h5"><br>
<br></div></div></blockquote><div><br></div><div><br></div><div>Hi Dan,</div><div><br></div><div>Can I have the link to the job on jenkins so I can look at the logs</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
On Wed, Apr 11, 2018 at 1:04 AM, Ravi Shankar Nori &lt;<a href="mailto:rnori@redhat.com">rnori@redhat.com</a>&gt; wrote:<br>
&gt; This [1] should fix the multiple release lock issue<br>
&gt;<br>
&gt; [1] <a href="https://gerrit.ovirt.org/#/c/90077/" rel="noreferrer" target="_blank">https://gerrit.ovirt.org/#/c/<wbr>90077/</a><br>
&gt;<br>
&gt; On Tue, Apr 10, 2018 at 3:53 PM, Ravi Shankar Nori &lt;<a href="mailto:rnori@redhat.com">rnori@redhat.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Working on a patch will post a fix<br>
&gt;&gt;<br>
&gt;&gt; Thanks<br>
&gt;&gt;<br>
&gt;&gt; Ravi<br>
&gt;&gt;<br>
&gt;&gt; On Tue, Apr 10, 2018 at 9:14 AM, Alona Kaplan &lt;<a href="mailto:alkaplan@redhat.com">alkaplan@redhat.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hi all,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Looking at the log it seems that the new GetCapabilitiesAsync is<br>
&gt;&gt;&gt; responsible for the mess.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; - 08:29:47 - engine loses connectivity to host<br>
&gt;&gt;&gt; &#39;lago-basic-suite-4-2-host-0&#39;.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; - Every 3 seconds a getCapabalititiesAsync request is sent to the host<br>
&gt;&gt;&gt; (unsuccessfully).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;      * before each &quot;getCapabilitiesAsync&quot; the monitoring lock is taken<br>
&gt;&gt;&gt; (VdsManager,refreshImpl)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;      * &quot;getCapabilitiesAsync&quot; immediately fails and throws<br>
&gt;&gt;&gt; &#39;VDSNetworkException: java.net.ConnectException: Connection refused&#39;. The<br>
&gt;&gt;&gt; exception is caught by<br>
&gt;&gt;&gt; &#39;<wbr>GetCapabilitiesAsyncVDSCommand<wbr>.executeVdsBrokerCommand&#39; which calls<br>
&gt;&gt;&gt; &#39;onFailure&#39; of the callback and re-throws the exception.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;          catch (Throwable t) {<br>
&gt;&gt;&gt;             getParameters().getCallback().<wbr>onFailure(t);<br>
&gt;&gt;&gt;             throw t;<br>
&gt;&gt;&gt;          }<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;     * The &#39;onFailure&#39; of the callback releases the &quot;monitoringLock&quot;<br>
&gt;&gt;&gt; (&#39;postProcessRefresh()-&gt;<wbr>afterRefreshTreatment()-&gt; if (!succeeded)<br>
&gt;&gt;&gt; lockManager.releaseLock(<wbr>monitoringLock);&#39;)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;     * &#39;VdsManager,refreshImpl&#39; catches the network exception, marks<br>
&gt;&gt;&gt; &#39;releaseLock = true&#39; and tries to release the already released lock.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;       The following warning is printed to the log -<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;       WARN  [org.ovirt.engine.core.bll.<wbr>lock.InMemoryLockManager]<br>
&gt;&gt;&gt; (EE-ManagedThreadFactory-<wbr>engineScheduled-Thread-53) [] Trying to release<br>
&gt;&gt;&gt; exclusive lock which does not exist, lock key:<br>
&gt;&gt;&gt; &#39;ecf53d69-eb68-4b11-8df2-<wbr>c4aa4e19bd93VDS_INIT&#39;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; - 08:30:51 a successful getCapabilitiesAsync is sent.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; - 08:32:55 - The failing test starts (Setup Networks for setting ipv6).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;     * SetupNetworks takes the monitoring lock.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; - 08:33:00 - ResponseTracker cleans the getCapabilitiesAsync requests<br>
&gt;&gt;&gt; from 4 minutes ago from its queue and prints a VDSNetworkException: Vds<br>
&gt;&gt;&gt; timeout occured.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;       * When the first request is removed from the queue<br>
&gt;&gt;&gt; (&#39;ResponseTracker.remove()&#39;), the &#39;Callback.onFailure&#39; is invoked (for the<br>
&gt;&gt;&gt; second time) -&gt; monitoring lock is released (the lock taken by the<br>
&gt;&gt;&gt; SetupNetworks!).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;       * The other requests removed from the queue also try to release the<br>
&gt;&gt;&gt; monitoring lock, but there is nothing to release.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;       * The following warning log is printed -<br>
&gt;&gt;&gt;         WARN  [org.ovirt.engine.core.bll.<wbr>lock.InMemoryLockManager]<br>
&gt;&gt;&gt; (EE-ManagedThreadFactory-<wbr>engineScheduled-Thread-14) [] Trying to release<br>
&gt;&gt;&gt; exclusive lock which does not exist, lock key:<br>
&gt;&gt;&gt; &#39;ecf53d69-eb68-4b11-8df2-<wbr>c4aa4e19bd93VDS_INIT&#39;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; - 08:33:00 - SetupNetwork fails on Timeout ~4 seconds after is started.<br>
&gt;&gt;&gt; Why? I&#39;m not 100% sure but I guess the late processing of the<br>
&gt;&gt;&gt; &#39;getCapabilitiesAsync&#39; that causes losing of the monitoring lock and the<br>
&gt;&gt;&gt; late + mupltiple processing of failure is root cause.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Ravi, &#39;getCapabilitiesAsync&#39; failure is treated twice and the lock is<br>
&gt;&gt;&gt; trying to be released three times. Please share your opinion regarding how<br>
&gt;&gt;&gt; it should be fixed.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Alona.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Sun, Apr 8, 2018 at 1:21 PM, Dan Kenigsberg &lt;<a href="mailto:danken@redhat.com">danken@redhat.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Sun, Apr 8, 2018 at 9:21 AM, Edward Haas &lt;<a href="mailto:ehaas@redhat.com">ehaas@redhat.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On Sun, Apr 8, 2018 at 9:15 AM, Eyal Edri &lt;<a href="mailto:eedri@redhat.com">eedri@redhat.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Was already done by Yaniv - <a href="https://gerrit.ovirt.org/#/c/89851" rel="noreferrer" target="_blank">https://gerrit.ovirt.org/#/c/<wbr>89851</a>.<br>
&gt;&gt;&gt;&gt;&gt;&gt; Is it still failing?<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; On Sun, Apr 8, 2018 at 8:59 AM, Barak Korren &lt;<a href="mailto:bkorren@redhat.com">bkorren@redhat.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 7 April 2018 at 00:30, Dan Kenigsberg &lt;<a href="mailto:danken@redhat.com">danken@redhat.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; No, I am afraid that we have not managed to understand why setting<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; ipv6 address too the host off the grid. We shall continue<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; researching<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; this next week.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; Edy, <a href="https://gerrit.ovirt.org/#/c/88637/" rel="noreferrer" target="_blank">https://gerrit.ovirt.org/#/c/<wbr>88637/</a> is already 4 weeks old,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; but<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; could it possibly be related (I really doubt that)?<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Sorry, but I do not see how this problem is related to VDSM.<br>
&gt;&gt;&gt;&gt;&gt; There is nothing that indicates that there is a VDSM problem.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Has the RPC connection between Engine and VDSM failed?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Further up the thread, Piotr noticed that (at least on one failure of<br>
&gt;&gt;&gt;&gt; this test) that the Vdsm host lost connectivity to its storage, and Vdsm<br>
&gt;&gt;&gt;&gt; process was restarted. However, this does not seems to happen in all cases<br>
&gt;&gt;&gt;&gt; where this test fails.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt;&gt;&gt; Devel mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:Devel@ovirt.org">Devel@ovirt.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/<wbr>mailman/listinfo/devel</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div></div>