<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 26, 2017 at 1:58 PM, Alexander Wels <span dir="ltr">&lt;<a href="mailto:awels@redhat.com" target="_blank">awels@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">On Tuesday, September 26, 2017 3:26:44 AM EDT Tomas Jelinek wrote:<br>
&gt; On Tue, Sep 26, 2017 at 9:17 AM, Miroslava Voglova &lt;<a href="mailto:mvoglova@redhat.com">mvoglova@redhat.com</a>&gt;<br>
&gt;<br>
&gt; wrote:<br>
&gt; &gt; From 4.0 architecture family was renamed in script<br>
&gt; &gt; 04_00_0080_rename_<wbr>architecture_family. So &#39;HotPlugCpuSupported&#39;,<br>
&gt; &gt; &#39;HotUnplugCpuSupported&#39;, &#39;<br>
&gt; &gt; HotPlugMemorySupported&#39;, &#39;HotUnplugMemorySupported&#39;,<br>
&gt; &gt; &#39;IsMigrationSupported&#39;, &#39;IsMemorySnapshotSupported&#39; and<br>
&gt; &gt; &#39;IsSuspendSupported&#39; are all in db with x86 not x86_64. In my point of<br>
&gt; &gt; view nothing wrong with that particular line in [1].<br>
&gt; &gt;<br>
&gt; &gt; Could be that somewhere in code is not used architecture family, but host<br>
&gt; &gt; architecture, when asked for value of this ConfigValues. But that would<br>
&gt; &gt; throw exception even before my patch, because &#39;{&quot;x86:&quot;true&quot;,&quot;ppc&quot;:&quot;true&quot;}&#39;<br>
&gt; &gt; was default value for HotPlugMemorySupported.<br>
&gt;<br>
&gt; I see a code path where the cluster arch can be set to x86_64 - it is<br>
&gt; always executed for external VMs (imported from external provider or<br>
&gt; unmanaged). It does not happen all the time, it is only a fallback if the<br>
&gt; arch type is not known/reported etc.<br>
&gt;<br>
&gt; @Alexander: by any chance, was this VM an unmanaged one? Or imported? In<br>
&gt; logs you should find something like:<br>
&gt; &quot;Illegal architecture type: {}, replacing with x86_64&quot; or &quot;null<br>
&gt; architecture type, replacing with x86_64, {}&quot;.<br>
&gt;<br>
&gt; Also, if you create a new VM, can you start it?<br>
&gt;<br>
<br>
</span>No its an old database though from pre 4.0 times. These VMs have never been<br>
unmanaged or imported from external providers. I did not see that in the log,<br>
I had to manuall step through the code to end up in the right place that<br>
causes the NPE. Like I said before line 23 in FeatureSupported.java is the<br>
culprit IMO. It does:<br>
<br>
  String value = archOptions.get(<a href="http://arch.name" rel="noreferrer" target="_blank">arch.name</a>());<br>
