21:00:04 #startmeeting swift 21:00:04 Meeting started Wed Jan 24 21:00:04 2024 UTC and is due to finish in 60 minutes. The chair is timburke. Information about MeetBot at http://wiki.debian.org/MeetBot. 21:00:04 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 21:00:04 The meeting name has been set to 'swift' 21:00:10 ok attempt 2 🤦 21:00:15 who's here for the swift team meeting? 21:00:19 o/ 21:02:08 as usual, the agenda's at 21:02:10 #link https://wiki.openstack.org/wiki/Meetings/Swift 21:02:17 first up 21:02:20 #topic eventlet 21:02:33 good news! things seem to be pretty well fixed 21:02:42 o/ 21:03:00 requirements rollback went through, unblocking our gate 21:03:15 \o/ 21:03:33 new eventlet's been released, so the NameError won't be a problem the next time requirements bumps up eventlet 21:04:19 Nice. 21:04:39 and various patches surrounding the issue have landed, meaning (1) our tests currently pass with newest eventlet and (2) the cross-project job would now be capable of catching that eventlet bug 21:05:34 i also put together a patch to indicate that we don't recommend using eventlet 0.34.3 21:05:37 #link https://review.opendev.org/c/openstack/swift/+/906435 21:05:38 patch 906435 - swift - Prevent installation of known-broken eventlet - 1 patch set 21:06:18 but it looks like we'd need to also do a requirements change to add the known-bad version, and idk if it's worth the effort 21:06:29 I'll note I would not expect that eventlet version bump to happen during C at this point. o/ 21:08:09 good to know, thanks JayF 21:08:58 as part of all this, i did verify that our unit tests pass on all other versions of eventlet, for at least some version of python 21:09:15 so that was reassuring :-) 21:09:38 nice 21:09:40 timburke: thanks for getting us back on track 21:10:20 i think that's about it for this topic -- and it sounds like we shouldn't need to worry about it again for a bit :-) 21:10:32 #topic part-number support 21:10:43 #link https://review.opendev.org/c/openstack/swift/+/894570 21:10:43 patch 894570 - swift - slo: part-number=N query parameter support - 86 patch sets 21:10:48 #link https://review.opendev.org/c/openstack/swift/+/894580 21:10:49 patch 894580 - swift - s3api: Support GET/HEAD request with ?partNumber - 94 patch sets 21:11:12 i took a look at the slo patch, but still need to get to the s3api patch 21:11:14 "94 patch sets" - can we make it to 3 digits??? 21:11:35 as part of that, i kicked up a follow-up 21:11:40 #link https://review.opendev.org/c/openstack/swift/+/906391 21:11:41 patch 906391 - swift - slo: Support range requests for part-number queries - 1 patch set 21:12:39 I'm curious if that breaks the s3api patch - s3api definitely doesn't allow partNumber and Range, and I assume it may be relying on SLO to disallow it 21:13:56 i'm still a little unsure about some of the boundaries/division of responsibilities in the first patch, but indianwhocodes is out for a bit, so it might be a bit before we can get it merged 21:15:39 i think mattoliver was planning on taking a look, too, though; maybe he'll tell me to let it go and just merge it ;-) 21:16:51 acoles, good thought -- should be easy enough for s3api to enforce that, yeah? 21:17:19 what's the use case when a client knows the part number and a range within it, but not the part's range i.e. why can't the client figure out the absolute range 21:17:25 yeah I do still plan too. Got distracted on Al's follow up container get auto refactor patch and downstream stuff again :( But it is on my list. And my summer holiday vacation kid parenting time off is now over to back full time 21:17:33 yeah, s3api might just need to do its own policing 21:17:50 oh, unless it's not an MPU, maybe? have we tested ?partNumber=1 w/ Range against a non-MPU on aws? 21:18:04 (bleh, that's a lot of clauses) 21:20:31 we should add that cross-compat test if we don't have it 21:21:50 but acoles is right -- if a client wants to resume a part download, it should be doable to just adjust the range and go against the whole object -- though i think you'd have to sign a new request (since you'd be dropping the query param 21:22:27 #topic py312 (and in general, future platforms work) 21:23:01 i wanted both to remind people about the outstanding patches 21:23:03 #link https://review.opendev.org/q/project:openstack/swift+topic:py312 21:23:31 and alert y'all to a new bug found on debian-bookworm and ubuntu-noble 21:23:36 #link https://bugs.launchpad.net/swift/+bug/2051067 21:23:37 Bug #2051067 - Malformed database test won't raise DatabaseError on new sqlite (Confirmed) 21:24:28 that affects more than just py312 (py311, at least) as it's at the sqlite layer, but seems somewhat related 21:25:43 i'll probably spend some time building sqlite from source in the near future, trying to figure out why/how our test DB is malformed, and what changed that sqlite no longer thinks so 21:26:33 if anybody has any clues/tips, i'd appreciate it, but it goes back a while and the git history isn't terribly informative 21:28:04 My first instinct is to give up immediately, and load an auditor with a yet another trick to identify bad databases. By checksumming some kind of key digest or whatever. 21:29:10 yeah; some kind of DB checksumming could be nice -- makes me think of https://bugs.launchpad.net/swift/+bug/1823785 21:29:11 Bug #1823785 - Container replicator can propagate corrupt timestamps (New) 21:29:55 yeah I've noticed this test failing lately. 21:30:23 mattoliver, really! what platform/python version? 21:31:03 I feel like I've been seeing it when I run tox -epy39 21:31:17 So is it more systemic? 21:31:45 but my fedora 39 environment runs much newer python. 21:31:49 which os? do you know what sqlite version you're on? 21:32:01 oh let me check 21:32:06 ah, yeah, i could see fedora keeping on a pretty new sqlite... 21:32:34 $ rpm -qa |grep sqlite 21:32:34 sqlite-libs-3.42.0-7.fc39.x86_64 21:32:34 sqlite-3.42.0-7.fc39.x86_64 21:33:30 seems to make sense -- i don't see the failure on jammy (sqlite 3.37.2), but do on bookworm (sqlite 3.40.1) 21:33:54 kk, so maybe its 3.40+ 21:34:16 I'll have a poke seeing as I have an env it's problematic on. 21:35:14 my plan is to (1) assess why it was malformed before, and whether sqlite is trying to correct the error or somehow missed it, and (2) find a new way to mangle a DB that will trip the error on old & new sqlite 21:36:04 yeah I can just open the malformed db in sqlite nowdays, I assume you can't in jammy 21:36:19 I can test that, I have a vsaio here somewhere 21:36:40 i'm willing to bet that sqlite found a way to not just detect but also correct the error, 'cause that seems to be the sort of thing they'd do, but i didn't see anything in their release notes that leapt out as explaining the change 21:37:06 mattoliver, you should be able to get to a sqlite prompt, but querying the 'test' table fails 21:37:45 anyway, that's all i've got 21:37:49 #topic open discussion 21:38:01 anything else we ought to bring up this week? 21:38:16 $ sqlite3 swift/test/unit/common/malformed_example.db... (full message at ) 21:39:17 dang it, I've been nerd sniped :P 21:39:23 :D 21:40:15 Ahh, I have pushed up some tests for p 905064 21:40:16 https://review.opendev.org/c/openstack/swift/+/905064 - swift - wip: shard replication sync points - 5 patch sets 21:40:38 although it isn't an urgent patch, just scratching an itch 21:42:05 new test doesn't work on py2 too well because row order seems to be non-deterministic. So just skipping testing on py2 for now (in hopes we remove py2 support soon) :P 21:44:26 the recent discussion makes me wonder whether it's a py2/py3 issue, or sqlite 3.x/3.y issue... 21:45:59 but yeah, i'm really hopeful about being able to (finally!) drop py2 -- the cluster-management tool we've got on py2 finally has tests passing under py3 21:46:06 maybe, except this is all happening on my fedora 39 laptop, so I'd assume it's using the same sqlite3 binary. different python mods I guess though 🤷 21:46:16 \o/ 21:46:41 so now we just need to try actually running under py3, and see where all our testing gaps were :P 21:47:11 Nice, I was tapping my foot, waiting for the open discussion just in order to ask when we're going to drop py2. 21:47:55 as soon as i can once i no longer need to import swift code under py2 :-) 21:47:59 so hopefully matter of weeks then.. or do we bite the bullet and do it sooner rather then later, and we just deal downstream :) 21:50:27 well, i can start by rebasing https://review.opendev.org/c/openstack/swift/+/853590 21:50:27 patch 853590 - swift - Drop py2 support - 10 patch sets 21:51:24 Cool, true great start, so we have something ready. Anyway, not something we'd decide in the last few minutes of a meeting. But exciting times coming :) 21:51:29 looks like i maybe need to revisit the lower-constraints patch on that one... 21:51:42 timburke: so what is your overrall sense about the eventlet: are we going to stay with it and just fix py12, py313, as they come, or should we (Swift) try and find a new WSGI server? 21:52:22 i think we'll need to do something different in the not-too-distant future 21:52:51 which surely means addressing https://bugs.launchpad.net/swift/+bug/1496636 21:52:51 Bug #1496636 - EC: Chunked transfer/commit protocol is *not* HTTP (In Progress) 21:53:52 They uploaded https://www.youtube.com/watch?v=lSUSZ8xGF9o 21:54:32 Unfortunately, it wasn't particularly impactful. Also, I have the video meetings. 21:54:44 s/ have / hate / 21:54:58 asyncio seems like it might be a reasonable alternative, though iirc jianjian saw some performance downsides -- i need to refresh my memory as to the exact numbers, though 21:55:22 we get enough of those these days as it is ;-) 21:55:43 asyncio is not the webserver. you need to choose aiowsgi, aiohttp, or something else. 21:56:25 true enough 21:56:46 There is a governance change up for OpenStack trying to identify a route forward 21:56:54 if you have strong opinions please participate there 21:57:11 https://review.opendev.org/c/openstack/governance/+/902585 21:57:11 patch 902585 - governance - Modernize Openstack Networking Programming Model - 14 patch sets 21:57:14 Yeah, Harve's driving it 21:57:53 I have mostly stayed out and let Itamar do the talking from my perspective :) 21:59:13 all right, we're about at time 21:59:26 thank you all for coming, and thank you for working on swift! 21:59:31 JayF, and eventlet ;-) 21:59:35 #endmeeting