-
Notifications
You must be signed in to change notification settings - Fork 600
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add port_count=1 to DQ job in YT #13459
base: main
Are you sure you want to change the base?
Conversation
⚪ Test history | Ya make output | Test bloat
🟢 |
⚪ Test history | Ya make output | Test bloat
🟢 |
@@ -678,6 +678,7 @@ namespace NYql { | |||
fluent.Item("file_paths").Value(*filePaths); | |||
}) | |||
.Item("job_count").Value(1) | |||
.Item("port_count").Value(1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should specify the port range also. (31002...31002 + 100 default)
Now we can receive not appropriate one.
https://github.com/ydb-platform/ydb/blob/main/ydb/library/yql/providers/dq/config/config.proto#L110
https://github.com/ydb-platform/ydb/blob/main/ydb/library/yql/tools/dq/worker_job/dq_worker.cpp#L189
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Port requesting doesn't work like that. You can't specify port range that you need (and it is not clear why an user would want to specify that)
You just specify port_count = 1
and the job will have YT_PORT_0
env variable set with a port assigned. This port will be from a range configured in exec nodes static config and may be different for different exec nodes
This PR doesn't use this port, it only requests one to avoid placing on nodes with 0 available ports, since they are more likely to be unavailable on 31002
Changelog category
Additional information
Currently, DQ job binds on some port and expects it to be reachable from yql agent
Ideally, it should declare
port_count = 1
and use the port provided by exec nodeThis PR adds
port_count = 1
to this job to prevent it from being placed on portless exec nodes (that do not have ports)I created an issue to ytsaurus to start using this port: ytsaurus/ytsaurus#1034