Earlier  
Posted Nick Remark
#openstack-nova - 2018-01-10
16:21:51 cfriesen mriedem: I haven't actively
16:22:04 cfriesen mriedem: sfinucan refreshed one of them in November
16:22:55 mriedem maciejjozefczyk: so i'm trying to figure out why the initial PUT for inventories for that compute node doesn't fail
16:23:05 mriedem like, the first time the compute is created
16:23:28 maciejjozefczyk mriedem: Im curious too
16:23:36 maciejjozefczyk mriedem: also looking
16:24:06 mriedem on the first PUT we'd get here https://github.com/openstack/nova/blob/master/nova/objects/resource_provider.py#L371
16:24:23 mriedem which also checks capacity https://github.com/openstack/nova/blob/master/nova/objects/resource_provider.py#L200
16:25:03 cdent at create time is the inventory constructed by something else, which does not set allocation_ratio in the request? If so, the server side will default to 1.0
16:25:34 mriedem i don't think so, should be the same code,
16:25:37 mriedem calls driver.get_inventory()
16:25:42 mriedem which for libvirt doesn't return allocation_ratio
16:30:20 cdent mriedem: I think maybe it just busted but in our functional tests and tempest we always set those config values
16:30:29 cdent tempest has allocation_ratio conf defaults
16:30:42 cdent and the gabbi test fixture for function does too
16:31:25 mriedem tempest? you mean devstack?
16:31:30 cdent yeah, sorry
16:31:30 mriedem i don't see allocation_ratio set in nova.conf http://logs.openstack.org/24/520024/6/check/legacy-tempest-dsvm-neutron-full/255f8c4/logs/etc/nova/nova-cpu.conf.txt.gz
16:31:58 mriedem http://logs.openstack.org/24/520024/6/check/legacy-tempest-dsvm-neutron-full/255f8c4/logs/screen-n-cpu.txt.gz#_Dec_15_15_20_27_560214
16:32:00 cdent (I'm simultaneously working on some tempest stuff)
16:32:27 melwitt I've noticed the test_live_migration_actions functional test has been intermittently failing in the gate again http://logs.openstack.org/90/333990/22/check/openstack-tox-functional/24eeb2b/testr_results.html.gz
16:33:00 mriedem cdent: in this test run, this is the first inventory update after the compute node RP is created http://logs.openstack.org/24/520024/6/check/legacy-tempest-dsvm-neutron-full/255f8c4/logs/screen-n-cpu.txt.gz#_Dec_15_15_20_29_162934
16:33:25 melwitt gibi ^
16:33:54 cdent mriedem: presumably the set to 0.0 here shouldn't be? http://logs.openstack.org/24/520024/6/check/legacy-tempest-dsvm-neutron-full/255f8c4/logs/screen-n-cpu.txt.gz#_Dec_15_15_20_27_560214
16:34:29 mriedem cdent: 0.0 is the default in the configs
16:34:44 cdent I get that.
16:35:01 cdent But one wouldn't expect that work, would one?
16:35:08 cdent unless 0 is meant to mean 1
16:35:22 cdent and that's the conversation I seem to remember having, but can't find the thread of
16:35:52 mriedem i don't see how it works with the capacity checks on the placement side for updating inventory
16:36:00 mriedem for this ci run, this is the first inventory update http://logs.openstack.org/24/520024/6/check/legacy-tempest-dsvm-neutron-full/255f8c4/logs/screen-placement-api.txt.gz#_Dec_15_15_20_29_138893
16:36:16 mriedem but doesn't tell us much
16:36:28 gibi melwitt: thanks for the heads up, I will look into it
16:36:56 melwitt thanks gibi
16:37:15 cdent mriedem: ah, it is the compute node object that does some jiggery pokery if it is doesn't like the values of the allocation ratios: see _from_db_object in class ComputeNode
16:37:44 mriedem yup i just found that
16:37:54 cdent some presumably somewhere in the first step that pokery is happening, but then getting ruined in the second
16:37:54 mriedem maciejjozefczyk:
16:38:41 mriedem maciejjozefczyk: https://github.com/openstack/nova/blob/master/nova/objects/compute_node.py#L198
16:40:51 maciejjozefczyk mriedem: mmmmm
16:41:49 maciejjozefczyk mriedem: and yes, I dont have it specified in config at all
16:43:29 mriedem i don't really understand why the inventory request wouldn't have the allocation_ratio values from the compute node object though
16:43:39 mriedem because in your patch, _update is called after the compute node record is created,
16:43:56 mriedem and ComputeNode.create() eventually calls _from_db_object to set the 'default' allocation ratios on the object itself
16:43:57 cfriesen just stumbled over something odd...if the os_type isn't set, then in some scenarios the ephemeral disks are formated vfat. if the ephemeral size is too big for vfat, this chokes. Should we default to something else in the code or just not format it at all if a default isn't specified in the config file?
16:44:03 mriedem which will be used in _normalize_inventory_from_cn_obj
16:44:51 cfriesen mdbooth: ^
16:48:08 mriedem maciejjozefczyk: if you have a recreate of that failure, try logging the compute node record in _update() before calling reportclient.set_inventory_for_provider
16:57:04 maciejjozefczyk mriedem: ok
17:01:07 diga jaypipes: Hi
17:01:38 diga jaypipes: have you seen my mail on this bug - https://bugs.launchpad.net/nova/+bug/1719933
17:01:40 openstack Launchpad bug 1719933 in OpenStack Compute (nova) "placement server needs to retry allocations, server-side" [Medium,Triaged] - Assigned to Jay Pipes (jaypipes)
17:03:57 cdent diga: twitter suggests that jay is rather ill today
17:04:13 diga cdent: ohh
17:05:50 maciejjozefczyk mriedem: Ok, I'll paste it tomorrow, need to go
17:05:55 mdbooth cfriesen: The behaviour of that formatting is lost in the depths of time. That sounds like a bona fide bug, though.
17:06:07 mriedem maciejjozefczyk: o/
17:06:07 diga cdent: do you have sometime, can you help me ?
17:06:24 cdent diga: I might be able to yeah, what's up?
17:06:34 mdbooth cfriesen: Do other clouds format blank ephemeral disks for you? It seems like such a weird thing to do in Nova.
17:07:39 maciejjozefczyk first sight, strange, https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L763 gives me https://pastebin.com/skR0X0Mm (at init)
17:07:46 mdbooth cfriesen: I don't think we can change that behaviour without at least a microversion bump, btw. Probably a cycle of ops discussion, a prominent release note, and a microversion bump.
17:07:55 maciejjozefczyk mriedem: and cpu_allocation_ratio is set as 16.0
17:08:35 openstackgerrit Eric Berglund proposed openstack/nova master: PowerVM Driver: vSCSI volume driver https://review.openstack.org/526094
17:08:49 mriedem maciejjozefczyk: that's because it pulls the object from the db and runs it through ComputeNode._from_db_object which sets the 'default' allocation ratios (hardcoded in code) if not set in config
17:08:59 mdbooth cfriesen: When the ephemeral disk is too big, does the mkfs choke causing the spawn to fail?
17:09:14 maciejjozefczyk mriedem: I'll check it tomorrow why then it is changed to 0
17:09:25 maciejjozefczyk mriedem: thats the real cause, yes?
17:09:51 mriedem yeah i don't know what is changing it to 0.0 before we hit placement
17:10:11 maciejjozefczyk mriedem: I'll find it for you ;) bb
17:10:18 mriedem godspeed
17:11:42 diga cdent:
17:11:49 diga cdent: - Here I got the error after adding scenarios - http://paste.openstack.org/show/641294/
17:12:26 diga cdent: changes are made in git diff - http://paste.openstack.org/show/641293/
17:12:28 cdent diga: do you have a work in progress that you post up to gerrit so there's code to look at?
17:13:10 diga cdent: I have submit the patch yet, Let me submit the patch then
17:13:20 diga s/have/haven't
17:14:15 diga cdent: yes, I am working on this as per jaypipes suggestions
17:14:43 cdent diga: note that DbDeadLock is already handled, what's not handled is ConcurrentUpdate
17:15:28 diga cdent: okay
17:15:46 cdent _set_allocations method already has the retry handing on it
17:16:00 cdent but it is only set up for handling db api exceptions, which ConcurrentUpdate is not
17:16:28 mriedem sdague: this is the novaclient change for the file injection deprecation and userdata + rebuild stuff https://review.openstack.org/#/c/528128/ - closes out that bp and unblocks the next novaclient change in the series for the next microversion; client release freeze is creeping up so i'd like to get some reviews on this stuff
17:16:40 diga okk, I will work on it then
17:17:10 cdent diga: let me know if/how I can help
17:17:51 diga cdent: currently main challenge in nova is to reproduce the issue, db part is reproduced, but how to reproduce ConcurrentUpdate
17:18:00 diga cdent: some pointers can be helpful
17:18:03 mriedem diga: i have a devstack patch that reproduces it...
17:18:46 mriedem https://review.openstack.org/#/c/507918/
17:18:46 cdent diga: I think you can probably do something similar to what you've done in your existing test, but put the side effect on the method that increase the generation
17:19:01 cdent diga: _increment_provider_generation
17:19:41 diga cdent: okay
17:20:07 diga mriedem: I will take a look at it
17:20:47 mriedem it's probably not very helpful though for recreating a concurrent update failure in a unit test
17:21:00 mriedem it was just something i think i noticed while investigating failures in that devstack patch
17:21:14 diga mriedem: but it needs to rerun devstack with this change
17:21:40 diga mriedem: ok, got it
17:29:08 stephenfin artom: https://review.rdoproject.org/r/#/c/11283/
17:34:37 diga mriedem: Thanks for sharing the link, it will be certainly helpful
17:34:54 diga cdent: thanks for your help

Earlier   Later