Skip to content

Commit

Permalink
System-only config: revert clearing of candidate after commit
Browse files Browse the repository at this point in the history
Add compile-time option SYSTEM_ONLY_CONFIG_CANDIDATE_CLEAR to document
  • Loading branch information
olofhagsand committed Nov 25, 2024
1 parent 030dd89 commit 4c57edf
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
2 changes: 2 additions & 0 deletions apps/backend/backend_commit.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
10 changes: 10 additions & 0 deletions include/clixon_custom.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 4c57edf

Please sign in to comment.