[01:43:11] @dcausse looks like it failed on `self._prepare_wdqs_target_path()`'s rm command https://www.irccloud.com/pastebin/1iugeaCg/ [07:48:52] hm... I don't quite get how this could fail... these are only very simple rm/mkdir/test commands :/ [07:49:22] oh [07:49:45] missing comma :/ [07:52:12] def func(*par: str), even mypy won't help you if you call func("one" "two") instead of func("one", "two") [08:04:16] that's string concatenation, it's valid [08:04:26] >>> "foo" "bar" [08:04:26] 'foobar' [08:05:21] Hm, might make sense with vars in between but with a chain of literals the IDE could at least give a hint [08:06:14] it's used a lot to split long strings into multiple lines, so maybe the IDE could hint only if there are spaces, not newlines [08:06:45] the other similar syntax confusion is making a tuple of 1 item, without a comma is just a string [08:06:48] >>> ("foo") [08:06:50] 'foo' [08:07:26] Oh, so that get’s implicitly converted? [08:07:54] s/get’s/gets/ [08:08:43] no, that's just a string, with parentheses that allow to use the string concatenation [08:16:33] ebernhardson: https://logstash.wikimedia.org/goto/0266f02c804026e80e666a3d5b7805b2 [08:17:14] I can see one with the new UA I bet https://logstash.wikimedia.org/app/discover#/doc/0fade920-6712-11eb-8327-370b46f9e7a5/ecs-default-1-1.11.0-6-2024.24?id=e-aEC5AB0bw1V4rvhOFM [08:34:51] volans: yes... thing is that I make use of this string concatenation quite a log esp. to split long strings over multilines, which is very similar to splitting long args over multiline too :) [08:34:53] https://gerrit.wikimedia.org/r/c/operations/cookbooks/+/1038904/24..25/cookbooks/sre/wdqs/data-reload.py [08:35:52] I'm totally with you, it's one of the python syntax that I find fairly annoying and quite error prone [09:32:55] wdqs2023 does not have the latest code... trying scap deploy -l 'wdqs2023.codfw.wmnet' but getting "No targets selected, check limits and dsh_targets" [10:05:08] apparently test hosts are pulled individually as scap targets [10:08:17] lunch [12:56:49] o/ [13:10:42] ryankemper I assigned T364861 to you, feel free to close if it's no longer relevant [13:10:42] T364861: Check SLO impact of Elastic cluster rolling restarts/mitigate if necessary - https://phabricator.wikimedia.org/T364861 [13:15:04] o/ [14:04:16] workout/taking my son to camp...back in ~1h [14:58:40] P&T staff meeting is conflicting with Wednesday meeting. Do what make sense to you! [15:54:46] Eating some food real quick btw meetings [16:21:57] ryankemper: we made few iterations with Balthazar on the cookbook, I think we're close, uploaded a last set of fixes so if you have time to make another try that'd be great! :) [16:21:58] dinner [16:24:58] dcausse: kicking off another run now [16:41:57] Failed fast this time: [16:41:59] https://www.irccloud.com/pastebin/HRms4C3Q/ [16:42:11] TLDR `current_age = (right_now_date - dump_date).days` leads to `TypeError: can't subtract offset-naive and offset-aware datetimes` [16:44:01] https://stackoverflow.com/questions/4530069/how-do-i-get-a-value-of-datetime-today-in-python-that-is-timezone-aware/49059780#49059780 looks like we can just use `datetime.now(timezone.utc).astimezone()`. Getting patch up now [18:11:28] lunch, back in ~1h [18:46:31] * ebernhardson is not sure List, Boolean>> is any simpler :P [19:01:44] ebernhardson: where does that list live and does the outer Function just delegate to its Predicate parameter? [19:05:18] pfischer: this is me trying to make anther patch more java-ish, sec. [19:06:05] pfischer: from https://gerrit.wikimedia.org/r/c/wikidata/query/rdf/+/1041789/1/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/throttling/SimpleBooleanExpression.java to https://phabricator.wikimedia.org/P64743 [19:06:12] but it feels like i'm still not on the right path [19:07:54] the validation expression isn't tested yet, suspect it needs ^ and $ but i was about to add some tests to be sure [21:05:46] The regex looks good to me, ran a few tests on regex101.com [21:06:27] Oh, you mean the one in the Paste… [21:20:34] pfischer: yea, it did need the ^$ because Pattern.asPredicate uses Pattern.find, although i guess there is no great reason to make it a predicate, other than to simplify the available options [21:20:56] i pondered switching over to some dedicated classes for pos/neg expressions, but really this is probably fine [21:21:00] it just looks a little awkward [21:23:00] Dedicated classes sound too much. [21:26:18] It’s not intended to be a pluggable API, so the list of expressions seems suitable. Debugging might get a little harder, since expression only gives you a list of cryptic method references, but I’d be fine with that. [21:30:29] ebernhardson: BTW: I would like to test the SUP rate-limiting tomorrow and I thought of either stopping staging for some time and let it catch up or run a batch on staging. Or would you suggest yet another deployment? [21:32:52] pfischer: you could probably delete staging and start it with an older timestamp, should be fine [21:33:02] but pausing it ahead of time works too [21:47:59] dcausse: I got a successful run on the `data-reload` cookbook. I did set the `--no-position-kafka-offsets` flag since there's no updater on this host so there is some logic that went untested but I think we're ready to merge https://gerrit.wikimedia.org/r/c/operations/cookbooks/+/1038904 [21:52:32] \o/