| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-07-25 | |||
| 19:30:39 | dansmith | like, I thought we had an argument about that | |
| 19:31:13 | mriedem | well, if you've got a slow subnode then i'm not sure what the other options are | |
| 19:31:31 | mriedem | we have the periodic task, but that's still a race window | |
| 19:31:34 | dansmith | agreed, I just thought we were told not to | |
| 19:32:27 | mriedem | dansmith: isn't it fun we're having the same conversation we had almost exactly 6 months ago?! | |
| 19:32:34 | mriedem | except i was in cabo san lucas at that time, which was more fun | |
| 19:33:52 | mriedem | so, i dont think this is a problem in your fleetify change which is the key point | |
| 19:34:00 | dansmith | mriedem: do these graphs do anything for you? http://docs-draft.openstack.org/83/487183/1/check/gate-nova-docs-ubuntu-xenial/ef53873//doc/build/html/user/cellsv2_layout.html | |
| 19:34:00 | mriedem | it's just a latent thing we aren't handling well in our infra | |
| 19:34:01 | dansmith | mostly the second one | |
| 19:34:11 | dansmith | okay | |
| 19:34:44 | openstackgerrit | Ildiko Vancsa proposed openstack/nova master: Translate the return value of attachment_create and _update https://review.openstack.org/486194 | |
| 19:35:10 | mriedem | dansmith: looks pretty good | |
| 19:35:38 | mriedem | the first graph is kind of a webby mess | |
| 19:35:40 | dansmith | wish I could fix a few visual aberrations on it, but it took a lot of screwing around to make it look this good | |
| 19:36:11 | dansmith | I spent less time on the first one I can muck some more | |
| 19:40:06 | sdague | mriedem: ok, so have you confirmed if the 3 node is voting yet? | |
| 19:40:10 | openstackgerrit | Moshe Levi proposed openstack/nova master: hardware offload support for openvswitch https://review.openstack.org/398265 | |
| 19:40:42 | sdague | mriedem: I thought we were doing discover hosts at the end of the d-g run? | |
| 19:41:55 | mriedem | sdague: we are, | |
| 19:42:07 | mriedem | but the compute node getting created is asynchronous to that | |
| 19:42:18 | mriedem | the 3-node job could be slowing down the controller services just enough to hit the latent window | |
| 19:42:36 | sdague | because the startup of nova-compute takes that long? | |
| 19:43:14 | sdague | so the race is that nova-compute service start doesn't make it to the db before discover hosts runs? | |
| 19:44:59 | mriedem | yes | |
| 19:45:19 | mriedem | +1 on https://review.openstack.org/#/c/477556/ and my debug notes are all in there | |
| 19:46:36 | sdague | so... related, what's the deal with the stack trace here - http://logs.openstack.org/56/477556/5/experimental/gate-tempest-dsvm-neutron-dvr-ha-multinode-full-ubuntu-xenial-nv/432c235/logs/subnode-3/screen-n-cpu.txt.gz#_Jul_25_15_06_55_309283 | |
| 19:47:23 | mriedem | that's the thing where the libvirt starts up and tries to enable itself | |
| 19:47:54 | sdague | ok, so we're going to stacktrace on every clean start | |
| 19:48:06 | mriedem | https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L3563 | |
| 19:48:09 | mriedem | sdague: that's been around | |
| 19:48:11 | mriedem | it's not a result of this change | |
| 19:48:19 | sdague | mriedem: sure | |
| 19:48:23 | sdague | it's just not good | |
| 19:48:37 | mriedem | yeah, i don't like it either | |
| 19:48:42 | sdague | ok, http://logs.openstack.org/56/477556/5/experimental/gate-tempest-dsvm-neutron-dvr-ha-multinode-full-ubuntu-xenial-nv/432c235/logs/subnode-3/screen-n-cpu.txt.gz#_Jul_25_15_07_02_323379 is where the compute node is built, that's about 7 seconds later | |
| 19:48:54 | mriedem | yes | |
| 19:49:51 | mriedem | i'm not sure why these stacktrace | |
| 19:50:21 | mriedem | i guess because of https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L3567 ? | |
| 19:50:33 | mriedem | so it hits the generic Exception block as ComputeHostNotFound_Remote? | |
| 19:50:39 | openstackgerrit | Dan Smith proposed openstack/nova master: [WIP] Add some more cellsv2 doc goodness https://review.openstack.org/487183 | |
| 19:52:56 | sdague | mriedem: yeh | |
| 19:59:42 | sdague | mriedem: do we have a way of telling that nova-compute is ready. Is that resource tracker at 07_02 the event we need? | |
| 20:00:26 | openstackgerrit | Merged openstack/nova master: API ref: associate floating IP requires Active status https://review.openstack.org/363642 | |
| 20:00:48 | sdague | I'm trying to think about who should wait for what to get us there. Is there something we could tell from the subnode easily about it being ready so we knew we were in the clear when stack.sh finished? | |
| 20:01:18 | mriedem | sdague: our docs tell you to run 'nova service-list --binary nova-compute' and make sure the compute shows up before you run discover_hosts | |
| 20:02:37 | mriedem | because that API iterates all cells and gathers up the services running in them | |
| 20:02:42 | mriedem | so the host mapping isn't required for that | |
| 20:03:24 | sdague | so we could put a flag in to wait for compute | |
| 20:03:29 | sdague | and run: nova service-list --host `hostname` --binary nova-compute | |
| 20:03:43 | sdague | on the child until it is true? | |
| 20:08:00 | dansmith | not on the child, on the main node | |
| 20:08:41 | mriedem | right we run discover_hosts from the primary | |
| 20:08:48 | mriedem | b/c it needs to get to the api db to find the cell mappings | |
| 20:08:58 | mriedem | and the compute nodes don't have access to that | |
| 20:09:00 | dansmith | well and you need the main node to do the waiting | |
| 20:09:16 | dansmith | because it's going to run tests that need to wait until all the nodes are up | |
| 20:10:52 | mriedem | this is what i see for the 'host is not mapped to any cell' failures in voting jobs | |
| 20:10:57 | mriedem | http://logstash.openstack.org/#dashboard/file/logstash.json?query=message%3A%5C%22Host%5C%22%20AND%20message%3A%5C%22is%20not%20mapped%20to%20any%20cell%5C%22%20AND%20tags%3A%5C%22console%5C%22%20AND%20voting%3A1%20AND%20build_status%3A%5C%22FAILURE%5C%22&from=7d | |
| 20:11:24 | mriedem | they are all grenade multinode jobs | |
| 20:12:34 | openstackgerrit | Dan Smith proposed openstack/nova master: Add some more cellsv2 doc goodness https://review.openstack.org/487183 | |
| 20:26:01 | sdague | dansmith: if the child doesn't return until n-cpu has checked in, that also works, right? | |
| 20:26:16 | sdague | basically make stack.sh synchronous on nova-compute being up | |
| 20:27:31 | dansmith | sdague: by child you mean the subnode right? | |
| 20:32:27 | mriedem | right so there are two places you could do that in the ComputeManager, | |
| 20:32:29 | mriedem | 1. init_host() | |
| 20:32:33 | mriedem | 2. pre_start_hook() | |
| 20:32:38 | mriedem | the latter already tries to get the compute node | |
| 20:32:46 | mriedem | *post_start_hook() i mean | |
| 20:33:07 | mriedem | damn, sorry, no i meant pre_start_hook | |
| 20:33:51 | mriedem | i did think that pre_start_hook should do it | |
| 20:34:00 | mriedem | because it calls update_available_resource_for_node | |
| 20:34:11 | mriedem | which calls rt.update_available_resource | |
| 20:34:32 | sdague | dansmith: yeh | |
| 20:34:32 | mriedem | which should then do the init compute node stuff | |
| 20:34:44 | mriedem | so i'm not entirely sure why that doesn't happen in the pre_start_hook phase | |
| 20:35:57 | sdague | mriedem: are you sure it didn't? | |
| 20:37:51 | mriedem | i'm not sure no | |
| 20:37:52 | mriedem | i can dig | |
| 20:38:06 | mriedem | my shovel is going to be pretty gd blunt after the end of this day | |
| 20:38:15 | sdague | mriedem: I was assuming that virt driver init host just took that long to start | |
| 20:38:28 | mriedem | the virt driver init_host doesn't do much | |
| 20:38:44 | mriedem | at least for the libvirt driver, it registers event listeners and connects to libvirt | |
| 20:39:11 | mriedem | ok so this is a subnode starting up | |
| 20:39:12 | mriedem | http://logs.openstack.org/79/487179/1/check/gate-tempest-dsvm-neutron-multinode-full-ubuntu-xenial-nv/1dd9db5/logs/subnode-2/screen-n-cpu.txt.gz#_Jul_25_19_30_42_125360 | |
| 20:39:16 | mriedem | Jul 25 19:30:42.125360 ubuntu-xenial-2-node-osic-cloud1-disk-10073644-745537 nova-compute[711]: INFO nova.service [-] Starting compute node (version 16.0.0) | |
| 20:39:30 | mriedem | that's in nova.service.Service.start() | |
| 20:40:15 | mriedem | then you see the libvirt event stuff | |
| 20:41:03 | mriedem | then you see this from the libvirt driver http://logs.openstack.org/79/487179/1/check/gate-tempest-dsvm-neutron-multinode-full-ubuntu-xenial-nv/1dd9db5/logs/subnode-2/screen-n-cpu.txt.gz#_Jul_25_19_30_42_150823 | |
| 20:41:10 | mriedem | because the compute node doesn't exist yet | |
| 20:41:41 | mriedem | then you see this in the compute manager http://logs.openstack.org/79/487179/1/check/gate-tempest-dsvm-neutron-multinode-full-ubuntu-xenial-nv/1dd9db5/logs/subnode-2/screen-n-cpu.txt.gz#_Jul_25_19_30_44_394800 | |
| 20:41:49 | mriedem | which is from _get_compute_nodes_in_db | |
| 20:43:18 | mriedem | i'm not sure why that traces | |
| 20:43:58 | mriedem | that warning is here https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L6627 | |
| 20:47:28 | mriedem | anyway then we call the resource tracker https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L6602 | |
| 20:47:44 | mriedem | http://logs.openstack.org/79/487179/1/check/gate-tempest-dsvm-neutron-multinode-full-ubuntu-xenial-nv/1dd9db5/logs/subnode-2/screen-n-cpu.txt.gz#_Jul_25_19_30_44_399281 | |
| 20:47:52 | mriedem | e_tracker.py:609}} | |
| 20:47:52 | mriedem | Jul 25 19:30:44.399281 ubuntu-xenial-2-node-osic-cloud1-disk-10073644-745537 nova-compute[711]: DEBUG nova.compute.resource_tracker [None req-9286123e-31d0-45c4-a951-fe1e3947db00 None None] Auditing locally available compute resources for ubuntu-xenial-2-node-osic-cloud1-disk-10073644-745537 (node: ubuntu-xenial-2-node-osic-cloud1-disk-10073644-745537) {{(pid=711) update_available_resource /opt/stack/new/nova/nova/compute/res | |
| 20:49:41 | mriedem | then we should get in here https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L488 | |
| 20:50:43 | mriedem | and we'll hit this https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L709 | |