From 91cfd5d2ac3d70da71b50813dbf11342072579cc Mon Sep 17 00:00:00 2001 From: Jakub Kicinski Date: Mon, 28 Apr 2025 16:26:27 -0700 Subject: [PATCH 1/2] pw-poller: restore log section open Commit db9c2da240ab (pw_poller: poll events, not series, 2025-04-23) unintentionally removed a log opening section, while deleting some unused code. The log_open_sec() and log_end_sec() calls must be balanced. Signed-off-by: Jakub Kicinski --- pw_poller.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pw_poller.py b/pw_poller.py index 26483e0..d767e77 100755 --- a/pw_poller.py +++ b/pw_poller.py @@ -193,6 +193,7 @@ def run(self, life) -> None: secs = 0 while life.next_poll(secs): req_time = datetime.datetime.now() + log_open_sec(f"Querying patchwork at {req_time} since {since}") json_resp, since = self._pw.get_new_series(since=since) log(f"Loaded {len(json_resp)} series", "") From 14d9d86f7a42dd2a40a186797683bc7f5fce0fe7 Mon Sep 17 00:00:00 2001 From: Jakub Kicinski Date: Mon, 28 Apr 2025 16:34:00 -0700 Subject: [PATCH 2/2] pw-poller: make sure we don't double-process the same series We seem to be fetching the same series multiple times right now. This is likely because PW uses >= for time comparison and we use the date of last fetched event as the since date. Signed-off-by: Jakub Kicinski --- pw_poller.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pw_poller.py b/pw_poller.py index d767e77..78159be 100755 --- a/pw_poller.py +++ b/pw_poller.py @@ -197,6 +197,11 @@ def run(self, life) -> None: json_resp, since = self._pw.get_new_series(since=since) log(f"Loaded {len(json_resp)} series", "") + # Advance the time by 1 usec, pw does >= for time comparison + since = datetime.datetime.fromisoformat(since) + since += datetime.timedelta(microseconds=1) + since = since.isoformat() + for pw_series in json_resp: try: self.process_series(pw_series)