Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1537464

Summary: [UI] Unexpected exception: 'b is null' appears in Events window, when using "Host -> Management -> Configure Local Storage" window
Product: [oVirt] ovirt-engine Reporter: Mor <mkalfon>
Component: Frontend.WebAdminAssignee: Ahmad Khiet <akhiet>
Status: CLOSED CURRENTRELEASE QA Contact: samuel macko <smacko>
Severity: medium Docs Contact:
Priority: low    
Version: 4.2.1.2CC: akhiet, benjamin.beier, bugs, danken, debec.arnaud, gshereme, lleistne, tnisan
Target Milestone: ovirt-4.3.5Flags: rule-engine: ovirt-4.3+
Target Release: 4.3.5.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ovirt-engine-4.3.5.1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-07-30 14:08:37 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: UX RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
logs and screenshots
none
Dashboard Local Storage Exception none

Description Mor 2018-01-23 09:31:25 UTC
Created attachment 1384780 [details]
logs and screenshots

Description of problem:
During working with the web interface, uncaught exception appears: 'b is null'. It occurred multiple times with older RHV versions, however, I still didn't found steps to reproduce it. I decided to open this bug anyway, to investigate the root cause for it.

Version-Release number of selected component (if applicable):
RHV 4.2.1.2-0.1.el7
Mozilla Firefox 57.0.4

How reproducible:
Sometimes.

Steps to Reproduce:
Currently, no steps to reproduce.

