zulip/zerver/actions
Mateusz Mandera 7ff1227984 presence: Improve INSERT conflict handling in do_update_user_presence.
This was discussed in the review of #29999:
https://github.com/zulip/zulip/pull/29999#discussion_r1620818568

The previous way of handling wasn't entirely correct, as unnecessary
events were omitted, with a bad guarantee of even being in the correct
order.

This is an improvement as now the function detects that it ended up
doing nothing and can skip sending an event.

The race condition is hard to make up in an automated test, but we can
hackily simulate it by injecting a side_effect which will create a
conflicting UserPresence row when the function requests a cursor. Aside
of that, the actual race was simulated in manual testing to verify the
expected behavior.
2024-06-16 11:57:47 -07:00
..
__init__.py
alert_words.py actions: Split out zerver.actions.alert_words. 2022-04-14 17:14:31 -07:00
bots.py models: Extract zerver.models.users. 2023-12-16 22:08:44 -08:00
create_realm.py settings: Remove create_public_stream_policy. 2024-06-10 12:24:45 -07:00
create_user.py analytics: Remove `active_users` and `active_users_log` metrics. 2024-06-03 12:35:35 -07:00
custom_profile_fields.py custom_profile_fields: Make required field optional during update. 2024-04-15 16:52:11 -07:00
default_streams.py i18n: Update translated errors for stream to channel rename. 2024-04-24 14:35:05 -07:00
invites.py invites: Add include_realm_default_subscriptions parameter. 2024-05-14 14:20:07 -07:00
message_delete.py message_delete: Fix event sent for updating first_message_id. 2024-06-03 08:52:11 -07:00
message_edit.py topic: Add resolve topic undo grace period. 2024-06-10 13:34:23 -07:00
message_flags.py push_notifications: Shard mobile push notifications. 2024-05-02 14:25:10 -07:00
message_send.py actions: Tag resolve topic messages with a message type. 2024-06-10 13:34:23 -07:00
muted_users.py python: Consistently use from…import for datetime. 2023-12-05 12:01:18 -08:00
onboarding_steps.py onboarding_steps: Rename 'hotspots' files to 'onboarding_steps'. 2024-05-10 12:30:22 -07:00
presence.py presence: Improve INSERT conflict handling in do_update_user_presence. 2024-06-16 11:57:47 -07:00
reactions.py messages: Remove use of @overload in access_message. 2024-04-12 11:41:27 -07:00
realm_domains.py models: Extract zerver.models.realms. 2023-12-16 22:08:44 -08:00
realm_emoji.py models: Extract zerver.models.realm_emoji. 2023-12-16 22:08:44 -08:00
realm_export.py migration: Rename extra_data_json to extra_data in audit log models. 2023-08-16 17:18:14 -07:00
realm_icon.py models: Extract zerver.models.users. 2023-12-16 22:08:44 -08:00
realm_linkifiers.py models: Extract zerver.models.linkifiers. 2023-12-16 22:08:44 -08:00
realm_logo.py models: Extract zerver.models.users. 2023-12-16 22:08:44 -08:00
realm_playgrounds.py models: Extract zerver.models.realm_playgrounds. 2023-12-16 22:08:44 -08:00
realm_settings.py realm: Add new group setting for who can create public streams. 2024-06-10 12:24:44 -07:00
scheduled_messages.py typos: Fix typos caught by typos. 2024-05-20 13:55:00 -07:00
streams.py message_send: Update do_send_messages codepath to send event on commit. 2024-05-19 23:18:43 -07:00
submessage.py typos: Fix typos caught by mwic. 2024-05-20 13:55:00 -07:00
typing.py settings: Add option to disable seeing typing notifications. 2024-04-16 11:38:12 -07:00
uploads.py claim_attachment: Remove the stale 'user_profile' parameter. 2024-05-21 09:24:43 -07:00
user_activity.py queue_processors: Process user_activity in one query. 2024-01-22 16:25:13 -08:00
user_groups.py user_groups: Move get_group_setting_value_for_audit_log_data. 2024-06-04 09:55:27 -07:00
user_settings.py presence: Core last_update_id mechanism without API changes. 2024-06-02 22:08:28 -07:00
user_status.py users: Update presence and user status code to support restricted users. 2023-11-21 23:58:45 -08:00
user_topics.py message_send: Update do_send_messages codepath to send event on commit. 2024-05-19 23:18:43 -07:00
users.py analytics: Remove `active_users` and `active_users_log` metrics. 2024-06-03 12:35:35 -07:00
video_calls.py