| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-01-22 | |||
| 17:38:58 | dansmith | mriedem: you marked this bug as wishlist so I assume you're okay with it? (having a random previous ironic microversion the driver is willing to use) | |
| 17:39:19 | dansmith | jroll: because some library is crashing conductor? | |
| 17:39:30 | jroll | dansmith: suggestions welcome. especially if you can figure out the conductor exploding | |
| 17:40:05 | dansmith | jroll: everything we add after this will have to either bump that "previous" thing or add infrastructure and handling for the newer feature, IFF the version is new enough | |
| 17:40:44 | edleafe | efried: it's so cute that you think mriedem is kidding. | |
| 17:40:57 | dansmith | jroll: is it some action that causes conductor to crash and is a restart enough? It's odd since conductor shouldn't be related to ironic at all | |
| 17:41:09 | mriedem | dansmith: which bug? | |
| 17:41:55 | dansmith | mriedem: well, it's a combo thing.. they want "N-1 ironic support in the driver" as well as this configdrive optionality which uses it, which I guess works around some other unrelated issue by chance | |
| 17:42:02 | dansmith | mriedem: https://review.openstack.org/#/c/535786/5 | |
| 17:42:23 | jroll | dansmith: debugging notes so far are at line 47 here: https://etherpad.openstack.org/p/IronicWhiteBoard . as far as we can tell, upon upgrade, some shared library is being deleted, that is being loaded at runtime in the conductor | |
| 17:42:32 | jroll | see also https://bugs.launchpad.net/ironic/+bug/1744139 | |
| 17:42:33 | openstack | Launchpad bug 1744139 in Ironic "Grenade job fails due to systemd stopping n-cpu" [Critical,In progress] - Assigned to Julia Kreger (juliaashleykreger) | |
| 17:42:54 | dansmith | jroll: right, so just a restart of the service because of that issue would be all we need right? | |
| 17:43:12 | dansmith | that seems like a reasonable thing to have in a from-foo script in grenade with a note about the shared library thing | |
| 17:43:16 | jroll | dansmith: pike conductor won't start with queens version of global-reqs | |
| 17:43:49 | dansmith | jroll: yikes, well that kinda breaks upgrades across the board for everyone then | |
| 17:44:09 | jroll | dansmith: yeah, you're the first to respond to cries for help here :P | |
| 17:45:10 | mriedem | jroll: note that dan and i were out last week too on unrelated adventures | |
| 17:45:24 | sean-k-mooney | dansmith: only if you use systemd. if you use kolla you should be fine | |
| 17:45:46 | sean-k-mooney | dansmith: well i guess it breaks the gate for everyone | |
| 17:45:55 | dansmith | jroll: this N-1 patch is a really bad way to work around this grenade breakage, IMHO, because it sounds like you're suggesting changing the ordering to "fix" things with help from this | |
| 17:46:13 | jroll | sean-k-mooney: s/use systemd/run other services co-located with nova conductor without some isolation/ | |
| 17:47:42 | jroll | dansmith: don't disagree - I know smart people spent a lot of time debugging the real issue and didn't get very far. I jumped in to help write this patch, which is something we want anyway. (of course we'll need to document this special case as well) | |
| 17:48:08 | mriedem | has grenade ever supported n-1 nova-conductor with n requirements? i thought with multinode grenade, we always brought down the controller services and brought everything up with N code and dependencies, and left the subnode n-cpu at N-1? | |
| 17:48:25 | dansmith | mriedem: right, conductor can't be backlevel | |
| 17:48:48 | jroll | ironic's grenade has always supported n-1 nova with n ironic | |
| 17:48:49 | dansmith | zero detail on the reason for the segv in the logs it looks like | |
| 17:48:53 | sean-k-mooney | johnthetubaguy: oh ya i had not read the full bug but i see its really a python lib issue so ya unless you use contaienrs or other isolation mechanisum(venvs ...) your kindo of screwed | |
| 17:49:05 | sean-k-mooney | * jroll not johnthetubaguy | |
| 17:49:10 | mriedem | jroll: sure but that's different, | |
| 17:49:12 | dansmith | jroll: we're talking about nova-conductor and the rest of nova | |
| 17:49:35 | mriedem | and the release notes in nova have always said, "make sure you upgrade ironic first before nova" which is how we always hedged against version discovery/negotiation | |
| 17:49:53 | dansmith | so I'm pretty hard -2 on working around this issue, which will break lots of people, by changing the upgrade order rules in the eleventh hour | |
| 17:50:01 | dansmith | independent of whether or not we support an n-1 ironic | |
| 17:50:05 | jroll | dansmith: mriedem: right, we haven't upgraded nova at all. but upgrading ironic upgrades a number of libraries. we don't restart n-cond with the new libraries, but somehow at runtime it's causing these segfaults | |
| 17:50:20 | jroll | sure, if someone can help fix the actual issue, I'm happy to kill this patch | |
| 17:50:21 | dansmith | jroll: yep, I get that as the cause here | |
| 17:50:47 | dansmith | we probably need gate/devstack/grenade people help here to capture a core or something | |
| 17:51:09 | dansmith | jroll: is there any temporal locality about when this started happening related to some bump in g-reqs? | |
| 17:51:10 | jroll | sorry, was pointing out that how nova does grenade is irrelevant here | |
| 17:51:30 | dansmith | jroll: sure, the ordering of services within grenade shouldn't change to cover this up, is what Imeant | |
| 17:51:32 | jroll | dansmith: not sure offhand, TheJulia do you know? | |
| 17:51:56 | jroll | :) | |
| 17:52:11 | dansmith | I see now why it affects conductor, because of the worker forking, which likely means it could affect other things the same way under load | |
| 17:52:38 | TheJulia | ironic is a plugin, aiui, we're stuck with the order of ironic after nova | |
| 17:52:53 | openstackgerrit | Jay Pipes proposed openstack/nova master: tests for alloc candidates with nested and traits https://review.openstack.org/531899 | |
| 17:52:54 | openstackgerrit | Jay Pipes proposed openstack/nova master: _get_trees_matching_all_resources() sum children https://review.openstack.org/534866 | |
| 17:52:54 | openstackgerrit | Jay Pipes proposed openstack/nova master: add test for scenario with sum of child resources https://review.openstack.org/534339 | |
| 17:52:55 | openstackgerrit | Jay Pipes proposed openstack/nova master: WIP - populate alloc cands for trees https://review.openstack.org/534968 | |
| 17:52:55 | openstackgerrit | Jay Pipes proposed openstack/nova master: add _get_usages_from_trees() function https://review.openstack.org/534967 | |
| 17:52:56 | openstackgerrit | Jay Pipes proposed openstack/nova master: validate provider summary structure https://review.openstack.org/536516 | |
| 17:52:59 | dansmith | no, ironic goes before nova, which is why this is happening, right? | |
| 17:53:09 | TheJulia | no | |
| 17:53:17 | jroll | we disable the nova upgrade altogether in our rolling upgrades test | |
| 17:53:37 | dansmith | ah, well, then the same difference | |
| 17:53:41 | TheJulia | the operational order of upgade as defined in grenade is nova before ironic can be even upgraded, however things go sideways in the logs starting around swift/glance being updated | |
| 17:53:44 | openstackgerrit | Sylvain Bauza proposed openstack/nova master: libvirt: pass the mdevs when rebooting the guest https://review.openstack.org/533818 | |
| 17:53:44 | openstackgerrit | Sylvain Bauza proposed openstack/nova master: Recreate mediated devices on reboot https://review.openstack.org/533642 | |
| 17:53:45 | openstackgerrit | Sylvain Bauza proposed openstack/nova master: WIP: Avoid suspending guest with attached vGPUs https://review.openstack.org/535693 | |
| 17:54:05 | dansmith | going before isn't a solution because it changes the ordering, which you're forcing by just disabling the nova upgrade | |
| 17:54:29 | TheJulia | going before requires retooling grenade _or_ moving ironic's upgrade scripting into grenade | |
| 17:54:41 | TheJulia | both have been objected to in the past | |
| 17:54:54 | dansmith | and changing the expectations of the operators, documentation, and anything else that may be different as a result | |
| 17:55:30 | jroll | sorry, we got off-track a bit - TheJulia, I meant to ask if you know if there are any g-r bumps around the same time as this started happening? (I'm attempting to find that right now) | |
| 17:55:35 | TheJulia | Ironic has always stated that ironic must be upgraded prior to nova, however some nova contributors have expressed desire that ironic can be upgrded earlier. The API pin is what kills us | |
| 17:56:07 | TheJulia | jroll: I don't believe | |
| 17:56:11 | dansmith | you said "goes before" and "people want earlier" which doesn't seem different to me | |
| 17:56:24 | TheJulia | I don't believe so, however we had two different grenade breaks in about 24 hours | |
| 17:56:25 | dansmith | why is nova-conductor not segfaulting like crazy after the thing that upgrades g-reqs (swift/glance) in other jobs? | |
| 17:56:49 | TheJulia | I think because it gets restarted | |
| 17:56:55 | dansmith | or is it and we don't notice because we don't care until after? | |
| 17:57:12 | jroll | I think nova gets upgraded first in most grenade runs, right? | |
| 17:57:17 | dansmith | okay and so it matters for you because you never upgrade nova at the end? | |
| 17:57:23 | TheJulia | the state it is left in prior to that restart is referring to a bunch of modules/libraries/paths that have been deleted due to prior python module upgrades | |
| 17:57:30 | dansmith | jroll: no I don't think so | |
| 17:57:53 | jroll | hm | |
| 17:58:25 | TheJulia | just restarting didn't work because of a sqlalchemy change | |
| 17:58:54 | TheJulia | since python requirements no longer match up because some processes have upgraded parts and pieces of the libraries | |
| 17:59:09 | sean-k-mooney | TheJulia: ie ironic installed new sqlalcamy and since nova is not upgraded its not compatible? | |
| 17:59:15 | TheJulia | sean-k-mooney: no | |
| 17:59:21 | TheJulia | Ironic has not yet upgraded at that point | |
| 17:59:48 | TheJulia | it is earlier on in the glance execution | |
| 17:59:55 | dansmith | what is the sqlalchemy fail? because that seems like a bad thing | |
| 18:00:31 | TheJulia | yes, an argument was removed from sqlalchemy and oslo_db changed accordingly | |
| 18:00:37 | TheJulia | I believe | |
| 18:01:55 | TheJulia | https://github.com/openstack/oslo.db/commit/4a727233dc2b7d1021ed7932d2cd27d8053dca31 | |
| 18:03:02 | jroll | looks like oslo.middleware 3.34.0, oslo.utils 3.35.0, and osprofiler 1.15.1 are the most relevant g-r updates | |
| 18:03:03 | TheJulia | jroll: but also, our grenade jobs were failing due to a neutron change for about 24-36 hours prior to that | |
| 18:03:09 | sean-k-mooney | is this for master? g-r for SQLAlchemy on master has a minium of 1.0.10 and pike has an upperconstaint of 1.1.12 so you should be able to install master without needing to upgrade SQLAlchemy | |
| 18:03:09 | dansmith | so some glue around this change might get us out of the jam? https://review.openstack.org/#/c/501073/1/nova/db/sqlalchemy/api.py | |
| 18:03:38 | jroll | TheJulia: oh right, were they getting into the upgrade bits? | |
| 18:03:40 | sean-k-mooney | i guess it upgrades because we allway install the newest requirement allowed in greade | |
| 18:03:46 | dansmith | I'd guess that's just a library API breakage in oslo.db | |
| 18:04:15 | TheJulia | jroll: what do you mean? | |
| 18:04:39 | jroll | TheJulia: with the neutron failure, was that before or after the upgrade, do you remember? | |
| 18:05:03 | dansmith | TheJulia: yeah, so that commit you linked from oslo.db needs to be graceful I think as it's an API breakage, AFAICT | |
| 18:05:18 | TheJulia | before, neutron's upgrade would fail | |
| 18:05:27 | jroll | TheJulia: ah, thanks. | |
| 18:05:28 | TheJulia | because of networking-generic-swtich | |
| 18:05:49 | dansmith | or, maybe since it was deprecated we need to backport a fix to nova pike to stop passing it? | |