| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-10-31 | |||
| 15:35:55 | mriedem | https://docs.openstack.org/nova/train/configuration/config.html#database.connection_recycle_time defaults to 1 hour, i wonder if we should drop that to like 10 minutes or something - not sure it would help anything | |
| 15:37:43 | dansmith | ah, like max_requests | |
| 15:37:53 | dansmith | the failure happens really early in the run though right? | |
| 15:38:06 | mriedem | post-upgrade? | |
| 15:38:36 | dansmith | yeah | |
| 15:38:42 | dansmith | early after starting services Imean | |
| 15:39:05 | dansmith | so if you set recycle to 1s maybe it would be doing lots of reconnecting and we could see if that matters, but it doesn't seem like a fix | |
| 15:39:08 | dansmith | connection+debug=100 maybe? | |
| 15:39:11 | mriedem | yeah i think so. last i checked the funny thing is we run verify_instance post-upgrade which is ok and then grenade tries to create a server or run tempest smoke and things fall over | |
| 15:39:59 | dansmith | yeah, but verify_instance wouldn't be the scheduler, | |
| 15:40:05 | dansmith | so if the scheduler is the only one affected somehow... | |
| 15:41:18 | dansmith | hmm | |
| 15:41:23 | dansmith | is scheduler getting restarted at all? | |
| 15:41:27 | mriedem | it's not only the scheduler, just mostly. some jobs hit it in the api too | |
| 15:41:37 | mriedem | yes scheduler gets restarted in the grenade run | |
| 15:41:53 | dansmith | I don't see it in the log | |
| 15:42:08 | dansmith | oh, I'm looking at a normal job | |
| 15:42:11 | openstack | Launchpad bug 1844929 in OpenStack Compute (nova) "grenade jobs failing due to "Timed out waiting for response from cell" in scheduler" [High,Confirmed] | |
| 15:42:11 | mriedem | i have some notes here https://bugs.launchpad.net/nova/+bug/1844929/comments/3 | |
| 15:42:33 | dansmith | I know, I read those previously, but I'm trying to avoid re-reading them to not get stuck down a given line of thinking | |
| 15:42:43 | mriedem | we restart the scheduler and it queries compute nodes and services from the cell1 db at that time ok | |
| 15:42:50 | mriedem | ack | |
| 15:43:18 | dansmith | I know we should, | |
| 15:43:38 | dansmith | I was just wondering if maybe we don't restart it actually and the first attempt fails | |
| 15:44:07 | dansmith | so, | |
| 15:44:08 | dansmith | https://storage.gra1.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_8ec/688419/2/check/grenade-py3/8ec542b/logs/screen-n-sch.txt.gz | |
| 15:44:16 | dansmith | I see it started at 14:07:00 only | |
| 15:44:48 | dansmith | are we not keeping the log or something maybe? | |
| 15:46:00 | mriedem | it looks like that job failed smoke tests on the old side, | |
| 15:46:03 | mriedem | so never got to upgrade | |
| 15:46:11 | mriedem | https://storage.gra1.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_8ec/688419/2/check/grenade-py3/8ec542b/logs/grenade.sh.summary.txt.gz | |
| 15:46:20 | dansmith | okay but the same error | |
| 15:46:36 | mriedem | oh that's interesting | |
| 15:51:33 | dansmith | the first instance of that happens well after the last "aborted connection" message in the mysql error log | |
| 15:51:54 | dansmith | which makes me think all those errors in the mysql log are from things we're doing during devstack setup | |
| 15:52:02 | dansmith | like one-shot client calls or something | |
| 15:53:09 | dansmith | and 18 minutes after the last "ready for connections" message from mysql | |
| 15:57:15 | dansmith | doesn't really look like any sort of unreasonable load or kernel events around that time | |
| 16:11:35 | dansmith | mriedem: https://review.opendev.org/#/c/692402/ | |
| 16:12:14 | dansmith | mriedem: have any tricks to get a lot of grenade runs on that? | |
| 16:12:39 | dansmith | I know in the past we'd create like ten noop patches that depends-on something like that to get 10x the runs | |
| 16:12:47 | dansmith | seems irresponsible in today's climate :) | |
| 16:16:38 | mriedem | you could create a grenade patch that depends-on it | |
| 17:05:54 | openstackgerrit | Lee Yarwood proposed openstack/nova master: WIP service: Do not perform version checks for deleted services https://review.opendev.org/692412 | |
| 17:06:05 | lyarwood | melwitt: ^ when you're back, I'm likely missing something obvious here. | |
| 17:11:48 | mriedem | lyarwood: didn't mel already fix that bug in the Instance object when lazy-loading services? | |
| 17:12:25 | mriedem | https://review.opendev.org/#/c/582408/ | |
| 17:14:19 | lyarwood | mriedem: that was the original bug when running through this upgrade scenario yeah but instead of ServiceNotFound we now see ServiceTooOld raised with that fix applied | |
| 17:25:06 | mdbooth | sean-k-mooney: https://review.opendev.org/#/c/687957/ | |
| 17:29:08 | sean-k-mooney | mdbooth: thanks for the review. ill go though it tommorow im just about to go have dinner | |
| 17:29:28 | mdbooth | sean-k-mooney: ack | |
| 17:30:20 | sean-k-mooney | by the way i belive the way im comparing the numa toplogy constirant should compare things like pages size too | |
| 17:30:58 | sean-k-mooney | we dont actully want to try and fit the request to a host and compare that we just want to extrat the contaritns and assert they dont change | |
| 17:31:59 | sean-k-mooney | i can add some more test cases however to test different type of constraitn changes | |
| 17:32:24 | sean-k-mooney | to ensure that change hugpeage also will be detected ectra | |
| 17:32:52 | sean-k-mooney | i assume that is what you ment by poking at different levels | |
| 17:33:21 | mdbooth | sean-k-mooney: Yeah, I wasn't 100% on that, although I *did* go look up 1) the implementation of obj_to_primitive(), 2) the implementation of dict.__eq__ in python ;) | |
| 17:33:44 | mdbooth | sean-k-mooney: I think it's ok, I was just thinking for completeness | |
| 17:34:08 | mdbooth | But about the exception, I think it's important to positively assert that your last test case is being rejected for the reason you expect | |
| 17:34:24 | mdbooth | Rather than for some other, coincidental reason | |
| 17:34:24 | sean-k-mooney | ya i can do that | |
| 17:34:30 | mdbooth | (It is, btw, I checked that too) | |
| 17:34:40 | sean-k-mooney | the self.assertRaisss returns the exception raised | |
| 17:34:46 | mdbooth | It does | |
| 17:34:52 | sean-k-mooney | so i can save it to a var and then do more asserts | |
| 17:36:35 | sean-k-mooney | im pretty sure we can do that anyway | |
| 17:37:16 | sean-k-mooney | mdbooth: https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRaises | |
| 17:37:57 | sean-k-mooney | i know we can get teh exception via the context manager apparch but i think the non context manager form just returns the exception | |
| 17:38:06 | mdbooth | sean-k-mooney: You can do both | |
| 17:38:10 | mdbooth | You can do: | |
| 17:38:17 | mdbooth | ex = self.assertRaises(...) | |
| 17:38:22 | sean-k-mooney | yep | |
| 17:38:35 | mdbooth | Anyway, I don't care what colour the bike shed is ;) | |
| 17:38:38 | sean-k-mooney | so ill leave the exsting test tehn i can assert after on the body | |
| 17:39:09 | sean-k-mooney | well it was more that there is an easy way to be more specific for that last case | |
| 17:39:33 | sean-k-mooney | i can assert an excetion is raised and then assert what it was as you suggested | |
| 18:01:36 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Reset vm_state to original value if rebuild claim fails https://review.opendev.org/692185 | |
| 18:24:15 | melwitt | mdbooth, lyarwood: thanx for the fast reviews on the get_hash_str patch! | |
| 18:54:46 | efried | mriedem: flavors were previously associated with instances just by ID, right? | |
| 18:55:11 | efried | But that was problematic because when you changed a flavor, you could no longer tell what was used to create the instance... | |
| 18:55:23 | efried | so we started copying the flavor content into the instance | |
| 18:55:30 | efried | and now we... no longer even store the original flavor ID? | |
| 18:59:52 | mriedem | we saved off the flavor information for a long time...not sure when that started, but it used to be in system_metadata rather than instance_extra | |
| 19:00:08 | melwitt | I think we still do store it, as instance_type column in the instances table | |
| 19:00:17 | mriedem | yes, we do | |
| 19:00:37 | mriedem | the embedded instance flavor was migrated from system_metadata to instance_extra back in kilo - dan did that work | |
| 19:01:03 | mriedem | instances.instance_type_id is the flavor.id | |
| 19:01:09 | mriedem | it's set on create and resize | |
| 19:01:27 | efried | is it used for anything, or just there kind of as a historical artifact? | |
| 19:02:01 | mriedem | quick grok shows the simple tenant usage api uses it | |
| 19:02:04 | mriedem | but probably shouldn't | |
| 19:02:30 | efried | okay. | |
| 19:02:31 | mriedem | oh it's only used there if the instance.flavor doesn't load | |
| 19:02:34 | mriedem | that's super old compat code though | |
| 19:02:51 | mriedem | it's used for filtering servers in GET /servers | |
| 19:03:07 | mriedem | and it's in the Migration object | |
| 19:03:13 | mriedem | old/new_instance_type_id | |
| 19:03:34 | mriedem | i think it's mostly vestigial though | |
| 19:03:36 | efried | And all of this (copying the flavor rather than just referring to it) is so things like rebuild behave sanely when the flavor is changed out of band. | |
| 19:03:37 | efried | right? | |