Actual results:
UI Log shows:
2018-01-23 11:12:30,450+02 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-6) [] Uncaught exception: com.google.gwt.core.client.JavaScriptException: (TypeError) : b is null
        at com.google.gwt.i18n.shared.DateTimeFormat.$format(DateTimeFormat.java:761) [gwt-servlet.jar:]
        at org.ovirt.engine.ui.common.widget.uicommon.tasks.TaskWidget.TaskWidget(TaskWidget.java:53)
        at org.ovirt.engine.ui.webadmin.section.main.view.overlay.TasksView.$lambda$0(TasksView.java:45)
        at org.ovirt.engine.ui.webadmin.section.main.view.overlay.TasksView$lambda$0$Type.accept(TasksView.java:45)
        at java.util.ArrayList.$forEach(ArrayList.java:172) [rt.jar:1.8.0_151]
        at java.util.ArrayList.forEach(ArrayList.java:172) [rt.jar:1.8.0_151]
        at org.ovirt.engine.ui.webadmin.section.main.view.overlay.TasksView.$updateTaskStatus(TasksView.java:41)
        at org.ovirt.engine.ui.webadmin.section.main.presenter.overlay.TasksPresenterWidget$1.eventRaised(TasksPresenterWidget.java:62)
        at org.ovirt.engine.ui.uicompat.Event.$raise(Event.java:99)
        at org.ovirt.engine.ui.uicommonweb.models.SearchableListModel.$setItems(SearchableListModel.java:760)
        at org.ovirt.engine.ui.uicommonweb.models.events.TaskListModel.$lambda$0(TaskListModel.java:33)
        at org.ovirt.engine.ui.uicommonweb.models.events.TaskListModel$lambda$0$Type.onSuccess(TaskListModel.java:33)
        at org.ovirt.engine.ui.frontend.Frontend$1.$onSuccess(Frontend.java:227) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.Frontend$1.onSuccess(Frontend.java:227) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.OperationProcessor$1.$onSuccess(OperationProcessor.java:133) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.OperationProcessor$1.onSuccess(OperationProcessor.java:133) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$5$1.$onSuccess(GWTRPCCommunicationProvider.java:270) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$5$1.onSuccess(GWTRPCCommunicationProvider.java:270) [frontend.jar:]
        at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:198) [gwt-servlet.jar:]
        at com.google.gwt.http.client.Request.$fireOnResponseReceived(Request.java:233) [gwt-servlet.jar:]
        at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:409) [gwt-servlet.jar:]
        at Unknown.onreadystatechange<(https://network-ge-5.scl.lab.tlv.redhat.com/ovirt-engine/webadmin/?locale=en_US)
        at com.google.gwt.core.client.impl.Impl.apply(Impl.java:236) [gwt-servlet.jar:]
        at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:275) [gwt-servlet.jar:]
        at Unknown.Ju/<(https://network-ge-5.scl.lab.tlv.redhat.com/ovirt-engine/webadmin/?locale=en_US)
        at Unknown.anonymous(Unknown)

Expected results:
No UI errors.

Additional info:

Comment 1 Ales Musil 2018-01-30 07:21:51 UTC
This bugs seems to appear when job which should be displayed has null instead of proper 'startTime'.

Comment 2 Benjamin Beier 2018-03-28 15:49:45 UTC
I have started using oVirt and wanted to setup my first oVirt node with local storage. I am hitting the error mentioned above every single time I am trying to use the "Host -> Management -> Configure Local Storage" window. So far I wasn't able to find a solution or workaround yet. The bug makes it impossible for me to use the local storage feature.

/var/log/ovirt-engine/ui.log:
(replaced our domain with DOMAIN in the logs)

2018-03-28 16:25:46,077+02 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-15) [] Permutation name: E0FB18866439B9B5D133F6CCB8D77350
2018-03-28 16:25:46,078+02 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-15) [] Uncaught exception: com.google.gwt.core.client.JavaScriptException: (TypeError) : b is null
        at org.ovirt.engine.ui.uicommonweb.Linq$ServerCpuPredicate.$test(Linq.java:139)
        at org.ovirt.engine.ui.uicommonweb.Linq$ServerCpuPredicate.test(Linq.java:139)
        at java.util.stream.Stream$FilterSpliterator.$lambda$0(Stream.java:632) [:1.8.0_161]
        at java.util.stream.Stream$FilterSpliterator$lambda$0$Type.accept(Stream.java:632) [:1.8.0_161]
        at java.util.Spliterators$IteratorSpliterator.$tryAdvance(Spliterators.java:459) [rt.jar:1.8.0_161]
        at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:459) [rt.jar:1.8.0_161]
        at java.util.stream.Stream$FilterSpliterator.tryAdvance(Stream.java:628) [:1.8.0_161]
        at java.util.stream.Stream$StreamSource.$findFirst(Stream.java:799) [:1.8.0_161]
        at org.ovirt.engine.ui.uicommonweb.Linq.firstOrNull(Linq.java:75)
        at org.ovirt.engine.ui.uicommonweb.models.hosts.ConfigureLocalStorageModel.$setDefaultNames8(ConfigureLocalStorageModel.java:179)
        at org.ovirt.engine.ui.uicommonweb.models.hosts.ConfigureLocalStorageModel.$lambda$0(ConfigureLocalStorageModel.java:366)
        at org.ovirt.engine.ui.uicommonweb.models.hosts.ConfigureLocalStorageModel$lambda$0$Type.onSuccess(ConfigureLocalStorageModel.java:366)
        at org.ovirt.engine.ui.frontend.Frontend$1.$onSuccess(Frontend.java:227) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.Frontend$1.onSuccess(Frontend.java:227) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.OperationProcessor$1.$onSuccess(OperationProcessor.java:133) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.OperationProcessor$1.onSuccess(OperationProcessor.java:133) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$3$1.$onSuccess(GWTRPCCommunicationProvider.java:161) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$3$1.onSuccess(GWTRPCCommunicationProvider.java:161) [frontend.jar:]
        at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:198) [gwt-servlet.jar:]
        at com.google.gwt.http.client.Request.$fireOnResponseReceived(Request.java:233) [gwt-servlet.jar:]
        at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:409) [gwt-servlet.jar:]
        at Unknown.onreadystatechange<(https://engine1.DOMAIN.net/ovirt-engine/webadmin/?locale=de_DE)
        at com.google.gwt.core.client.impl.Impl.apply(Impl.java:236) [gwt-servlet.jar:]
        at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:275) [gwt-servlet.jar:]
        at Unknown.Ju/<(https://engine1.DOMAIN.net/ovirt-engine/webadmin/?locale=de_DE)
        at Unknown.anonymous(Unknown)

2018-03-28 17:04:08,929+02 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-6) [] Permutation name: 9C125A7B3CBB18192131D290F2DA71D7
2018-03-28 17:04:08,939+02 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-6) [] Uncaught exception: com.google.gwt.core.client.JavaScriptException: (TypeError) : Cannot read property 'b' of null
        at org.ovirt.engine.ui.uicommonweb.Linq$ServerCpuPredicate.$test(Linq.java:139)
        at org.ovirt.engine.ui.uicommonweb.Linq$ServerCpuPredicate.test(Linq.java:139)
        at java.util.stream.Stream$FilterSpliterator.$lambda$0(Stream.java:632) [:1.8.0_161]
        at java.util.stream.Stream$FilterSpliterator$lambda$0$Type.accept(Stream.java:632) [:1.8.0_161]
        at java.util.Spliterators$IteratorSpliterator.$tryAdvance(Spliterators.java:459) [rt.jar:1.8.0_161]
        at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:459) [rt.jar:1.8.0_161]
        at java.util.stream.Stream$FilterSpliterator.tryAdvance(Stream.java:628) [:1.8.0_161]
        at java.util.stream.Stream$StreamSource.$findFirst(Stream.java:799) [:1.8.0_161]
        at org.ovirt.engine.ui.uicommonweb.Linq.firstOrNull(Linq.java:75)
        at org.ovirt.engine.ui.uicommonweb.models.hosts.ConfigureLocalStorageModel.$setDefaultNames8(ConfigureLocalStorageModel.java:179)
        at org.ovirt.engine.ui.uicommonweb.models.hosts.ConfigureLocalStorageModel.$lambda$0(ConfigureLocalStorageModel.java:366)
        at org.ovirt.engine.ui.uicommonweb.models.hosts.ConfigureLocalStorageModel$lambda$0$Type.onSuccess(ConfigureLocalStorageModel.java:366)
        at org.ovirt.engine.ui.frontend.Frontend$1.$onSuccess(Frontend.java:227) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.Frontend$1.onSuccess(Frontend.java:227) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.OperationProcessor$1.$onSuccess(OperationProcessor.java:133) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.OperationProcessor$1.onSuccess(OperationProcessor.java:133) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$3$1.$onSuccess(GWTRPCCommunicationProvider.java:161) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$3$1.onSuccess(GWTRPCCommunicationProvider.java:161) [frontend.jar:]
        at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:198) [gwt-servlet.jar:]
        at com.google.gwt.http.client.Request.$fireOnResponseReceived(Request.java:233) [gwt-servlet.jar:]
        at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:409) [gwt-servlet.jar:]
        at Unknown.eval(webadmin-0.js)
        at com.google.gwt.core.client.impl.Impl.apply(Impl.java:236) [gwt-servlet.jar:]
        at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:275) [gwt-servlet.jar:]
        at Unknown.eval(webadmin-0.js)

