mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-06-22 05:50:57 +02:00
Fix race condition with archived channels (#4635)
This commit is contained in:
parent
47767c1666
commit
dd242c9926
@ -27,7 +27,7 @@ def _resolve(
|
||||
model_names: list[str] | None,
|
||||
display_model_names: list[str] | None,
|
||||
default_model_name: str,
|
||||
fast_default_model_name: str,
|
||||
fast_default_model_name: str | None,
|
||||
) -> set[tuple[str, bool]]:
|
||||
models = set(model_names) if model_names else None
|
||||
display_models = set(display_model_names) if display_model_names else None
|
||||
@ -94,9 +94,11 @@ def _resolve(
|
||||
# It is possible that `default_model_name` is not in `models` and is not in `display_models`.
|
||||
# It is also possible that `fast_default_model_name` is not in `models` and is not in `display_models`.
|
||||
models.add(default_model_name)
|
||||
models.add(fast_default_model_name)
|
||||
if fast_default_model_name:
|
||||
models.add(fast_default_model_name)
|
||||
display_models.add(default_model_name)
|
||||
display_models.add(fast_default_model_name)
|
||||
if fast_default_model_name:
|
||||
display_models.add(fast_default_model_name)
|
||||
|
||||
return set([(model, model in display_models) for model in models])
|
||||
|
||||
|
@ -330,11 +330,19 @@ def _get_messages(
|
||||
|
||||
# have to be in the channel in order to read messages
|
||||
if not channel["is_member"]:
|
||||
make_slack_api_call_w_retries(
|
||||
client.conversations_join,
|
||||
channel=channel["id"],
|
||||
is_private=channel["is_private"],
|
||||
)
|
||||
try:
|
||||
make_slack_api_call_w_retries(
|
||||
client.conversations_join,
|
||||
channel=channel["id"],
|
||||
is_private=channel["is_private"],
|
||||
)
|
||||
except SlackApiError as e:
|
||||
if e.response["error"] == "is_archived":
|
||||
logger.warning(f"Channel {channel['name']} is archived. Skipping.")
|
||||
return [], False
|
||||
|
||||
logger.exception(f"Error joining channel {channel['name']}")
|
||||
raise
|
||||
logger.info(f"Successfully joined '{channel['name']}'")
|
||||
|
||||
response = make_slack_api_call_w_retries(
|
||||
|
@ -16,7 +16,8 @@ from onyx.utils.retry_wrapper import retry_builder
|
||||
|
||||
logger = setup_logger()
|
||||
|
||||
basic_retry_wrapper = retry_builder()
|
||||
# retry after 0.1, 1.2, 3.4, 7.8, 16.6, 34.2 seconds
|
||||
basic_retry_wrapper = retry_builder(tries=7)
|
||||
# number of messages we request per page when fetching paginated slack messages
|
||||
_SLACK_LIMIT = 900
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user