<br>
arch is ArchitectureType, and <a href="http://arch.name" rel="noreferrer" target="_blank">arch.name</a> returns x86_64, and if I understand<br>
right they should have done arch.getFamily().name() which does happen 2 lines<br>
below it. Honestly I don&#39;t understand how any VMs are able to run with the<br>
code like that since they all check to see if you can do memory hot plug<br>
before starting, and that check runs through this piece of code, which based<br>
on the contents of [1] should return an npe since the database should not<br>
contain the x86_64 entries.<br></blockquote><div><br></div><div>the reason it did not work is that there was a syntactic error in the vdc_options table causing the <br></div><div>Config.&lt;Map&gt;getValue(feature, version.getValue()); to return null.</div><div><br></div><div>The VMs normally run, because if there is no entry for x86_64 than it checks x86 two lines below.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
&gt; &gt; [1]<br>
&gt; &gt; *<a href="https://gerrit.ovirt.org/#/c/81464/7/packaging/dbscripts/upgrade/pre_upg" rel="noreferrer" target="_blank">https://gerrit.ovirt.org/#/c/<wbr>81464/7/packaging/dbscripts/<wbr>upgrade/pre_upg</a><br>
&gt; &gt; rade/0000_config.sql<br>
&gt; &gt; &lt;<a href="https://gerrit.ovirt.org/#/c/81464/7/packaging/dbscripts/upgrade/pre_upg" rel="noreferrer" target="_blank">https://gerrit.ovirt.org/#/c/<wbr>81464/7/packaging/dbscripts/<wbr>upgrade/pre_upg</a><br>
&gt; &gt; rade/0000_config.sql&gt;*<br>
<div class="gmail-HOEnZb"><div class="gmail-h5">&gt; &gt;<br>
&gt; &gt; On Tue, Sep 26, 2017 at 9:00 AM, Tomas Jelinek &lt;<a href="mailto:tjelinek@redhat.com">tjelinek@redhat.com</a>&gt;<br>
&gt; &gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt;&gt; On Mon, Sep 25, 2017 at 10:08 PM, Roy Golan &lt;<a href="mailto:rgolan@redhat.com">rgolan@redhat.com</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt; On Mon, 25 Sep 2017 at 22:52 Alexander Wels &lt;<a href="mailto:awels@redhat.com">awels@redhat.com</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt;&gt; On Monday, September 25, 2017 3:50:56 PM EDT Roy Golan wrote:<br>
&gt; &gt;&gt;&gt;&gt; &gt; So somewhere in the code somebody used the Arch and not the family.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; See the<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; enum getFamily() method<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; Yep, in particular line 23 of FeatureSupported.java.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; I meant the caller of the method on this line. Do you have it in the<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; trace so we can see who passed x86_64 as arch ?<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; &gt; On Mon, 25 Sep 2017 at 22:31 Alexander Wels &lt;<a href="mailto:awels@redhat.com">awels@redhat.com</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; On Monday, September 25, 2017 3:24:14 PM EDT Roy Golan wrote:<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; what JRE are you using? any change with that?<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; So I just figured out the problem, and its really strange. It has<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; nothing<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; to<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; do with the SSL as the stack trace is mentioning. I manually<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; stepped<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; through<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; the code to see what was going on and it turns out it is failing in<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; FeatureSupported.java in supportedInConfig call from hotPlugMemory.<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; The Config.&lt;Map&gt;getValue(feature, version.getValue()) (version is<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; 4.2) is<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; returning a map containing x86=true and ppc=true. But then it<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; compares<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; this to<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; ArchitectureType.name() it returns null, because .name() return<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; x86_64. No<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; it<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; appears that sometime during the last few months we dropped the _64<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; in the<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; ArchitectureType, or at least in the database.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; It looks a lot like introduced here: <a href="https://gerrit.ovirt.org/#/c/81464/" rel="noreferrer" target="_blank">https://gerrit.ovirt.org/#/c/<wbr>81464/</a><br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; @Mirka: what you think?<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; As soon as I added a vdc_options tha contains x86_64 value for that<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; key it<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; started working. Now I have checked with Greg who has a fresh<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; database<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; that he<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; can start VMs no problem, and his database contains x86 instead of<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; x86_64.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; On Mon, 25 Sep 2017 at 21:12 Alexander Wels &lt;<a href="mailto:awels@redhat.com">awels@redhat.com</a>&gt;<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; wrote:<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; Hi guys,<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; I see to be having an issue starting VMs with the latest<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; master.<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; Whenever<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; I<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; try to start a VM I get null pointer exception. And the VM<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; doesn&#39;t<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; start.<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; I<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; have debugged the engine, and it appears that the null pointer<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; happens<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; after<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; the engine tries to connect to the host. In the stack trace I<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; see<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; SSLPeerUnverifiedException, so it appears something went wrong<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; with a<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; certificate somewhere.<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; I have put my hosts in maintaince and re-enrolled the<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; certificate, but<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; that<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; doesn&#39;t appear to be helping at all. Any other place I need to<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; look at<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; to<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; make<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; sure the engine can talk to the hosts? This appears to have<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; started<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; after<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; I<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; upgraded Wildfly to 11, so it is possible it has something to<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; do with<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; that<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; as<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; well.<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; Any help figuring this out would be appreciated.<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; Alexander<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; ______________________________<wbr>_________________<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; Devel mailing list<br>
&gt; &gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; <a href="mailto:Devel@ovirt.org">Devel@ovirt.org</a><br>
&gt; &gt;&gt;&gt;&gt; &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;&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>
<br>
<br>
</div></div></blockquote></div><br></div></div>