| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-09-25 | |||
| 17:46:32 | melwitt | sean-k-mooney: I don't know much about that but the expected type will be different depending on whether the cell returned a result or an exception | |
| 17:47:04 | tssurya | melwitt: for me the requirement came because of wanting to differentiate between InstanceNotFound valid exception versus an actuall cell down exception here: https://review.openstack.org/#/c/591658/7/nova/compute/api.py@2327 , feel free to leave a comment and we can also raise it at tomorrow's cells meeting; need to leave office now | |
| 17:47:58 | sean-k-mooney | in c++ std::expect models a type that either pacages the expected result or and error type. when you use it you can test if it it has an error or not with an if expect ... | |
| 17:48:22 | melwitt | tssurya: ok, will look there. I was thinking we would need to be able to differentiate exceptions but didn't see a concrete example till now | |
| 17:48:50 | melwitt | sean-k-mooney: oh, nice | |
| 17:49:37 | AJaeger | nova stable team, could you review a simple zuul job change, please? https://review.openstack.org/602018 https://review.openstack.org/602019 https://review.openstack.org/602022 https://review.openstack.org/602023 | |
| 17:49:45 | AJaeger | mriedem: I answered your comment on https://review.openstack.org/#/c/602018/1/.zuul.yaml | |
| 17:49:54 | sean-k-mooney | melwitt: so my preference would be have result be a type that you can just do "if result: #handel sucess else : # handel error" | |
| 17:50:58 | melwitt | sean-k-mooney: we also have "did not respond" i.e. timeout waiting for result | |
| 17:51:02 | sean-k-mooney | melwitt: to do that you would have to override __bool__ in the wrapper class to see if the value was an exception type or not | |
| 17:51:19 | melwitt | which could be an error, but then you have to check the type of the error | |
| 17:51:34 | melwitt | but I guess we have to do that anyway if we're differentiating | |
| 17:52:46 | sean-k-mooney | melwitt: ya. if you stuff the exeption into the value field you can just rerais it and cactch it polymorifclly assuming the timeout is a different exception type | |
| 17:53:13 | melwitt | yeah, could do that | |
| 17:53:49 | sean-k-mooney | melwitt: so basically its the same as what you suggted but your hiding the type checking in a dedicated class that does it for you instead of doing it in multiple places | |
| 17:55:34 | sean-k-mooney | melwitt: python3's concurrent futures basically wrap this up nicly for you too but they are python 3 only https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future | |
| 17:56:09 | melwitt | sean-k-mooney: thanks | |
| 17:59:57 | sean-k-mooney | melwitt: want me to mock up an example of using what i described so you can see how it would work. im not sure its the correct solution in this case but its what i would try personally. | |
| 18:05:09 | melwitt | sean-k-mooney: an example that would work for python2 also? I would be interested in looking at it if you mock it up | |
| 18:05:57 | sean-k-mooney | melwitt: yes i can make it work for python too. ill mock something up and push it with some unit tests showing its usage later tonight | |
| 18:06:17 | sean-k-mooney | *python 2 | |
| 18:06:50 | melwitt | thanks | |
| 18:16:34 | openstackgerrit | Jack Ding proposed openstack/nova master: Handle missing marker during online data migration https://review.openstack.org/605164 | |
| 18:17:11 | jaypipes | man I fucking hate the scheduler unit tests. | |
| 18:17:15 | jaypipes | what a pile of shit. | |
| 18:17:59 | sean-k-mooney | jaypipes: let me guess asserting behavior 3 levles deep then just the local function behvior? | |
| 18:19:39 | sean-k-mooney | anyone know where the devstack log is stored by default? ther eused to be an xstack log in /opt/stack/logs but that seams to not be a thing anymore | |
| 18:20:10 | jaypipes | sean-k-mooney: more the endless hierarchy of copy/pasted test case classes. | |
| 18:20:39 | sean-k-mooney | jaypipes: yeah OOP | |
| 18:22:11 | sean-k-mooney | jaypipes: did i mention im playing with creating a programming language. it "object orianted" current it does not allow inheritence but you can have objects :P | |
| 18:26:30 | AJaeger | mriedem: could you review the other stable backports of that ceph change as well, please? | |
| 18:26:47 | mriedem | yeah | |
| 18:28:22 | AJaeger | thanks | |
| 18:31:58 | melwitt | what is going on with the gate lately? changes that have been in the queue for 26 hours | |
| 18:33:12 | AJaeger | melwitt: high failure rate plus one of our clouds down, see clark's email from a week ago or so | |
| 18:33:49 | melwitt | found it, thank you | |
| 18:33:52 | AJaeger | melwitt: http://lists.openstack.org/pipermail/openstack-dev/2018-September/134867.html | |
| 18:34:40 | AJaeger | melwitt: still applies regarding cloud down - clarkb is testing a fix right now | |
| 18:46:27 | openstackgerrit | Jonte Watford proposed openstack/nova master: This commit adds __str__ and __repr__ methods to objects InstanceNUMACell and NUMACell. These will generate more readable representations of the objects for use in logs. https://review.openstack.org/600269 | |
| 18:48:57 | mriedem | AJaeger: waiting to see the renamed job run on ocata https://review.openstack.org/#/c/602023/ | |
| 18:49:44 | AJaeger | mriedem: good catch - you won't see it. We miss the parent devstack job there. This needs different handling - I'll fix... | |
| 18:54:27 | openstackgerrit | Jonte Watford proposed openstack/nova master: This commit adds __str__ method to objects InstanceNUMACell and NUMACell. These will generate more readable representations of the objects for use in logs. https://review.openstack.org/600269 | |
| 19:01:36 | mriedem | jaypipes: i've got an o.vo problem that maybe you can help solve, | |
| 19:01:58 | mriedem | i've got an Instance object from cell1, pulled fresh from the db so there are no fields marked as 'changed', | |
| 19:02:30 | mriedem | i want to clone that object and re-create it in cell2 which should mean just changing the context to point at cell2 db and delete the id field so Instance.create() won't puke on it, | |
| 19:03:01 | mriedem | the problem is, the cloned object doesn't have any changed fields marked, so Instance.create() doesn't actually save anything into the cell2 db for the instance for things like vm_state, task_state, etc | |
| 19:03:54 | mriedem | know of any way to dirty up the object so it looks new? I tried a obj_from_primitive(obj.obj_to_primitive()) dance but that doesn't work b/c it maintains the 'changes' list of dirty fields | |
| 19:04:30 | mriedem | i'm thinking i might just have to do something like, new_obj = objects.Instance(new_context, **instance.obj_to_primitive()['data']) | |
| 19:05:58 | melwitt | mriedem: I think the only precedent we have for that is the get_new_instance in build request https://github.com/openstack/nova/blob/master/nova/objects/build_request.py#L237 | |
| 19:07:29 | sean-k-mooney | mriedem: can you do a deep copy and then instead update the cell and then instaead of resetting the fileds just mark them as dirty? | |
| 19:07:30 | mriedem | blech, ok i'll hack that up the same | |
| 19:08:07 | melwitt | there might be a better way to do it, just mentioning that as a data point | |
| 19:08:49 | mriedem | yeah i'll copy that, | |
| 19:08:55 | mriedem | as i've seen and from dansmith's comment in that code, | |
| 19:09:01 | mriedem | keeping the fields dirty would involve ovo internals | |
| 19:09:24 | melwitt | aye | |
| 19:09:32 | mriedem | like passing a dirty_white_boy=True kwarg to obj_from_primitive | |
| 19:19:14 | jaypipes | mriedem: yeah, it's blech. | |
| 19:20:38 | mriedem | i'm still waiting for someone to get my foreigner reference | |
| 19:24:24 | jaypipes | heh | |
| 19:24:29 | melwitt | sorry, I only know the major foreigner hits | |
| 19:26:02 | mriedem | hey it made it to the top 12 https://en.wikipedia.org/wiki/Dirty_White_Boy_(song)#Chart_performance | |
| 19:26:36 | melwitt | huh. | |
| 19:37:28 | sean-k-mooney | yeah cirros does not have sriov drivers for 1gb intel nics ... | |
| 19:38:07 | mriedem | ok i've got something hacked up for now | |
| 19:38:28 | mriedem | http://paste.openstack.org/show/730743/ | |
| 19:39:41 | sean-k-mooney | mriedem: without messing with internal that looks resonably clean | |
| 19:40:17 | sean-k-mooney | mriedem: it would be nice to a "mark_dirty" function instead of setattr(new_obj, field, getattr(obj, field)) but that works | |
| 19:40:53 | mriedem | i'll post something to ovo that dan can look at while he's pooing in a cave | |
| 19:50:18 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Option "scheduler_default_filters" is deprecated. https://review.openstack.org/604148 | |
| 19:51:35 | imacdonn | mriedem: is there an easy way to see what 'nova-manage db online_data_migrations' would do, without actually doing it ? | |
| 19:51:37 | sean-k-mooney | melwitt: im going to call it a night an grab a beer. am im going to start hacking on that exection wrapper class and ill push something up in an hour or so while i wait for dinner. ill add you as a reviewer when i submit the patch. | |
| 19:52:46 | mriedem | imacdonn: as in a dry run option? | |
| 19:52:49 | mriedem | no there isn't | |
| 19:53:02 | mriedem | jaypipes: sean-k-mooney: like this https://review.openstack.org/605199 | |
| 19:53:19 | melwitt | sean-k-mooney: cool, thanks | |
| 19:53:32 | imacdonn | mriedem: yeah. ok. I think that would be useful. I tried hacking out the check for max-count being greater than zero, but it's not that simple, apparently | |
| 19:54:27 | mriedem | imacdonn: well, you'd have to plumb that down through all of the online data migration routines | |
| 19:54:31 | mriedem | to not actually commit any changes | |
| 19:54:34 | mriedem | so it's not trivial | |
| 19:54:49 | imacdonn | mriedem: also, this doesn't seem right. The counts in the table should be non-zero? Caveat: it's Queens, so if anything's been fixed since then .... http://paste.openstack.org/show/730819/ | |
| 19:55:30 | sean-k-mooney | mriedem: is the condition on line 401 reversed? e.g. should it be if leave_dirty? | |
| 19:57:34 | sean-k-mooney | mriedem: i would have expected the changed filed to be the dirty fields personally but i have not really looked at how this works closely | |
| 19:58:15 | mriedem | no | |
| 19:58:46 | mriedem | if not False (True): set the same changed fields on the copy as were on the primitive | |
| 19:58:53 | mriedem | which defaults to no changed fields | |
| 19:59:02 | openstackgerrit | Jonte Watford proposed openstack/nova master: Add __str__ method to objects NUMACell instances https://review.openstack.org/600269 | |
| 20:01:07 | sean-k-mooney | mriedem: i have added myself as a review and ill step through it properlly tomorow. | |
| 20:01:07 | openstackgerrit | Merged openstack/nova stable/rocky: Follow devstack-plugin-ceph job rename https://review.openstack.org/602018 | |
| 20:01:27 | mriedem | imacdonn: well that table definitely looks wrong... | |
| 20:01:46 | imacdonn | mriedem: yeah. Trying to figure out how that could happen | |
| 20:02:05 | mriedem | my guess is you're dumping the last result set, | |
| 20:02:11 | mriedem | which is when there were no more things to migrate | |
| 20:02:18 | mriedem | so you get 0s at the end | |
| 20:02:48 | imacdonn | I'm just running the command :) | |
| 20:02:54 | imacdonn | but yeah | |
| 20:02:59 | mriedem | you said you hacked something | |
| 20:03:19 | imacdonn | Oh, I only hacked out the check that max-count has to be >0 .. but I'm not applying that here | |
| 20:03:22 | mriedem | however, | |
| 20:03:23 | mriedem | http://logs.openstack.org/87/604687/4/check/neutron-grenade/6c10d43/logs/grenade.sh.txt.gz | |