Comment 3 Benjamin Beier 2018-03-28 15:56:16 UTC
Created attachment 1414304 [details]
Dashboard Local Storage Exception

Comment 4 Arnaud DEBEC 2018-04-17 09:35:20 UTC
Exact same issue with a fresh install of oVirt Engine 4.2.2.6 and oVirt Node 4.2-2018041306.

Comment 5 Arnaud DEBEC 2018-05-02 09:24:54 UTC
By trying to create a local storage via the CLI, I realized that my Datacenter was configured as 'Shared Storage'. The error via the CLI was pretty explicit: 'Data Center must be “Local Storage”'. So first of all check this via the GUI Compute > Data Centers > 'select your DC' > Edit > Storage Type : Local

Try doing it via the ovirt-shell installed on your engine. You will have to configure your .ovirtshellrc according the documentation https://ovirt.org/develop/release-management/features/infra/cli/ en then:
add storagedomain --host-name ‘hostname’ --type ‘data’ --storage-path ‘/data/images’ --storage-type ‘localfs’ --name ‘storagename’

Comment 6 Tal Nisan 2018-09-02 15:05:39 UTC
It appears the the error Benjamin is hitting is in the Linq::ServerCpuPredicate, not the same as the original issue (although the exception is the same), moving to the UX team for help in inspection

Comment 7 Greg Sheremeta 2018-09-04 13:27:27 UTC
The original issue is UX team, but yes the issue in Comment 2 is completely different and needs its own bug. @Benjamin please open a separate bug if you are still having that issue.

Comment 8 Sandro Bonazzola 2019-01-28 09:40:47 UTC
This bug has not been marked as blocker for oVirt 4.3.0.
Since we are releasing it tomorrow, January 29th, this bug has been re-targeted to 4.3.1.

Comment 9 samuel macko 2019-06-20 12:06:54 UTC
Could you please specify verification steps?

Comment 10 Ahmad Khiet 2019-06-20 12:40:26 UTC
I have no verification steps.

the exception in this bug is the same as the bug https://bugzilla.redhat.com/show_bug.cgi?id=1679867
I tried to reproduce it, even no reproducing steps mentioned in the bug.
but after investigating it more, I found a similar bug!

Comment 11 samuel macko 2019-06-28 11:53:30 UTC
Verified on ovirt-engine 4.3.5.1-0.1.el7.
I ran webadmin sanity tests and checked for exceptions, no ui exception was thrown.

Comment 12 Sandro Bonazzola 2019-07-30 14:08:37 UTC
This bugzilla is included in oVirt 4.3.5 release, published on July 30th 2019.

Since the problem described in this bug report should be
resolved in oVirt 4.3.5 release, it has been closed with a resolution of CURRENT RELEASE.

If the solution does not work for you, please open a new bug report.