Bug 1340234
| Summary: | Save network configuration takes more than 3 minute makes hypervisor non responsive in RHEV-M | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Virtualization Manager | Reporter: | nijin ashok <nashok> | |
| Component: | vdsm | Assignee: | Edward Haas <edwardh> | |
| Status: | CLOSED ERRATA | QA Contact: | Michael Burman <mburman> | |
| Severity: | high | Docs Contact: | ||
| Priority: | high | |||
| Version: | 3.6.5 | CC: | bazulay, danken, lsurette, mburman, nashok, srevivo, ycui, ykaul, ylavi | |
| Target Milestone: | ovirt-4.0.0-rc | Keywords: | Performance, ZStream | |
| Target Release: | --- | |||
| Hardware: | All | |||
| OS: | Linux | |||
| Whiteboard: | ||||
| Fixed In Version: | v4.17.31 | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 1349029 (view as bug list) | Environment: | ||
| Last Closed: | 2016-08-23 20:16:16 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | Network | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 1349029 | |||
|
Description
nijin ashok
2016-05-26 19:22:28 UTC
It seems like the delay is here.
node_persist_owned_ifcfgs() {
for f in $(find "$NET_CONF_DIR" -type f); do
if grep -q "# Generated by VDSM version" "$f"; then
ovirt_store_config "$f"
fi
done
}
ovirt_store_config() {
for p in "$@"; do
python <<EOP
from ovirtnode.ovirtfunctions import ovirt_store_config_retnum
ovirt_store_config_retnum("$p")
ovirtfunctions.py is called separately for each ifcfg file and it seems like it's taking more than 4 seconds for ovirtfunctions.py to load in each iterate.
===
time python /usr/lib/python2.7/site-packages/ovirtnode/ovirtfunctions.py
real 0m4.041s
user 0m3.587s
sys 0m0.178s
===
For customer, we have 52 ifcfg file to persist.
grep -ir "Generated by VDSM version" etc/sysconfig/network-scripts/|wc -l
52
Could you attach supervdsm.log to BZ? This bug might have been introduced by https://gerrit.ovirt.org/#/c/44929/3/vdsm/network/configurators/ifcfg.py which was required to solve bug 1252268. Actually, it is more likely that it's due to https://gerrit.ovirt.org/#/q/Ibc717b86194a32c050d346e235a5c35fd318e1ff - one of the many patches done to solve bug 1203422. > Dan, am i right about the patch number?
yes you are.
I am checking with customer if he can test this.
Meanwhile I tried in my test environment with 40 logical networks.
Before it was taking about 3+ minute.
jsonrpc.Executor/0::DEBUG::2016-06-01 16:13:00,173::__init__::503::jsonrpc.JsonRpcServer::(_serveRequest) Calling 'Host.setSafeNetworkConfig' in bridge with {}
jsonrpc.Executor/0::DEBUG::2016-06-01 16:16:25,880::__init__::533::jsonrpc.JsonRpcServer::(_serveRequest) Return 'Host.setSafeNetworkConfig' in bridge with True
After applying the patch, the process finished within few milliseconds!
jsonrpc.Executor/1::DEBUG::2016-06-01 16:23:00,187::__init__::503::jsonrpc.JsonRpcServer::(_serveRequest) Calling 'Host.setSafeNetworkConfig' in bridge with {}
jsonrpc.Executor/1::DEBUG::2016-06-01 16:23:00,228::__init__::533::jsonrpc.JsonRpcServer::(_serveRequest) Return 'Host.setSafeNetworkConfig' in bridge with True
Sorry, there was some error when I copied the file. The correct result after applying the patch in my test environment is
jsonrpc.Executor/5::DEBUG::2016-06-01 16:36:00,562::__init__::503::jsonrpc.JsonRpcServer::(_serveRequest) Calling 'Host.setSafeNetworkConfig' in bridge with {}
jsonrpc.Executor/5::DEBUG::2016-06-01 16:36:03,222::__init__::533::jsonrpc.JsonRpcServer::(_serveRequest) Return 'Host.setSafeNetworkConfig' in bridge with True
supervdsm log
MainProcess|jsonrpc.Executor/5::DEBUG::2016-06-01 16:36:00,565::utils::671::root::(execCmd) /usr/bin/taskset --cpu-list 0-1 /usr/share/vdsm/vdsm-store-net-config unified (cwd None)
MainProcess|jsonrpc.Executor/5::DEBUG::2016-06-01 16:36:03,221::utils::689::root::(execCmd) SUCCESS: <err> = ''; <rc> = 0
MainProcess|jsonrpc.Executor/5::DEBUG::2016-06-01 16:36:03,222::supervdsmServer::123::SuperVdsm.ServerCallback::(wrapper) return setSafeNetworkConfig with None
So it's taking only 3 seconds to complete.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHEA-2016-1671.html |