Server auto re-binding #291

Closed
opened 2024-01-18 06:33:29 +00:00 by alexvanin · 1 comment
Owner

Application starts if at least one endpoint address (interface) can bind listening server. There are cases when some interfaces become available over time, e.g. after system or network restart. However application will not bind any "late" interfaces until app is manually restarted.

Describe the solution you'd like

Storage node had the same issue when application starts with only localhost endpoint and was completely ignoring other data-path interfaces. To solve that, application tries to re-bind servers over time. This is a good stability improvement, which gateway apps may appreciate too.

Describe alternatives you've considered

Control bound interface with metrics and restart application until all required interfaces are up. This requires some external watcher. As far as I know, there was some issues with systemd in controlling of interface status. Described approach looks more robust and independent.

Additional context

Storage node is more affected to described problem, because it serves request over two independent networks (internal for node communications and data for client communications) and requests are delivered directly. Gateways, on the other hand, usually accept requests through some reverse-proxies and localhost binding is pretty much enough to keep going.

## Is your feature request related to a problem? Please describe. Application starts if at least one endpoint address (interface) can bind listening server. There are cases when some interfaces become available over time, e.g. after system or network restart. However application will not bind any "late" interfaces until app is manually restarted. ## Describe the solution you'd like Storage node had the same issue when application starts with only localhost endpoint and was completely ignoring other data-path interfaces. To solve that, application [tries to re-bind](https://git.frostfs.info/TrueCloudLab/frostfs-node/pulls/836) servers over time. This is a good stability improvement, which gateway apps may appreciate too. ## Describe alternatives you've considered Control bound interface with metrics and restart application until all required interfaces are up. This requires some external watcher. As far as I know, there was some issues with systemd in controlling of interface status. Described approach looks more robust and independent. ## Additional context Storage node is more affected to described problem, because it serves request over two independent networks (internal for node communications and data for client communications) and requests are delivered directly. Gateways, on the other hand, usually accept requests through some reverse-proxies and localhost binding is pretty much enough to keep going.
alexvanin added this to the v0.29.0 milestone 2024-01-18 06:35:25 +00:00
pogpp was assigned by alexvanin 2024-01-18 06:46:02 +00:00
alexvanin modified the milestone from v0.29.0 to v0.30.0 2024-02-28 11:15:47 +00:00
Author
Owner

Closed in #309

Closed in https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/pulls/309
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: TrueCloudLab/frostfs-s3-gw#291
No description provided.