| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-02-18 | |||
| 17:00:39 | jaypipes | there will always be a single lock (a gap lock of (inclusive_low=1, inclusive_high=2) | |
| 17:00:53 | jaypipes | it's not 2 locks. | |
| 17:01:10 | jaypipes | it's one lock, evaluated atomically. | |
| 17:01:20 | zzzeek | jaypipes: OK then what does https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html#innodb-gap-locks say: "Gap locking is not needed for statements that lock rows using a unique index to search for a unique row. " | |
| 17:01:31 | zzzeek | jaypipes: I tried this without using the PK, and it gap locks | |
| 17:01:36 | zzzeek | jaypipes: add the PK, and it row locks | |
| 17:02:48 | zzzeek | b.c. yes w a gap lock, its crazytown time if you have lots of rows | |
| 17:05:59 | jaypipes | zzzeek: can we back up a sec? I'm a little lost on what you're trying to do in Neutron land. could you link me to the code you are doing/reviewing? | |
| 17:06:37 | zzzeek | jaypipes: sure it's https://review.openstack.org/#/c/635671/ didnt want to pull you into neutron | |
| 17:08:14 | zzzeek | jaypipes: they were ready to add a whole new table and rewrite their whole versioning thing just so they can have incrementing version ids without checking for conflicts | |
| 17:08:43 | zzzeek | jaypipes: as always, if this fails sometimes, it retries. it's not the end of the world. the current implementation fails and retries lots. | |
| 17:13:41 | jaypipes | zzzeek: retries are natural and expected, yes | |
| 17:13:52 | jaypipes | zzzeek: lemme read this patch first :) | |
| 17:14:01 | zzzeek | jaypipes: im going to try the sleep() trick to see if i can get the two updates to interleave | |
| 17:22:30 | openstackgerrit | Jim Rollenhagen proposed openstack/nova master: ironic: check fresh data when sync_power_state doesn't line up https://review.openstack.org/636699 | |
| 17:28:29 | openstackgerrit | Maciej Kucia proposed openstack/nova master: SR-IOV passthrough: Check PF only if VF is enabled https://review.openstack.org/476642 | |
| 17:28:50 | openstackgerrit | Merged openstack/nova master: create_veth_pair is unused, remove it. https://review.openstack.org/624226 | |
| 17:32:43 | openstackgerrit | Elod Illes proposed openstack/nova stable/queens: Make service all-cells min version helper use scatter-gather https://review.openstack.org/637594 | |
| 17:59:49 | jaypipes | zzzeek: hmm, neutron patch is a rabbithole for me... abstraction on top of abstraction. I'm afraid that I'm having a difficult time following what SQL statements would/will be produced at which events with this... | |
| 18:00:13 | zzzeek | jaypipes: I know, neutron is a PITA | |
| 18:00:26 | zzzeek | jaypipes: i never work on it because it is nonsensical | |
| 18:00:35 | zzzeek | jaypipes: but i figured out enough what this does :) | |
| 18:00:37 | openstackgerrit | Elod Illes proposed openstack/nova stable/queens: Make host_manager use scatter-gather and ignore down cells https://review.openstack.org/637599 | |
| 18:02:46 | jaypipes | zzzeek: this patch definitely fixes a number of deadlocks you are seeing, yes? | |
| 18:03:14 | jaypipes | zzzeek: where specifically are those deadlocks being hit? (in the neutron code, that is...) | |
| 18:04:06 | zzzeek | jaypipes: it fixes SQLAlchemy version id misses, not "deadlocks" in the literal sense | |
| 18:04:16 | zzzeek | jaypipes: SQLAlchemy StaleDataErrors | |
| 18:04:55 | zzzeek | jaypipes: they have this test case where they create 300 security group rules | |
| 18:05:15 | zzzeek | jaypipes: and that incurs a versino bump on many related objects because their API requiers that the new number is exposed | |
| 18:05:25 | zzzeek | jaypipes: so the version_id here is used for two purposes | |
| 18:05:57 | zzzeek | jaypipes: so when they make these 300 rules they get a ton of StaleDataErrors on all the related objects, for which they are changing nothing except bumping the version id | |
| 18:06:10 | jaypipes | zzzeek: wait, are you saying that updates of dependent objects cause the version to be incremented more than once? | |
| 18:06:14 | zzzeek | jaypipes: this also incurs that an ORM lookup is happening, a flush, etc. which is all overhead too | |
| 18:06:31 | zzzeek | jaypipes: no, when they have multiple transactions on concurrent API requests | |
| 18:07:20 | zzzeek | script I used to create 300 security group rules asynchronously http://paste.openstack.org/show/744728/" | |
| 18:07:20 | zzzeek | jaypipes: look at feb 8 comments on the gerrit: "POST request response times for 300 security group rules creation http://paste.openstack.org/show/744727/ | |
| 18:08:26 | jaypipes | zzzeek: ok, creating 300 security group rules should increment the security group's version to 301, yes? | |
| 18:08:48 | zzzeek | jaypipes: i dunno. the person testing is saying he is getting the correct results though | |
| 18:08:48 | aspiers | Wow, plantuml is pretty cool. I was able to knock this up pretty quickly from a small text file: https://goo.gl/tPNAQK | |
| 18:09:04 | zzzeek | yes 301 | |
| 18:09:20 | zzzeek | -----------------+ | 2151 | securitygroups | 2019-02-08 09:07:15 | 2019-02-08 09:09:05 | | 301 | +------+----------------+---------------------+---------------------+-------------+-----------------+ | |
| 18:09:20 | zzzeek | Even the revision_number for security group updated properly when creating 300 security group rules MariaDB [neutron]> select * from standardattributes where id="2151"; +------+----------------+---------------------+---------------------+-------------+-----------------+ | id | resource_type | created_at | updated_at | description | revision_number | +------+----------------+---------------------+---------------------+-------------+ | |
| 18:42:42 | mnaser | mriedem: we might want to ping the ML about the change we recently did with disallowing root_gb=0 flavors | |
| 18:43:33 | mnaser | osa gates broke because i assume we created flavors which were using root_gb=0 | |
| 18:43:48 | mriedem | we?!?! | |
| 18:43:50 | mnaser | i can shoot an email if you weren't planning to | |
| 18:43:55 | mriedem | go nuts | |
| 18:44:04 | mnaser | https://review.openstack.org/#/c/603910/ | |
| 18:44:04 | mriedem | i send enough "oh btw everything is going to be broken now" emails | |
| 18:44:08 | mnaser | :D | |
| 18:44:09 | mriedem | yeah i know | |
| 18:59:57 | openstackgerrit | Surya Seetharaman proposed openstack/python-novaclient master: API microversion 2.69: Handles Down Cells https://review.openstack.org/579563 | |
| 19:03:48 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Add TargetDBSetupTask https://review.openstack.org/627892 | |
| 19:03:49 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Execute TargetDBSetupTask https://review.openstack.org/633853 | |
| 19:03:49 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Add CrossCellMigrationTask https://review.openstack.org/631581 | |
| 19:03:50 | openstackgerrit | Matt Riedemann proposed openstack/nova master: WIP: Add prep_snapshot_based_resize_at_dest compute method https://review.openstack.org/633293 | |
| 19:03:50 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Add can_connect_volume() compute driver method https://review.openstack.org/621313 | |
| 19:03:51 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Add prep_snapshot_based_resize_at_source compute method https://review.openstack.org/634832 | |
| 19:03:51 | openstackgerrit | Matt Riedemann proposed openstack/nova master: WIP: Add PrepResizeAtDestTask https://review.openstack.org/627890 | |
| 19:03:52 | openstackgerrit | Matt Riedemann proposed openstack/nova master: WIP: Add finish_snapshot_based_resize_at_dest compute method https://review.openstack.org/635080 | |
| 19:03:52 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Add PrepResizeAtSourceTask https://review.openstack.org/627891 | |
| 19:03:53 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Execute CrossCellMigrationTask from MigrationTask https://review.openstack.org/635668 | |
| 19:03:53 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Add FinishResizeAtDestTask https://review.openstack.org/635646 | |
| 19:03:54 | openstackgerrit | Matt Riedemann proposed openstack/nova master: WIP: Filter duplicates from compute API get_migrations_sorted() https://review.openstack.org/636224 | |
| 19:03:54 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Plumb allow_cross_cell_resize into compute API resize() https://review.openstack.org/635684 | |
| 19:03:55 | openstackgerrit | Matt Riedemann proposed openstack/nova master: WIP: Add confirm_snapshot_based_resize_at_source https://review.openstack.org/637058 | |
| 19:03:55 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Start functional testing for cross-cell resize https://review.openstack.org/636253 | |
| 19:03:56 | openstackgerrit | Matt Riedemann proposed openstack/nova master: WIP: Add confirm_snapshot_based_resize conductor RPC method https://review.openstack.org/637075 | |
| 19:03:56 | openstackgerrit | Matt Riedemann proposed openstack/nova master: WIP: Add ConfirmResizeTask https://review.openstack.org/637070 | |
| 19:03:57 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Confirm cross-cell resize from the API https://review.openstack.org/637316 | |
| 19:05:04 | mriedem | that's only about half the series at this point | |
| 19:05:06 | mriedem | swoon away | |
| 19:36:25 | NewBruce | sean-k-mooney still here mate? | |
| 19:41:25 | mordred | mriedem: did nova/devstack introduce a behavior change recentlyish? http://logs.openstack.org/63/637563/1/check/openstacksdk-functional-devstack-tips/f7e749c/testr_results.html.gz | |
| 19:41:45 | mordred | mriedem: | |
| 19:41:47 | mordred | openstack.exceptions.HttpException: HttpException: 403: Client Error for url: https://213.32.77.235/compute/v2.1/servers, Only volume-backed servers are allowed for flavors with zero disk. | |
| 19:41:54 | dansmith | hah | |
| 19:42:02 | dansmith | mordred: [10:42:42] <mnaser>mriedem: we might want to ping the ML about the change we recently did with disallowing root_gb=0 flavors | |
| 19:42:08 | mordred | hahaha | |
| 19:42:23 | dansmith | made it a whole hour | |
| 19:42:31 | mnaser | mordred: http://lists.openstack.org/pipermail/openstack-discuss/2019-February/002842.html :D | |
| 19:43:36 | mordred | mnaser: so - I might need to port that change to apply to non-tempest flavors I suppose? | |
| 19:44:01 | mnaser | mordred: so whatever tests you were doing were trying to do a boot from volume using a flavor that has root_gb=0 | |
| 19:44:14 | mnaser | i assume openstacksdk maybe is trying to create its own flavor? | |
| 19:44:34 | mordred | not to my knowledge, no | |
| 19:44:41 | mordred | we just use whatever flavor is there | |
| 19:44:52 | mordred | but we don't install/run tempest, so I doubt lib/tempest flavors exist | |
| 19:45:44 | mnaser | {"href": "https://213.32.77.235/compute/flavors/c1", "rel": "bookmark"}], "ram": 256, "OS-FLV-DISABLED:disabled": false, "os-flavor-access:is_public": true, "rxtx_factor": 1.0, "disk": 0, "id": "c1", "name": "cirros256", "vcpus": 1, "swap": "", "OS-FLV-EXT-DATA:ephemeral": 0} | |
| 19:45:55 | mordred | mnaser: http://paste.openstack.org/raw/745281/ | |
| 19:46:25 | mordred | mnaser: so I guess I just need to pick a different flavor | |
| 19:46:38 | mnaser | we should probably fix what creates cirros256 | |
| 19:47:15 | mnaser | did taht fail in nodepool, mordred ? | |
| 19:47:32 | mnaser | no openstacksdk, hmm weird | |
| 19:47:57 | mordred | mnaser: we pick the smallest flavor sorted by ram | |
| 19:48:05 | mnaser | *something* creates that flavor.. | |
| 19:48:14 | mordred | mnaser: so I think I need to add an 'if' for disk != 0 | |
| 19:48:41 | mnaser | yeah if you're not doing bfv and the flavor has disk == 0 then it should not use that flavor | |
| 19:49:21 | mnaser | but http://git.openstack.org/cgit/openstack-dev/devstack/tree/lib/nova#n1165 | |
| 19:49:22 | cdent | devstack creates that flavor | |
| 19:49:24 | cdent | jinx | |