Conversation
|
Note - this has not been marked as "Ready for review" as the archiecture behind the integration tests that start the LCS separately has not yet been understood, hence all integration tests that start their own LCS fail. This will be corrected, but until then, this PR is on hold |
|
In one of the Run Control technical meetings, it was decided that the run control will be able to change the port number provided in the configuration, confirmed with @mroda88, this is a high priority item. |
|
Note - this PR is currently in progress as testing with EHN1 configurations fails the root controller address checks |
|
This is now addressed, requires testing only |
|
Integration tests pass |
|
Note - in commit 190fec5, I have removed all log handlers from the root logger, as |
|
When testing, it was found that when without having a set |
|
Needs a warning and an exit if a config being tested is remote, and the full integ test |
|
Note the pytests failing have been addressed in a separate PR |
|
Integration tests passed |
| if config_is_read_only: | ||
| new_port = find_free_port(30000, 32767) | ||
| root_controller_service.port = new_port | ||
| self.log.debug( |
There was a problem hiding this comment.
Increase log level to info
ae477f6 to
e6d1837
Compare
Description
Fixes #702
Includes basic checks for the root controller and local connectivity service applications, and points the user to the commands that should be run to address this.
Changelog
Prior to booting, the process manager driver will validate that the requested port numbers for the local connectivity service and root controller are free. If they are free, nothing changes. If the ports are occupied, and if the configuration file is modifiable, the port numbers will be changed in the configuration file. If the ports are occupied, and if the configuration file is not modifiable (e.g. the file lives on CVMFS), the DAL is updated, but the configuration file is not. This way, the session can still run, but the consolidated json will contain different port numbers. This is a way to compromise on updating the port numbers, and keeping the dal as updated as possible. I do not think the port number used a vital part of information that must be kept for the offline database analysis.
Suggested testing methods
On the same physical host run
then in a separate tty run
This will give you logs such as
and
Note - if you attempt to use two identital session IDs with the ehn1 conn srv, this will fail as the root controller port gets mapped over, but the "new" session is pointed to the "old" session in the connectivity service storage. The discussion of having an endpoint to check against existing session IDs has been proposed here.
All the integration tests have passed.
Type of change
Key checklist
python -m pytest)pre-commit run --all-files)Further checks
(Indicate issue here: # (issue))