Nicolas May
03/28/2023, 5:13 PMcode_servers:
local_startup_timeout: 180
I even tried it in another dagster.yaml in the user code image, but nothing works.
No matter what I try, I still see the error dagster._core.errors.DagsterUserCodeUnreachableError: User code server request timed out due to taking longer than 60 seconds to complete.
Any tips?daniel
03/28/2023, 5:22 PMNicolas May
03/28/2023, 5:24 PMdocker_daemon_local | 2023-03-28 17:10:00 +0000 - dagster.daemon.SchedulerDaemon - WARNING - Could not load location user_code_beam_dw_dagster to check for schedules due to the following error: dagster._core.errors.DagsterUserCodeUnreachableError: User code server request timed out due to taking longer than 60 seconds to complete.
docker_daemon_local |
docker_daemon_local | Stack Trace:
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/dagster/_core/workspace/context.py", line 599, in _load_location
docker_daemon_local | location = self._create_location_from_origin(origin)
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/dagster/_core/workspace/context.py", line 519, in _create_location_from_origin
docker_daemon_local | return origin.create_location()
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/dagster/_core/host_representation/origin.py", line 332, in create_location
docker_daemon_local | return GrpcServerRepositoryLocation(self)
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/dagster/_core/host_representation/repository_location.py", line 637, in __init__
docker_daemon_local | self._external_repositories_data = sync_get_streaming_external_repositories_data_grpc(
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/dagster/_api/snapshot_repository.py", line 25, in sync_get_streaming_external_repositories_data_grpc
docker_daemon_local | external_repository_chunks = list(
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/dagster/_grpc/client.py", line 351, in streaming_external_repository
docker_daemon_local | for res in self._streaming_query(
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/dagster/_grpc/client.py", line 186, in _streaming_query
docker_daemon_local | self._raise_grpc_exception(
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/dagster/_grpc/client.py", line 137, in _raise_grpc_exception
docker_daemon_local | raise DagsterUserCodeUnreachableError(
docker_daemon_local |
docker_daemon_local | The above exception was caused by the following exception:
docker_daemon_local | grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with:
docker_daemon_local | status = StatusCode.DEADLINE_EXCEEDED
docker_daemon_local | details = "Deadline Exceeded"
docker_daemon_local | debug_error_string = "{"created":"@1680023292.241437667","description":"Deadline Exceeded","file":"src/core/ext/filters/deadline/deadline_filter.cc","file_line":81,"grpc_status":4}"
docker_daemon_local | >
docker_daemon_local |
docker_daemon_local | Stack Trace:
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/dagster/_grpc/client.py", line 182, in _streaming_query
docker_daemon_local | yield from self._get_streaming_response(
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/dagster/_grpc/client.py", line 171, in _get_streaming_response
docker_daemon_local | yield from getattr(stub, method)(request, metadata=self._metadata, timeout=timeout)
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/grpc/_channel.py", line 426, in __next__
docker_daemon_local | return self._next()
docker_daemon_local | File "/usr/local/lib/python3.9/site-packages/grpc/_channel.py", line 826, in _next
docker_daemon_local | raise self
docker_daemon_local |
Nicolas May
03/28/2023, 5:24 PMdaniel
03/28/2023, 5:26 PMNicolas May
03/28/2023, 5:26 PMdaniel
03/28/2023, 5:26 PMNicolas May
03/28/2023, 5:27 PMdaniel
03/28/2023, 5:30 PMNicolas May
03/28/2023, 5:31 PMload_from:
# Each entry here corresponds to a service in the docker-compose file that exposes user code.
- grpc_server:
host: docker_user_code_beam_dw_dagster
port: 4004
location_name: "user_code_beam_dw_dagster"
daniel
03/28/2023, 5:32 PMdaniel
03/28/2023, 5:32 PMNicolas May
03/28/2023, 5:32 PMNicolas May
03/28/2023, 5:32 PMdaniel
03/28/2023, 5:33 PMNicolas May
03/28/2023, 5:34 PMdocker_user_code_beam_dw_dagster | 2023-03-28 17:26:03 +0000 - dagster - INFO - Started Dagster code server for package dagster_integrations on port 4004 in process 1
daniel
03/28/2023, 5:35 PMNicolas May
03/28/2023, 5:35 PMdaniel
03/28/2023, 5:35 PMdaniel
03/28/2023, 5:35 PMNicolas May
03/28/2023, 5:35 PMdaniel
03/28/2023, 5:37 PMNicolas May
03/28/2023, 5:37 PMNicolas May
03/28/2023, 5:41 PMdisplay_raw_sql=False
in load_assets_from_dbt_manifets
to try to speed things updaniel
03/28/2023, 5:42 PMNicolas May
03/28/2023, 5:42 PMdaniel
03/28/2023, 5:42 PMNicolas May
03/28/2023, 5:42 PMdaniel
03/28/2023, 5:42 PMNicolas May
03/28/2023, 5:43 PMdoesn't sound very enjoyable even once its no longer timing outYou are correct
daniel
03/28/2023, 5:43 PMNicolas May
03/28/2023, 5:45 PMdaniel
03/28/2023, 5:45 PMdaniel
03/28/2023, 5:45 PMNicolas May
03/28/2023, 5:46 PMDAGSTER_GRPC_TIMEOUT_SECONDS
seems to've worked betterNicolas May
03/28/2023, 5:47 PMNicolas May
03/28/2023, 5:47 PMdaniel
03/28/2023, 5:47 PMNicolas May
03/28/2023, 5:48 PMdaniel
03/28/2023, 5:48 PMNicolas May
03/28/2023, 5:48 PMNicolas May
03/28/2023, 5:49 PMdaniel
03/28/2023, 5:54 PMNicolas May
03/28/2023, 5:55 PMdaniel
03/28/2023, 5:55 PMdaniel
03/28/2023, 6:03 PMfrom dagster._core.host_representation.origin import (
GrpcServerRepositoryLocationOrigin,
)
host = "docker_user_code_beam_dw_dagster"
port = 4004
origin = GrpcServerRepositoryLocationOrigin(host=host, port=port)
location = origin.create_location()
for repo_name in location.get_repositories():
print(f"{repo_name}:")
print(str(location.get_repositories()[repo_name].external_repository_data))
daniel
03/28/2023, 6:03 PMNicolas May
03/28/2023, 6:04 PMdaniel
03/28/2023, 6:06 PMNicolas May
03/28/2023, 6:07 PMNicolas May
04/04/2023, 7:20 PMdaniel
04/05/2023, 1:55 AMNicolas May
04/06/2023, 3:01 PMdaniel
04/06/2023, 3:01 PMNicolas May
04/06/2023, 3:01 PMNicolas May
04/06/2023, 4:56 PM/usr/local/lib/python3.9/site-packages/dagster/_core/workspace/context.py:602: UserWarning: Error loading repository location user_code_beam_dw_dagster:dagster._core.errors.DagsterUserCodeUnreachableError: Could not reach user code server. gRPC Error code: UNAVAILABLE
Stack Trace:
File "/usr/local/lib/python3.9/site-packages/dagster/_core/workspace/context.py", line 599, in _load_location
location = self._create_location_from_origin(origin)
File "/usr/local/lib/python3.9/site-packages/dagster/_core/workspace/context.py", line 519, in _create_location_from_origin
return origin.create_location()
File "/usr/local/lib/python3.9/site-packages/dagster/_core/host_representation/origin.py", line 332, in create_location
return GrpcServerRepositoryLocation(self)
File "/usr/local/lib/python3.9/site-packages/dagster/_core/host_representation/repository_location.py", line 603, in __init__
list_repositories_response = sync_list_repositories_grpc(self.client)
daniel
04/06/2023, 5:38 PMdaniel
04/06/2023, 5:39 PMNicolas May
04/06/2023, 7:00 PMdaniel
04/06/2023, 7:01 PMNicolas May
04/06/2023, 7:01 PMdaniel
04/06/2023, 7:01 PMdaniel
04/06/2023, 7:01 PMNicolas May
04/06/2023, 7:02 PMNicolas May
04/06/2023, 7:03 PMwould you know from your logs if the user code container went down?Hmm... I don't think I've set that up
Nicolas May
04/06/2023, 7:04 PMdaniel
04/06/2023, 7:04 PMNicolas May
04/06/2023, 7:04 PMNicolas May
04/06/2023, 7:07 PMNicolas May
04/06/2023, 7:08 PMNicolas May
04/11/2023, 1:19 PM--heartbeat-timeout 1200
(20 min) on the dagster api grpc command in the docker-compose.yaml to try to fix the gRPC timeout problem, but hadn't removed the heartbeat flags, and (2) the docker compose service restart policy is unless-stopped
...
Only by looking at the service's logs and noticing that there were repeated cycles of Started Dagster code server for package ...
and Shutting down Dagster code server for package ...
exactly 20 minutes apart did it occur to me that this heartbeat timeout flag was causing the problem
Once got rid of the heartbeat timeout, this user code repo container (after it takes a while to spin up) works without a hitch...
Thanks for helping me out with this!