Bug 1329323 - oVirt engine errors are unhelpful
Summary: oVirt engine errors are unhelpful
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: ovirt-engine
Classification: oVirt
Component: Frontend.WebAdmin
Version: 3.6.5.1
Hardware: All
OS: All
unspecified
high
Target Milestone: ovirt-4.2.0
: ---
Assignee: bugs@ovirt.org
QA Contact: Pavel Stehlik
URL:
Whiteboard:
Depends On: 1300947 1329383 1329385 1329387
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-04-21 15:42 UTC by Fabrice Bacchella
Modified: 2017-05-15 06:55 UTC (History)
7 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2017-05-15 06:55:48 UTC
oVirt Team: UX
Embargoed:
oourfali: ovirt-4.2?
rule-engine: planning_ack?
rule-engine: devel_ack?
rule-engine: testing_ack?


Attachments (Terms of Use)

Description Fabrice Bacchella 2016-04-21 15:42:39 UTC
oVirt is a very rich product with lot a useful features. But is very difficult to use and debug.

You should give higher priority to error management. Too many times we can "generic error" in the UI, or very deep stack trace, or just plain NPE. All of this is buried in very verbose logging.

My last example, I'm trying to restore ovirt, using:
    engine-backup --mode=restore --file=/data/ovirt/backups/20160421T034001.tar.gz -scope=files

My command line is not the good one, but I have no idea why ! I just get 166 of generic usage but not a single one the specific mistake I made. A mandatory missing argument missing ? A wrong option, no idea, it didn't give an hint. 

And I have numerous example about same problems. That's a very big problem because it's failure is painful, and having no good direction for reparation, I could make the problem wore by doing wrong actions.

Comment 1 Sandro Bonazzola 2016-04-21 15:47:43 UTC
Adding tracking keyword

Comment 2 Fabrice Bacchella 2016-04-21 15:54:44 UTC
Taken from a previous mail:
I installed a oVirt stack without glusterfs. Now I want to add it. So I configured a cluster to be a gluster-enabled one. Now i want to add a gluster volume to it.

That went fine until I click Ok at the "New Volume" dialog, the answer was :

Error while executing action Create Gluster Volume: Unexpected exception

I the log, I saw :

2016-04-13 16:45:53,573 INFO  [org.ovirt.engine.core.vdsbroker.gluster.GlusterTasksListVDSCommand] (DefaultQuartzScheduler_Worker-84) [5303bffb] FINISH, GlusterTasksListVDSCommand, log id: 2e5a7991
2016-04-13 16:45:53,573 ERROR [org.ovirt.engine.core.bll.gluster.GlusterTasksSyncJob] (DefaultQuartzScheduler_Worker-84) [5303bffb] Error updating tasks from CLI: org.ovirt.engine.core.common.errors.EngineException: EngineException: org.ovirt.engine.core.vdsbroker.vdsbroker.VDSErrorException: VDSGenericException: VDSErrorException: Failed to GlusterTasksListVDS, error = The method does not exist / is not available., code = -32601 (Failed with error unexpected and code 16)
	at org.ovirt.engine.core.bll.VdsHandler.handleVdsResult(VdsHandler.java:112) [bll.jar:]
	at org.ovirt.engine.core.bll.VDSBrokerFrontendImpl.RunVdsCommand(VDSBrokerFrontendImpl.java:33) [bll.jar:]
	at org.ovirt.engine.core.bll.gluster.tasks.GlusterTasksService.runVdsCommand(GlusterTasksService.java:64) [bll.jar:]
	at org.ovirt.engine.core.bll.gluster.tasks.GlusterTasksService.getTaskListForCluster(GlusterTasksService.java:32) [bll.jar:]
	at org.ovirt.engine.core.bll.gluster.GlusterTasksSyncJob.updateGlusterAsyncTasks(GlusterTasksSyncJob.java:87) [bll.jar:]
	at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source) [:1.7.0_99]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_99]
	at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_99]
	at org.ovirt.engine.core.utils.timer.JobWrapper.invokeMethod(JobWrapper.java:81) [scheduler.jar:]
	at org.ovirt.engine.core.utils.timer.JobWrapper.execute(JobWrapper.java:52) [scheduler.jar:]
	at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [quartz.jar:]
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557) [quartz.jar:]

Failed with error unexpected and code 16, what can I do with that ?

Comment 3 Fabrice Bacchella 2016-04-21 16:03:26 UTC
 self.api = API(**self.api_connect_settings)
  File "build/bdist.macosx-10.10-x86_64/egg/ovirtsdk/api.py", line 191, in __init__
  File "build/bdist.macosx-10.10-x86_64/egg/ovirtsdk/infrastructure/proxy.py", line 115, in request
  File "build/bdist.macosx-10.10-x86_64/egg/ovirtsdk/infrastructure/connectionspool.py", line 81, in do_request
ovirtsdk.infrastructure.errors.ConnectionError: [ERROR]::oVirt API connection failure, (4, '')

Even when the connection is set to debug. What can I do with that ?

