ConfD User Community

CDB boot error: Init transaction failed to validate


#1

Hello,
We trying to upgrade ConfD to version 7.1.1 but it fails to start because it tries to validate “must” statements in phase0 when the external application is not started, this behavior wasn’t observed with ConfD 6.5 .

The error message is:

"
confd[3969]: devel-c no registration found for callpoint simplecp/get_elem of type=external path <path_with_must_statment>
confd[3969]: - CDB boot error: Init transaction failed to validate: <must_statement>: <must_statement_error-message>
"

If we start ConfD in phase0 and start the applications it is working, but it is very difficult for us to orchestrate the processes and the phases and we want to avoid it.
We tried to use the ‘–ignore-initial-validation’ but without success.

Has something change in newer ConfD versions in this steps?
How can we overcome this issue?

Thanks in advance.
Br,
Nikos


#2

The initial transaction takes place when 1) confd starts with an empty database 2) CDB upgrade needs to be done. I’m assuming 2) is your case; you did not see it with 6.5 because you never needed to upgrade, and moving from one major confd release to another causes CDB upgrade. The option --ignore-initial-validation cannot help you, I’m afraid, since

[this] option makes ConfD skip any validation callpoints when committing these initial transaction.

So only validation callpoints can be skiiped; I guess confd needs to make sure that at least model-wise the configuration is sound, so there is no way to skip validating must statements and such.

Technically, you do not need to make sure that phases and applications are always started in the correct order, it is enough that you make it start like that just once to upgrade CDB, all subsequent starts can be done without this careful sequencing - I don’t know, is this an option for you? Though it is perhaps advisable to take a look at the startup process if you can implement it better.