[MCOL-4170] Refactor services/systemd units to finish their bootstrap after they are ready to process network traffic. Created: 2020-07-13  Updated: 2021-01-26  Resolved: 2021-01-26

Status: Closed
Project: MariaDB ColumnStore
Component/s: None
Affects Version/s: None
Fix Version/s: 5.5.2

Type: Task Priority: Major
Reporter: Roman Assignee: Daniel Lee (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
PartOf
is part of MCOL-4132 systemd startup logic suggestions Closed

 Description   

As of now MCS systemd units relie on the order and sleep. We need to replace sleep with presumably socket activation to start units only after network service is up and running, e.g. start controllernode when at least local workernode is up and running.

This is also expected to eliminate the need for an intermediate bash script currently in use, and the need for various sleep calls.



 Comments   
Comment by Roman [ 2020-09-02 ]

This approach won't work in non-systemd environment w/o excessive changes in our daemons so we need to abandon this approach IMHO.
Patrick suggested a better approach, namely to daemonize the services so that the parent forks first and then the child loads a target binary. The child notifies the parent via pipe when it is ready to process network traffic so the parent can safely exits at that time.

Comment by Roman [ 2020-11-22 ]

4QA. MCS should just work as previously so the test is to check if it does so.

Comment by Daniel Lee (Inactive) [ 2021-01-26 ]

Build verified: 5.5.2 (b1552), develop b1546

The fixed also checked into the develop branch

Executed the entire ColumnStore MTR test suite on both branches. Did several multi-node installations with a Maxscale node.

Generated at Thu Feb 08 02:48:20 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.