Zach
2bac4eb739
fix: use time.Equal() for external auth token expiry comparison ( #22295 )
...
The listen loop in workspaceAgentsExternalAuthListen compared
OAuthExpiry using == which compares `time.Time` internal struct fields
including the `*time.Location` pointer.
`time.LoadLocation` does not cache the returned `*Location` pointer, so
each lib/pq connection gets a distinct pointer for the same timezone.
When `pq.ParseTimestamp()` applies the connection's location to a parsed
timestamp, the resulting time.Time embeds that connection-specific
pointer. If the `sql.DB` pool hands out different connections for the
two GetExternalAuthLink reads, the identical timestamp produces
`time.Time` values where == returns false despite representing the same
instant. This is intermittent because the pool _usually_ reuses the same
connection for sequential queries.
This change uses `.Equal()` to compare instants regardless of location.
Also makes the test's validation call counter atomic to fix a possible
data race between the HTTP server and test goroutines.
2026-02-25 08:45:00 -07:00
..
2026-02-24 13:26:55 +04:00
2025-06-20 13:16:55 -06:00
2026-01-21 19:06:19 +00:00
2026-02-26 02:40:45 +11:00
2025-10-23 15:38:49 -05:00
2026-01-08 15:24:11 +04:00
2026-02-24 16:45:56 +00:00
2025-12-15 13:44:44 -09:00
2026-02-06 09:52:17 -07:00
2026-02-06 10:12:58 +04:00
2026-02-12 13:40:47 -08:00
2025-10-16 01:56:43 +11:00
2026-01-08 15:24:11 +04:00
2026-02-26 02:40:45 +11:00
2026-02-19 09:02:19 +00:00
2026-02-03 17:52:07 +00:00
2026-01-29 13:50:15 +01:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-01-15 16:37:05 +00:00
2026-02-23 12:18:44 +01:00
2026-02-23 12:18:44 +01:00
2026-02-03 17:52:07 +00:00
2026-02-23 22:46:17 -06:00
2025-06-20 13:16:55 -06:00
2026-02-23 12:18:44 +01:00
2026-01-08 15:24:11 +04:00
2026-02-18 16:30:16 +00:00
2026-02-23 12:18:44 +01:00
2025-10-15 17:37:37 +00:00
2025-08-16 01:31:00 +10:00
2026-02-19 09:02:19 +00:00
2026-02-25 08:58:50 +00:00
2026-01-30 13:30:06 +01:00
2026-02-23 22:46:17 -06:00
2025-10-23 15:38:49 -05:00
2025-06-17 09:00:32 -08:00
2025-03-18 00:02:47 +01:00
2026-02-23 22:46:17 -06:00
2025-06-20 13:16:55 -06:00
2025-07-08 14:31:05 +00:00
2026-02-19 09:02:19 +00:00
2026-02-26 02:40:45 +11:00
2026-01-09 15:40:26 -07:00
2026-02-24 17:04:42 +00:00
2025-12-14 03:00:03 +00:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-08-22 16:32:35 +10:00
2025-06-20 13:16:55 -06:00
2026-02-02 09:03:18 -06:00
2026-01-08 15:24:11 +04:00
2026-02-24 23:46:43 -06:00
2026-01-08 15:24:11 +04:00
2026-02-23 22:46:17 -06:00
2025-03-31 10:55:44 -04:00
2025-12-15 11:26:41 -06:00
2025-11-17 13:24:12 +00:00
2026-02-25 13:14:32 +02:00
2026-02-23 08:30:32 -08:00
2025-09-26 11:56:34 +02:00
2026-02-24 15:27:03 +00:00
2026-02-24 15:27:03 +00:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-10-27 17:14:16 -06:00
2026-01-08 15:24:11 +04:00
2025-06-20 13:16:55 -06:00
2026-01-08 15:24:11 +04:00
2026-02-23 08:30:32 -08:00
2026-01-08 15:24:11 +04:00
2026-01-15 16:37:05 +00:00
2026-01-15 16:37:05 +00:00
2025-06-25 13:03:32 +00:00
2025-04-22 16:21:15 +00:00
2025-06-24 09:14:41 +01:00
2026-01-12 18:19:19 -08:00
2025-12-15 17:41:47 +00:00
2025-09-04 14:28:29 +10:00
2026-01-08 15:24:11 +04:00
2025-12-15 11:26:41 -06:00
2025-05-15 15:32:52 +01:00
2025-06-20 13:16:55 -06:00
2025-06-20 13:16:55 -06:00
2026-01-26 09:24:45 +00:00
2025-08-19 10:41:33 +02:00
2025-08-19 10:41:33 +02:00
2025-06-20 13:16:55 -06:00
2026-01-08 15:24:11 +04:00
2025-03-26 01:56:39 -05:00
2026-01-08 15:24:11 +04:00
2026-02-03 12:48:25 -06:00
2026-02-03 12:48:25 -06:00
2026-02-13 08:19:07 -06:00
2026-01-08 15:24:11 +04:00
2026-01-15 12:41:28 +03:00
2026-01-15 12:41:28 +03:00
2026-01-15 12:41:28 +03:00
2025-07-03 18:33:47 +02:00
2026-02-23 12:18:44 +01:00
2025-10-22 15:18:42 -05:00
2026-02-03 17:52:07 +00:00
2025-07-15 14:55:34 +10:00
2025-07-15 14:55:34 +10:00
2026-02-02 09:03:18 -06:00
2026-02-03 17:52:07 +00:00
2026-02-19 09:02:19 +00:00
2025-07-28 15:02:26 +01:00
2025-08-21 16:03:34 -04:00
2026-02-03 17:52:07 +00:00
2025-06-20 13:16:55 -06:00
2025-10-06 13:58:37 +02:00
2026-02-03 17:52:07 +00:00
2026-01-12 18:19:19 -08:00
2025-09-26 11:43:32 +02:00
2025-09-26 11:43:32 +02:00
2025-06-20 13:16:55 -06:00
2026-01-08 15:24:11 +04:00
2026-02-13 19:44:50 -05:00
2026-02-13 19:44:50 -05:00
2026-02-03 10:16:53 -06:00
2026-02-03 09:45:23 +00:00
2025-06-20 13:16:55 -06:00
2026-02-20 09:01:00 -06:00
2026-02-20 09:01:00 -06:00
2026-02-13 08:19:07 -06:00
2026-02-03 17:52:07 +00:00
2025-03-27 10:03:53 +00:00
2025-03-27 10:03:53 +00:00
2026-01-12 18:19:19 -08:00
2025-06-18 14:07:53 +00:00
2026-01-19 12:36:33 +00:00
2026-02-25 08:45:00 -07:00
2026-02-25 08:45:00 -07:00
2025-12-22 10:21:39 +04:00
2026-02-18 09:44:06 +01:00
2026-02-18 09:44:06 +01:00
2025-06-20 13:16:55 -06:00
2025-09-26 11:56:34 +02:00
2026-02-03 09:45:23 +00:00
2026-02-23 22:46:17 -06:00
2025-12-15 11:26:41 -06:00
2026-01-08 15:24:11 +04:00
2026-02-23 08:30:32 -08:00
2026-02-23 08:30:32 -08:00
2025-04-16 10:37:09 -06:00
2026-01-08 15:24:11 +04:00