Comment 4 Fabrice Bacchella 2016-04-21 16:17:33 UTC
Another case:
2016-04-21 17:18:36,126 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.GetCapabilitiesVDSCommand] (DefaultQuartzScheduler_Worker-50) [] Command 'GetCapabilitiesVDSCommand(HostName = 
nb0104, VdsIdAndVdsVDSCommandParametersBase:{runAsync='true', hostId='edbb893a-e4a4-4fdc-acd9-df1fe694e529', vds='Host[nb0104,edbb893a-e4a4-4fdc-acd9-df1fe694e529]'})' execution failed
: org.ovirt.vdsm.jsonrpc.client.ClientConnectionException: Connection timeout
2016-04-21 17:18:36,126 ERROR [org.ovirt.engine.core.vdsbroker.HostMonitoring] (DefaultQuartzScheduler_Worker-50) [] Failure to refresh Vds runtime info: org.ovirt.vdsm.jsonrpc.client.
ClientConnectionException: Connection timeout
2016-04-21 17:18:36,126 ERROR [org.ovirt.engine.core.vdsbroker.HostMonitoring] (DefaultQuartzScheduler_Worker-50) [] Exception: org.ovirt.engine.core.vdsbroker.vdsbroker.VDSNetworkExce
ption: org.ovirt.vdsm.jsonrpc.client.ClientConnectionException: Connection timeout
        at org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerCommand.createNetworkException(VdsBrokerCommand.java:157) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerCommand.executeVDSCommand(VdsBrokerCommand.java:120) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.VDSCommandBase.executeCommand(VDSCommandBase.java:65) [vdsbroker.jar:]
        at org.ovirt.engine.core.dal.VdcCommandBase.execute(VdcCommandBase.java:33) [dal.jar:]
        at org.ovirt.engine.core.vdsbroker.ResourceManager.runVdsCommand(ResourceManager.java:467) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.VdsManager.refreshCapabilities(VdsManager.java:652) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.HostMonitoring.refreshVdsRunTimeInfo(HostMonitoring.java:119) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.HostMonitoring.refresh(HostMonitoring.java:84) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.VdsManager.onTimer(VdsManager.java:227) [vdsbroker.jar:]
        at sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source) [:1.8.0_74]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_74]
        at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_74]
        at org.ovirt.engine.core.utils.timer.JobWrapper.invokeMethod(JobWrapper.java:81) [scheduler.jar:]
        at org.ovirt.engine.core.utils.timer.JobWrapper.execute(JobWrapper.java:52) [scheduler.jar:]
        at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [quartz.jar:]
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557) [quartz.jar:]
Caused by: org.ovirt.vdsm.jsonrpc.client.ClientConnectionException: Connection timeout
        at org.ovirt.vdsm.jsonrpc.client.reactors.stomp.SSLStompClient.waitForConnect(SSLStompClient.java:107) [vdsm-jsonrpc-java-client.jar:]
        at org.ovirt.vdsm.jsonrpc.client.reactors.stomp.SSLStompClient.sendMessage(SSLStompClient.java:77) [vdsm-jsonrpc-java-client.jar:]
        at org.ovirt.vdsm.jsonrpc.client.JsonRpcClient.call(JsonRpcClient.java:73) [vdsm-jsonrpc-java-client.jar:]
        at org.ovirt.engine.core.vdsbroker.jsonrpc.FutureMap.<init>(FutureMap.java:68) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.jsonrpc.JsonRpcVdsServer.getCapabilities(JsonRpcVdsServer.java:268) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.vdsbroker.GetCapabilitiesVDSCommand.executeVdsBrokerCommand(GetCapabilitiesVDSCommand.java:15) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerCommand.executeVDSCommand(VdsBrokerCommand.java:110) [vdsbroker.jar:]
        ... 14 more

A full double stack for a plain time out ? I don't think network error should generate stack, the first line is enough.

And any way, it's not a time out, the destination host is alive, it's just my ovirt-engine that is fucked up.

Comment 5 Fabrice Bacchella 2016-04-21 16:19:35 UTC
On a host, in upgrade.log:
MainThread::DEBUG::2016-04-14 16:38:08,656::utils::689::root::(execCmd) SUCCESS: <err> = 'cp: cannot stat \xe2\x80\x98/var/run/vdsm/netconf\xe2\x80\x99: No such file or directory\n'; <rc> = 0

a DEBUG log that I didn't request, a SUCCESS with an error, a totally fucked up command.

Comment 6 Yaniv Kaul 2016-04-21 18:32:55 UTC
Thank you for the reports, but from process perspective, we need a single bug per issue. Different community developers may want to fix that or this issue, which are in different parts of the code. The above is not going to get anything fixed.

Lastly, I'd be happy if you could use a more gentle language when reporting issues.

Comment 7 Fabrice Bacchella 2016-04-21 18:43:09 UTC
This bug is not about a specific case on unhelpfull message.

I think more that the number of such things is a problem by himself, the way QA is managed at oVirt. It make using it painful even if it's a nice product full of interesting features.

Comment 8 Yaniv Kaul 2016-04-21 18:49:15 UTC
(In reply to Fabrice Bacchella from comment #7)
> This bug is not about a specific case on unhelpfull message.

Indeed, it isn't. It's a mixture of issues, from both host and engine.

> 
> I think more that the number of such things is a problem by himself, the way
> QA is managed at oVirt. It make using it painful even if it's a nice product
> full of interesting features.

We try to fix issues by reporting them to bugzilla. This one is not going to be handled. I suggest splitting.

Lastly, oVirt is not a product, but a project.

Comment 9 Yedidyah Bar David 2016-05-01 08:21:12 UTC
Pushed [1] for the issue in comment 0. I agree current bug has too many different issues discussed, thus not linking there or moving to POST.

[1] https://gerrit.ovirt.org/56872

Comment 10 Oved Ourfali 2017-05-15 06:55:48 UTC
Again, please split to bug per use-case.


Note You need to log in before you can comment on or make changes to this bug.