14:02:23 #startmeeting neutron_upgrades 14:02:26 Meeting started Thu Feb 8 14:02:23 2018 UTC and is due to finish in 60 minutes. The chair is ihrachys. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:02:27 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:02:29 The meeting name has been set to 'neutron_upgrades' 14:02:42 o/ 14:02:43 o/ 14:02:47 Hi Ihar 14:02:50 Hi Luo 14:03:07 Hi guys 14:03:22 hi 14:03:30 PSA: this week is RC1 (some time Friday) which should afaiu create stable/queens for neutron 14:03:36 Hi Slawek 14:04:08 after which we should be able to cautiously start merging Pike patches 14:04:28 sorry, I mean Rocky patches 14:04:53 of course, while final release is not shipped, the focus will be diverged to Queens matters 14:05:54 as some of you know, we have an OVO related issue in bgpvpn that is release blocker for them 14:06:03 https://launchpad.net/bugs/1746996 14:06:04 Launchpad bug 1746996 in neutron "bagpipe: IPAllocation DB query failing, engine facade mismatch" [High,Confirmed] 14:07:13 it's a rather twisted issue. but basically, it boils down to bgpvpn using OVO objects in callback handlers that are issued from new engine facade subtransactions, so it fails rather spectacularly because it doesn't see models created by the callback caller in its session 14:07:32 and there is no clear cut way out of the issue. 14:08:04 one idea we are trying right now is switching bgpvpn objects to new facade, while leaving other objects on the old one for Queens 14:08:19 there is patch for bagpipe here: https://review.openstack.org/#/c/541513/ 14:08:37 but it would require neutron change: https://review.openstack.org/#/c/541512/ 14:08:50 and the latter is not ready for prime time, lots of unit tests were failing 14:09:00 I see lujinluo picked it up, thanks for that 14:09:14 ihrachys: it is still not in shape yet 14:10:37 yeah I know 14:10:48 so some questions about your changes 14:11:00 first, what's about subnetpool change to new_facade=True? https://review.openstack.org/#/c/541512/4..5/neutron/objects/subnetpool.py 14:12:08 one minute, finding the code snippets 14:13:25 there is also https://review.openstack.org/#/c/541512/4..5/neutron/db/db_base_plugin_v2.py that deals with subnetpool 14:14:41 sorry, the new_facade=True might be garbage code that i forgot to delete 14:15:16 as for the latter, it is because of this change https://review.openstack.org/#/c/541512/5/neutron/objects/base.py@319 14:15:40 we need to refresh(db_obj) in case synthetic field changed 14:16:10 but if the session is not active, we ignored it then we miss the synthetic field change in db 14:16:55 shouldn't session be active at this point? 14:17:22 somehow no 14:18:21 neutron.tests.unit.db.test_db_base_plugin_v2.TestSubnetPoolsV2.test_allocate_any_subnet_with_prefixlen is the failed UT 14:18:33 http://logs.openstack.org/12/541512/4/check/openstack-tox-py27/15c63a0/testr_results.html.gz first one here 14:20:28 We missed to refresh the synthetic field (prefixes) of subnetpool 14:20:51 ok I guess prefixes are not reloaded in time. maybe we should put refresh in subnetpool object code, I will have a look 14:21:23 ok. that is basically the only failed UT I managed to mitigate, LOL 14:21:54 actually, maybe it's the decorator that should open subtransaction so that it always spans throughout func() AND refresh() 14:22:21 well that's still something. there are other valuable changes there where I missed model to obj_cls conversion 14:22:27 thanks for looking into it 14:22:38 I will take it back over today 14:22:54 I thought tmorin will help with that but he probably was busy 14:23:22 yes, although i have not fixed any other UTs, but during the debugging it seems that most of the UTs are about timing to commit changes 14:23:22 now to other, non-blocking patches 14:23:38 lujinluo, timing to commit? 14:23:53 i mean when to open and close transactions 14:25:04 also, i want to address that in the patch we are changing some autonested sessions to context.session, and i am not sure if that is the right thing to do 14:25:37 lujinluo, do you have an example of the latter? it's easier to follow with an example. 14:26:13 https://review.openstack.org/#/c/541512/5/neutron/objects/base.py@599 14:26:17 here you go 14:26:59 right. what's the problem with that? 14:27:06 i think when we use autonested we are addressing the transaction inside transaction issue, but with this patch we lost that 14:27:41 you mean like independent rollback? 14:27:49 yes 14:28:10 I don't think we use it except in some places where it's explicit in the code (I believe ipam layer had rollback per ip allocation) 14:28:36 autonested just helps us to not care about whether caller opened a subtransaction already 14:29:15 begin(subtransactions=True) is afaik the same as autonested_transaction 14:29:16 ok, i see. then maybe we do not need to care about it 14:30:16 ok, moving to other patches 14:30:21 https://review.openstack.org/#/q/status:open+project:openstack/neutron+branch:master+topic:bp/adopt-oslo-versioned-objects-for-db 14:30:33 https://review.openstack.org/#/c/507772/ "Use Network OVO in db_base_plugin" 14:30:49 For this patch, the good news is: there’s just only 1 remaining failed unit test at this moment, which is: “test_get_objects_queries_constant” 14:30:52 there are 3 failures right now, all because of number of queries not scaling well 14:31:03 yes 14:31:08 I’m trying to find exactly where the number of queries is increased 14:32:29 based on diff of queries in logs, it seems that's because of externalnetworks table fetch 14:33:13 thank you, Ihar 14:33:28 also networksecuritybindings is fetched twice 14:33:37 I guess once per network object 14:33:46 yes, I agree, but I still haven't found where it is increased 14:34:24 afaiu ExternalNetwork is a type of one of synthetic fields of Network 14:34:52 correct 14:34:58 in theory, it should be eagerly fetched with network model because its relationship is lazy='joined' 14:35:34 yes 14:36:27 hm, I am looking at Network object from_db_object: https://review.openstack.org/#/c/507772/36/neutron/objects/network.py@326 14:36:40 and I don't see where we would extract values for external from db model 14:37:44 hm, though maybe it's base class that is driving synthetic fields extraction, I am already not sure, it was so long time ago I wrote it :) 14:38:29 thanks for your suggestion, Ihar :) 14:38:33 this may actually be related to the same thing why you needed to catch InvalidRequestError here: https://review.openstack.org/#/c/507772/36/neutron/objects/base.py@320 14:38:39 we'll check it deeper 14:39:38 if you don't refresh the relationship, maybe it refetches it somewhere else once per object returned. I think ultimately catching the error is not correct and we should make sure that the session is there for the time when refresh is issued 14:39:53 that boils down to what we discussed for that other patch adding support for new_engine 14:40:42 actually, that's a good patch to try my approach with subtransaction opened in decorator. if it works, it will probably fix the failure. 14:40:48 I will try it on your patch later. 14:40:50 thanks, we'll try to figure out way to handle it more properly 14:41:03 ok 14:41:14 https://review.openstack.org/#/c/521797/ "Use Router OVO in external_net_db" 14:42:04 this has pep8 issue, let me fix it quickly 14:42:44 done 14:42:53 apart from that, it seems fine 14:43:02 Thanks 14:43:06 https://review.openstack.org/#/c/537320/ "Use Port OVO in neutron/db/external_net_db.py" 14:43:48 this patch is largely a variation on that other patch adding support for new_engine 14:44:13 so we'll need to rebase it on top of the patch at some point to be able to utilize the new engine feature 14:44:35 it also has this InvalidRequestError exception handler that we'll probably try to avoid 14:45:02 seems like this patch will need to wait a bit for when those underlying issues are handled 14:45:19 yes, i will rebase this one on top of https://review.openstack.org/#/c/541512/ later when it is ready 14:45:34 right. it's not ready yet so no need to rebase right away 14:45:43 ok next is https://review.openstack.org/#/c/537325/ "Use Meter Label OVO in neutron/db/metering/metering_db.py" 14:46:01 I had a question there https://review.openstack.org/#/c/537325/4/neutron/db/l3_dvr_db.py@1077 14:46:09 not sure you had a chance to think about it 14:46:26 no... i will check tmr 14:47:13 I personally hate those functions that try to support polymorphic argument types. seems convoluted. I wonder if it's too hard to switch all callers of is_distributed_router to OVO 14:48:35 ok let's move on 14:49:20 https://review.openstack.org/#/c/530182/ "Use Router OVO in l3_db" 14:49:26 the author is not responsive 14:49:40 if people feel like taking that over, I wouldn't mind :) 14:51:41 there are no more patches in the queue that would be worth looking at at this point 14:53:13 anyone has a topic to discuss? 14:53:21 i have one thing 14:53:36 lujinluo, shoot 14:53:36 i will not be able to join the weekly meeting next week 14:53:45 as it is chinese new year eve 14:53:55 i won't have the mood to work, LOL 14:53:59 ok no problem. happy new year :) 14:54:05 thanks! 14:54:07 you are lucky, you have two of them! 14:54:20 LOL, yeah 14:54:57 i think this also applies to TuanVu ? right? 14:54:59 is it the same / similar for others? or is it just in your part of Asia? 14:55:09 you guys have public holiday on that day, no? 14:55:11 yes, I think so 14:55:28 I see. well then we will probably cancel the next meeting, and meet in 2 weeks 14:55:37 yeah, Vietnamese also celebrate lunar new year 14:55:48 enjoy the holiday! 14:55:54 thank you! 14:56:03 correct, the same with An-san and Hung-san 14:56:10 happy chinese new year of dog to you too ihrachys and TuanVu 14:56:30 thank you, Ihar and Luo :) 14:56:34 yay 14:56:34 *°*”˜˜”*°•.¸☆ ★ ☆¸.•°*”˜˜”*°•.¸☆ 14:56:34 ╔╗╔╦══╦═╦═╦╗╔╗ ★ ★ ★ 14:56:35 ║╚╝║══║═║═║╚╝║ ☆¸.•°*”˜˜”*°•.¸☆ 14:56:35 ║╔╗║╔╗║╔╣╔╩╗╔╝ ★ NEW YEAR ☆ 14:56:35 ╚╝╚╩╝╚╩╝╚╝═╚╝ ♥¥☆★☆★☆¥♥ ★☆❤♫❤♫❤ 14:56:36 .•*¨`*•..¸☼ ¸.•*¨`*•.♫❤♫❤♫❤ 14:56:41 happy chinese new year to you, too 14:56:42 :) 14:56:44 ok, thanks everyone for joining :) 14:56:47 #endmeeting