Closed PrathibaJee closed 3 months ago
Issue closed by mistake. Reopening it.
Setup : In RegistryOffice(RO) version 2.0.1, we have a RO client with release-number=2.0.1 (uuid : ro-2-0-1-http-c-ro-2-0-1-000 )
Steps :
Perform /v1/register-yourself with request-body/registry-office-application-release-number=random releaseNumber (let’s say 5.6.2)
As a consequence , this will update the Registry-Office client’s release-number to 5.6.2 (for the uuid : ro-2-0-1-http-c-ro-2-0-1-000 )
A callback /v1/register-application will be initiated to as a forwarding for the /v1/register-yourself.
The /v1/register-application request body will consists of the release-number=2.0.1 as per the http-server.
Since a client for 2.0.1 is not available in the configuration file , on receiving the /v1/register-application request, server will creat new LTPs (with uuid : ro-2-0-1-http-c-ro-2-0-1-000)
Problem : This results in two identical uuids and makes the application to behave inconsistent.
We don’t have a solid proposal for this problem now. But just a thought, Since we are not going to depict anything from the uuid, if server generates a uuid which is already existing , shall we tune the uuid without changing the basic pattern of the uuid? example : If ro-2-0-1-http-c-ro-2-0-1-000 already exist , then check ro-2-0-1-http-c-ro-2-0-1-001 already exist , then check ro-2-0-1-http-c-ro-2-0-1-002 exist…
There is a testcase in the testsuite which validates the configurability of the release number of the API /v1/register-yourself
ServiceLayer / BasicPart / /v1/register-yourself / Acceptance / Update LTP notified? / registry-office-application-release-number update With the input
This results in changing the release-number of RO client from 2.0.1 to 5.8.2 (uuid : ro-2-0-1-http-c-ro-2-0-1-000)
ro-2-0-1-http-c-ro-2-0-1-000
```diff { + "uuid": "ro-2-0-1-http-c-ro-2-0-1-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ "ro-2-0-1-op-c-bm-ro-2-0-1-000", "ro-2-0-1-op-c-bm-ro-2-0-1-001", "ro-2-0-1-op-c-bm-ro-2-0-1-002", "ro-2-0-1-op-c-bm-ro-2-0-1-003", "ro-2-0-1-op-c-im-ro-2-0-1-000", "ro-2-0-1-op-c-im-ro-2-0-1-001", "ro-2-0-1-op-c-im-ro-2-0-1-002" ], "server-ltp": [ "ro-2-0-1-tcp-c-ro-2-0-1-000" ], "layer-protocol": [ { "local-id": "0", "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "RegistryOffice", + "release-number": "5.8.2" } } } ] } ```As a consequence of the /v1/register-yourself ,
This results in duplicate uuid (ro-2-0-1-http-c-ro-2-0-1-000) for both the instances. Which creates the following problem , Ambiguity in reaching the right instance Validation error while retrieving control-construct because of duplicate entry
Practically this scenario is very rare. But , we shall modify the uuid creation logic to not create duplicate entry in any case.