Monday, 2021-10-11

ianwi left a comment about the current way it populates attention set for positive votes in https://bugs.chromium.org/p/gerrit/issues/detail?id=1515400:26
ianwjust something to hopefully start a discussion.  i think we can probably remember to add/remove users as appropriate manually, it's not the end of the world00:27
Clark[m]ianw: that seems to be a good writeup. Anything else I can look at?00:35
ianwClark[m]: thanks, i thing all good right now, just monitoring everything00:54
*** ryanKor_ is now known as ryanKor01:25
opendevreviewIan Wienand proposed opendev/system-config master: gerrit: diff config files on upgrade  https://review.opendev.org/c/opendev/system-config/+/81337504:10
opendevreviewIan Wienand proposed opendev/system-config master: gerrit: diff config files on upgrade  https://review.opendev.org/c/opendev/system-config/+/81337504:27
*** bhagyashris is now known as bhagyashris|rover04:43
*** ysandeep|away is now known as ysandeep|04:48
fricklerinfra-root: gerrit dashboards have a regression for me. http://fricklercloud.de/designate should show only designate-related patches, but it now shows me patches from all projects04:58
ianwfrickler: hrm, yeah i don't seem to see anything different to a regular change page at all05:07
ianwsomething a bit simpler seems to work05:13
ianwhttps://review.opendev.org/dashboard/?title=Mine&foreach=owner:self&My+Pending=is:open&My+Merged=is:merged05:13
ianwfrickler: if i reduce your query to "foreach=project%3Aopenstack%2Fdesignate+status..." (i.e. only match designate) it seems to work.  so that narrows it down a bit05:19
ianwforeach=%28project%3Aopenstack%2Fdesignate+OR+project%3Aopenstack%2Fpython%2Ddesignateclient%29 also seems to work ...05:20
ianwin fact, if i copy-paste in the URL, it all works.  so it's not the dashboard -- it's something about the redirect I guess05:24
ianwfrickler: is it possible this actually started happening a few days ago when we switched to the bullseye based images?05:25
opendevreviewIan Wienand proposed opendev/system-config master: gerrit: diff config files on upgrade  https://review.opendev.org/c/opendev/system-config/+/81337505:25
fricklerianw: I'm not sure when I last tried, might be some days ago, so it's possible that it's actually not related to 3.3, yes05:40
fricklermaybe I can find some diff in the logs05:40
ianwi'm tracing it debugger, but i'm not sure05:41
ianwit gets the headings, but the query is completely wrong05:48
*** ykarel__ is now known as ykarel05:51
ianwfrickler: this is what hits apache https://paste.opendev.org/show/809895/05:54
*** ysandeep| is now known as ysandeep05:57
frickleroh, weird. if I do a reload, everything works fine suddenly06:21
fricklermaybe this is just pre-3.3 stuff cached in the browser06:23
ianwfrickler: yes, if you reload, or paste the URL, it works06:23
ianwi'm almost certain it has to do with the fragment in the redirected URL06:23
ianwfircklercloud redirects to review.openstack.org/#/dashboard ... and then that redirects to review.opendev.org06:24
ianwthe *second* redirect there; because the #/dashboard is a fragment isn't passed on.  that's why we see it loading just "/"06:25
frickleroh, good point, that one I can easily fix06:25
ianwit may "just work" using review.opendev.org and not bouncing through another redirect ...06:25
ianwwhy it used to work, well i have no idea :)06:26
fricklerhmm, no, that didn't help.06:28
fricklerbut anyway, I can live with the reload workaround06:29
opendevreviewDong Zhang proposed zuul/zuul-jobs master: Implement role for limiting zuul log file size  https://review.opendev.org/c/zuul/zuul-jobs/+/81303406:32
opendevreviewIan Wienand proposed opendev/system-config master: gerrit: diff config files on upgrade  https://review.opendev.org/c/opendev/system-config/+/81337506:39
ianwfrickler: i think it's worth a bug.  notice how the URL somehow changes from /#/dashboard... to /dashboard?06:51
fricklerianw: no, I hadn't seen that. but indeed if I redirect to /dashboard directly, I don't need the reload06:56
fricklerso then the question is whether that's an intended change by gerrit that didn't make it into the documentation or possibly something with our setup06:57
*** ysandeep is now known as ysandeep|brb07:00
*** ykarel__ is now known as ykarel07:15
ianwfrickler: i don't think it's "our" (apache, etc.) side involved, it seems to be something polygerrrit does.  all the documentation gives the fragment approach (/#/dashboards) but maybe that just hasn't kept up with ... something07:23
*** ysandeep|brb is now known as ysandeep07:27
opendevreviewIan Wienand proposed opendev/system-config master: gerrit: diff config files on upgrade  https://review.opendev.org/c/opendev/system-config/+/81337507:29
*** jpena|off is now known as jpena07:32
*** sboyron_ is now known as sboyron08:00
*** sboyron is now known as Guest249808:01
opendevreviewAnanya proposed opendev/elastic-recheck rdo: WIP: ER bot with opensearch for upstream  https://review.opendev.org/c/opendev/elastic-recheck/+/81325008:26
*** ykarel is now known as ykarel|lunch09:05
sshnaidmcan anyone merge this release please: https://review.opendev.org/c/openstack/releases/+/81300909:22
*** sboyron_ is now known as sboyron09:26
*** sboyron is now known as Guest250209:27
*** Guest2502 is now known as sboyron_09:29
*** ysandeep is now known as ysandeep|lunch09:33
*** ykarel|lunch is now known as ykarel10:21
*** ysandeep|lunch is now known as ysandeep10:26
*** dviroel|afk is now known as dviroel11:18
*** jpena is now known as jpena|lunch11:22
opendevreviewamolkahat proposed zuul/zuul-jobs master: [DNM] Python 2.7 workaround for configparser.readstring()  https://review.opendev.org/c/zuul/zuul-jobs/+/81341411:24
*** ykarel_ is now known as ykarel11:41
*** jpena|lunch is now known as jpena12:16
fungisshnaidm: that's a link to a release request? you need the openstack release managers in #openstack-release, not the opendev sysadmins12:38
sshnaidmfungi, thanks!12:39
fungino problem12:39
sshnaidmfungi, I have a question though, not related. I'd like to create a special branch on https://opendev.org/openstack/ansible-collections-openstack/ - not openstack release project. What is the process? Can I do it by my own?12:41
fungisshnaidm: yep, the permissions and process are explained here... https://docs.opendev.org/opendev/infra-manual/latest/drivers.html#branches12:45
fungisshnaidm: an example acl snippet for it is here: https://docs.opendev.org/opendev/infra-manual/latest/creators.html#creation-of-branches12:47
fungisshnaidm: you would insert that create line in the acl here: https://opendev.org/openstack/project-config/src/branch/master/gerrit/acls/openstack/ansible-collections-openstack.config#L612:51
fungilooks like you already have a ansible-collections-openstack-release group, so i'd probably delegate it to that for safety12:52
opendevreviewShnaidman Sagi (Sergey) proposed openstack/project-config master: Add creating branch ACL to ansible-collections-openstack repo  https://review.opendev.org/c/openstack/project-config/+/81342012:55
sshnaidmfungi, like this? ^12:55
fungisshnaidm: yep, that looks correct13:03
*** sboyron_ is now known as sboyron13:05
*** sboyron is now known as sboyron_13:06
*** sboyron_ is now known as sboyron13:06
opendevreviewAnanya proposed opendev/elastic-recheck rdo: Fix ER bot to report back to gerrit with bug/error report  https://review.opendev.org/c/opendev/elastic-recheck/+/80563813:07
opendevreviewAnanya proposed opendev/elastic-recheck rdo: Fix ER bot to report back to gerrit with bug/error report  https://review.opendev.org/c/opendev/elastic-recheck/+/80563813:08
sshnaidmplease take a look at patch I revived: https://review.opendev.org/c/zuul/zuul-jobs/+/80347113:53
opendevreviewMerged openstack/project-config master: Add creating branch ACL to ansible-collections-openstack repo  https://review.opendev.org/c/openstack/project-config/+/81342013:57
*** ykarel_ is now known as ykarel14:27
*** ykarel is now known as ykarel|away14:30
opendevreviewDong Zhang proposed zuul/zuul-jobs master: Implement role for limiting zuul log file size  https://review.opendev.org/c/zuul/zuul-jobs/+/81303414:46
opendevreviewDong Zhang proposed zuul/zuul-jobs master: Implement role for limiting zuul log file size  https://review.opendev.org/c/zuul/zuul-jobs/+/81303414:50
opendevreviewClark Boylan proposed opendev/system-config master: Force gerrit image build to tag 3.4  https://review.opendev.org/c/opendev/system-config/+/81344915:31
clarkbinfra-root I noticed ^ seems necessary when looking at the failure on https://review.opendev.org/c/opendev/system-config/+/81337515:31
clarkbinfra-root: other than cleaning up around the gerrit upgrade the other big thing I was hoping to get done today is upgrading gitea to 1.15.4: https://review.opendev.org/c/opendev/system-config/+/813243 I hae diffed the three templates we override between 1.15.3 and 1.15.4 and there is no upstream delta so our existing edits should be fine15:46
clarkbthe changelog notes a number of bugfixes but otherwise should be a straightforward update15:46
*** ysandeep is now known as ysandeep|out15:50
opendevreviewClark Boylan proposed opendev/gerritlib master: Rename Gerrit Non-Interactive Users to Service Users  https://review.opendev.org/c/opendev/gerritlib/+/81345215:52
fungiclarkb: are you ready for the gitea upgrade change to merge now, or should i hold off approving?15:53
opendevreviewClark Boylan proposed opendev/system-config master: Rename Gerrit Non-Interactive Users to Service Users  https://review.opendev.org/c/opendev/system-config/+/81345315:54
clarkbfungi: I think now should be fine as there doesn't seem to be any urgent gerrit stuff. The only concern I would have is that change might run the gerrit 3.4 jobs now? and those will fail until that other change lands and promotes a 3.4 tag. The check jobs don't run gerrit jobs so I think we're good to approve it and figure it out after it if does run the gerrit jobs15:55
*** marios is now known as marios|out16:02
opendevreviewAlfredo Moralejo proposed openstack/diskimage-builder master: [WIP] Add support for CentOS Stream 9 in DIB  https://review.opendev.org/c/openstack/diskimage-builder/+/81139216:12
opendevreviewClark Boylan proposed opendev/gerritlib master: Rename Gerrit Non-Interactive Users to Service Users  https://review.opendev.org/c/opendev/gerritlib/+/81345216:20
opendevreviewClark Boylan proposed opendev/gerritlib master: Fix CI setup  https://review.opendev.org/c/opendev/gerritlib/+/81345616:20
clarkbEMS has updated price terms but we're grandfathered in for the OpenDev server, I don't have any concerns there. But might be worth a look to see if we should switch plans intentionally16:27
*** jpena is now known as jpena|off16:45
clarkbfungi: re project renaming prep were you goign to look at running the metadata update after renames?16:59
fungiyeah, but i havent yet17:01
opendevreviewAnanya proposed opendev/elastic-recheck rdo: WIP: ER bot with opensearch for upstream  https://review.opendev.org/c/opendev/elastic-recheck/+/81325017:05
*** ysandeep|out is now known as ysandeep17:05
opendevreviewAnanya proposed opendev/elastic-recheck rdo: WIP: ER bot with opensearch for upstream  https://review.opendev.org/c/opendev/elastic-recheck/+/81325017:11
opendevreviewAnanya proposed opendev/elastic-recheck rdo: WIP: ER bot with opensearch for upstream  https://review.opendev.org/c/opendev/elastic-recheck/+/81325017:14
opendevreviewAnanya proposed opendev/elastic-recheck rdo: WIP: ER bot with opensearch for upstream  https://review.opendev.org/c/opendev/elastic-recheck/+/81325017:22
opendevreviewMerged opendev/system-config master: Update gitea to 1.15.4  https://review.opendev.org/c/opendev/system-config/+/81324317:40
clarkbthe deploy job for that just started17:42
clarkbI'm keeping an eye on it17:43
opendevreviewAnanya proposed opendev/elastic-recheck rdo: WIP: ER bot with opensearch for upstream  https://review.opendev.org/c/opendev/elastic-recheck/+/81325017:46
clarkbgitea01 has updated and lgtm17:47
fungiyeah, i'm not seeing any issues with it either17:48
opendevreviewMerged opendev/system-config master: Force gerrit image build to tag 3.4  https://review.opendev.org/c/opendev/system-config/+/81344917:50
clarkbthe image promote jobs for ^ are behind the gitea upgrade deploy job. Once those happen I'll recehck things to hopefully get happy test results back17:51
clarkbthe system-config-run job does run successfull for 3.4 so should be fine, just need a version tagged on docker hub17:52
clarkbfungi: https://review.opendev.org/c/opendev/gerritlib/+/813456 and child are two easy fixes/cleanups17:53
clarkbhttps://review.opendev.org/c/opendev/system-config/+/813453 too17:53
clarkbthrough 06 are done now17:58
clarkband now all eight are done. lgtm from what I see18:02
clarkbhttps://hub.docker.com/layers/opendevorg/gerrit/3.4/images/sha256-e45714038d430ab4c5bc91efcb866aef4d0c15606d6a0ceab409b5568a7c6122?context=explore that exists now. Time to recheck things18:07
*** ysandeep is now known as ysandeep|out18:08
clarkbon the upgrade diff check for gerrit I think we should land that first, then if it creates major problems for the 3.3 -> 3.4 upgrade test job we can make that non voting to land the 3.2 removal stuff. Then sort out the 3.4 upgrade next18:19
opendevreviewMerged opendev/gerritlib master: Fix CI setup  https://review.opendev.org/c/opendev/gerritlib/+/81345618:23
opendevreviewMerged opendev/gerritlib master: Rename Gerrit Non-Interactive Users to Service Users  https://review.opendev.org/c/opendev/gerritlib/+/81345218:31
clarkbfungi: if you have time for more reviews I think we land https://review.opendev.org/c/opendev/system-config/+/813375 next. Then we can recheck https://review.opendev.org/c/opendev/system-config/+/813073 and determine if we need to make any changes for that upgrade to run properly.18:53
clarkbI guess https://review.opendev.org/c/opendev/system-config/+/813310 is related to 813375 and we probably want to land them both?18:54
fungimmm, codesearch seems to be down?19:17
fungior maybe my home network is broken19:18
fungimust have been me, i can reach it now and uptime is 64 days19:19
clarkbya I can get to it19:27
clarkbfwiw I think https://www.gerritcodereview.com/3.4.html#other-core-changes is what concerned me when lokoing at 3.4 upgrades. The amount of changes is very large19:33
opendevreviewMerged opendev/system-config master: gerrit: diff config files on upgrade  https://review.opendev.org/c/opendev/system-config/+/81337519:36
clarkbI have rechecked https://review.opendev.org/c/opendev/system-config/+/813073 to get us new results on the shift of the upgrade job now that the diff checker is in place19:38
clarkbfungi: I finally got around to reviewing and approving https://review.opendev.org/c/opendev/system-config/+/812527 to make the ansible-devel job a bit more useful again20:03
opendevreviewMerged opendev/system-config master: Test ansible-devel with an ubuntu-focal bridge.o.o  https://review.opendev.org/c/opendev/system-config/+/81252720:13
fungiclarkb: thanks! i suppose that also means we can safely upgrade bridge to focal20:18
clarkbfungi: https://review.opendev.org/c/opendev/system-config/+/813073 still passes after the diff check landed. I think we can land that change next. Then we'll be ready to drop the 3.2 image management whenever we are comfortable with having a more difficult revert should that become necessary20:19
clarkbbut I found an issue that caused the quoting in gerrit config fix to fail that I'm trying to sort out20:19
clarkbwe're setting heapLimit to 96GB on our test nodes and sometimes taht causes problems:  https://zuul.opendev.org/t/openstack/build/b6cd7ddad6774dc3be11b254bbb26efe/log/review02.opendev.org/docker/gerrit-compose_gerrit_1.txt#35-3820:20
fungioh, hah! yeah i can see where a 96gb heap limit on an 8gb ram test node might cause a problem ;)20:20
opendevreviewClark Boylan proposed opendev/system-config master: Replace testing group vars with host vars for review02  https://review.opendev.org/c/opendev/system-config/+/81353420:26
clarkbI think ^ should fix it but you all should review that one very carefully to be sure I didn't accidentally update prod vars or similar20:26
clarkbI've rechecked the config quote fixup as the above change should correct the issue it hit and that issue doesn't seem super common20:31
clarkbianw: fungi: also now i wonder if we're properly checking config diffs in the upgrade test since it seems like the upgrade should've failed without the quote fix?20:31
clarkbI don't think it hurts to have that check running, but we probably don't want to rely on it too much yet without confirmation it does what we expect?20:32
opendevreviewClark Boylan proposed opendev/system-config master: Replace testing group vars with host vars for review02  https://review.opendev.org/c/opendev/system-config/+/81353420:43
clarkbneeded to update file matchers to run the review tests20:43
fungii thought the quotes change was proposed to get the diff addition to pass? but it's likely i misconstrued the relationship between thse (or lack thereof)20:47
clarkbfungi: I don't think they had a strict relationship20:47
fungiyeah, starting to realize that20:47
clarkband ya it occurred to me after the test job update landed but the quote fix didn't that maybe the diff check isn't really testing what we want it to20:47
clarkbfungi: we can remove the +A from the quotes check if we want to before landing20:48
clarkbbut I think the quotes fix is fine as is since20:48
clarkber since it is largely removing quotes and gerrit doesn't want them there20:48
fungiright20:48
*** dviroel is now known as dviroel|out21:16
ianwclarkb: hrm, yes i wondered about it passing too, i'll look into it21:20
ianwhttps://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_331/813375/5/check/system-config-upgrade-review/331c69e/review02.opendev.org/etc/gerrit.config.pre-upgrade21:24
ianwhttps://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_331/813375/5/check/system-config-upgrade-review/331c69e/review02.opendev.org/etc/gerrit.config21:24
ianwthey are the same -- but that suggests that 3.2 re-wrote the config file21:25
fungioh, yeah gerrit "just does that" and has since ~forevah21:28
fungiif you start gerrit, it will rewrite its config based on its own sense of style21:29
opendevreviewShnaidman Sagi (Sergey) proposed openstack/diskimage-builder master: Improve DIB for building CentOS 9 stream  https://review.opendev.org/c/openstack/diskimage-builder/+/80681921:57
ianwwe can check before as well, it might be getting a bit ott.  i guess that would flag if something changed in a point release22:01
opendevreviewMerged opendev/system-config master: gerrit: Update quotes for 3.3  https://review.opendev.org/c/opendev/system-config/+/81331022:20
clarkboh good point it could be that our old config was getting rewritten too22:37
clarkbI'd believe that22:37
ianwcan someone with an account confirm 22:38
ianwhttps://gerrit-review.googlesource.com/#/dashboard/?title=Mine&foreach=owner:self&My+Pending=is:open&My+Merged=is:merged22:38
ianwgives them a blank page?22:38
ianwjust following up on frickler's issue and want to make sure i'm not nuts22:38
clarkbianw: yes first load seems to be blank then I do a refresh and I get stuff22:39
clarkbseems upstream exhibits the same behavior (a good thing?)22:39
ianwyep, and if you watch the url bar, it sort of loads, then the fragment # disappears?22:39
ianwyeah, it's not quite the same as what we saw -- but much easier to explain to upstream :)22:40
clarkbyup that happens to me too22:40
ianwok, it may just be documentation on using /#/dashboard is out of date; i'll ask and if it is can propose an update22:41
clarkb++22:41
opendevreviewClark Boylan proposed opendev/system-config master: Replace testing group vars with host vars for review02  https://review.opendev.org/c/opendev/system-config/+/81353422:42
clarkbhopefully ^ is closer to working22:42
clarkbthere are a few UI things I really like on 3.3 in particular when you rename or delete/add files that is called out very explicitly now22:48
clarkbfungi: https://review.opendev.org/c/opendev/system-config/+/813073 any objections to landing that now?22:48
clarkbfungi: also https://review.opendev.org/c/opendev/system-config/+/81345322:49
clarkbianw: I think it was you who asked what big changes in 3.4 had me concerned and after rereading the release notes I think it was more the long list at https://www.gerritcodereview.com/3.4.html#other-core-changes less so than any single big change22:50
ianwclarkb: yeah i think the diff is working, so probably best we just leave it and we'll catch future changes (rather than trying to add another step to pre-check)22:51
clarkbianw: ++ sounds good to me22:51
clarkbbut also I think we probably can start planning for a 3.4 upgrade ~post PTG22:51
ianwhaha yes that gives the old scroll finger a workout22:52
clarkbThe 3.4 upgrade also doesn't need an offline reindex, it reindexes online22:53
clarkbthe upgrade itself should be super straightforward like the 3.3 upgrade. Just need to test that things work with it like the zuul summary (I think it does because the system-config-run-review-3.4 job passes) and zuul itself etc22:53
clarkbianw: also luca indicated he is waiting on reviews for release notes before doing that 3.3.7 release. I would expect it to happen soon but hasn't happened yet22:56
ianwso the checks api is finally a thing with 3.4?22:57
clarkbianw: I think it may just be the standardized UI rendering of checks results?22:57
clarkbthe checks api itself is deprecated? But that is something we should probably try to get clarification on since it is confusing22:58
clarkbcorvus: may understand it better through his work integrating zuul upstream22:58
clarkbfungi: thank you for the reviews!23:01
fungipip 21.3 was just now released23:02
fungiapparently comes with a "faster" and "smarter" dep solver23:02
fungialso installing from a git repo does "partial cloning" though hopefully nobody's really doing things in jobs which could be impacted by that23:03
clarkbhere's hoping it helps23:03
clarkbfungi: that can affect pbr's version calculations I think23:03
fungii assume that changelog entry is about git-specific url requirements, not generally installing from a local directory which just happens to also be a git repo23:04
clarkbI think that leaves us with https://review.opendev.org/c/opendev/system-config/+/813074/ and https://review.opendev.org/c/opendev/system-config/+/813534 as the last changes I had related to the gerrit upgrade. The first one we should only land when we're happy with rolling forawrd with 3.3 and not reverting and the second should be mergeable whenever but deserves careful review to23:05
clarkbmake sure I haven't gotten the prod vars mixed up inappropriately23:05
clarkbfungi: that would be my hunch given you don't need to clone when pointed at a local dir23:06
clarkbI've updated the infra meeting agenda. Is there anything missing that should be added? I'll give you all ~10-15 minutes to say something before I send it out23:22
fungiseems good to me23:24
ianwlgtm, i'll get back to the parallel job thing soon23:26
clarkbya I'm hoping to get back to account cleanups soon too. Though probably next week at the earliest23:29
clarkbWe've been having too much fun with updating all the things :)23:29
opendevreviewMerged opendev/system-config master: Test upgrade from Gerrit 3.3 to 3.4  https://review.opendev.org/c/opendev/system-config/+/81307323:35
opendevreviewMerged opendev/system-config master: Rename Gerrit Non-Interactive Users to Service Users  https://review.opendev.org/c/opendev/system-config/+/81345323:35
opendevreviewMerged opendev/system-config master: letsencrypt: avoid running on handler changes  https://review.opendev.org/c/opendev/system-config/+/81276523:35
ianwclarkb: if feel like there is a way we can avoid duplicating things like the backup list23:37
ianwmaybe that should go in the global group-level?23:37
ianw(813534)23:37
clarkbianw: ya I think one option is to put the common stuff in the prod review.yaml group vars file23:38
clarkbthen only specify things like replication and heap size etc in the per host host var file23:38
clarkbI can give that a go if you think that would be better23:39
ianwprobably better to avoid duplication of things like that; and it should be applicable if we ever have a review03 etc too23:40
clarkbit looks like my change successfully set the heap limit to 6g insteadof 96g23:40
clarkbya, let me give that a go23:40
opendevreviewClark Boylan proposed opendev/system-config master: Replace testing group vars with host vars for review02  https://review.opendev.org/c/opendev/system-config/+/81353423:51
clarkbianw: ^ I think that is better but it also calls out hwo we inconsistently use the 'review' and 'gerrit' groups. In this case I'ev stuck with 'review' because the service-review.yaml playbook uses that group to match hosts. But I think a good followup to this change would be combining the two groups and being consistent (drop one or the other in the process023:52
mordredclarkb: I believe at one point in time in history, review == production review\d+ and gerrit == dev+production - review{,-dev)0\d+23:55
mordredI agree - rationalizing seeming like a good idea at this point23:55
ianw++ on that23:58
ianwquestion inline about what we need to override, but lgtm23:58

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!