System-only config: revert clearing of candidate after commit

Add compile-time option SYSTEM_ONLY_CONFIG_CANDIDATE_CLEAR to document
This commit is contained in:
Olof hagsand 2024-11-25 15:09:10 +01:00
parent 030dd89b83
commit 4c57edfc57
2 changed files with 12 additions and 0 deletions

View file

@ -749,7 +749,9 @@ candidate_commit(clixon_handle h,
/* Remove system-only-config data from destination cache */
if (clicon_option_bool(h, "CLICON_XMLDB_SYSTEM_ONLY_CONFIG")){
xmldb_clear(h, "running");
#ifdef SYSTEM_ONLY_CONFIG_CANDIDATE_CLEAR
xmldb_clear(h, db);
#endif
}
xmldb_modified_set(h, db, 0); /* reset dirty bit */
/* Here pointers to old (source) tree are obsolete */

View file

@ -204,3 +204,13 @@
* If not set, reduces memory with 8 bytes per yang-stmt.
*/
#undef YANG_SPEC_LINENR
/*! Effort to clear system-only config data from candidate cache after commit
*
* The idea was that the candidate would be re-loaded from file and populated (as running)
* However, there may be instances where the candidate cache is loaded without YANG binding,
* such as in xmldb_get0(h, "candidate", YB_NONE,...), whereas running cache is loaded with YANG.
* This causes xml_cmp to show that the datastores are unequal and may cause a wrong diff, or
* worse case an overwrite.
*/
#undef SYSTEM_ONLY_CONFIG_CANDIDATE_CLEAR