eXist-db / existdb-ansible-role

Ansible role for eXist-db
GNU Lesser General Public License v2.1
11 stars 10 forks source link

[BUG] eXist-db conf templates use the incorrect versions #54

Open adamretter opened 1 year ago

adamretter commented 1 year ago

At present when exist_confxml_from_template: yes is used, the conf.xml is read from the templates folder.

Unfortunately the template to use is selected based only on the major version number of eXist-db (see: https://github.com/eXist-db/existdb-ansible-role/blob/v1.2/tasks/postinstall.yml#L227).

However eXist-db has changed its conf.xml files between minor versions to add new features; as is permissible by the Semver 2.0.0 specification.

One such example is configuration settings around Document and Collection Locks, and the Lock Table. This means that it is quite possible that Ansible will deploy a non-complete (or even incorrect) conf.xml file, which may end up with certain config settings in eXist-db being "undefined", which leads to "undefined" behaviour at runtime.

chakl commented 1 year ago

However eXist-db has changed its conf.xml files between minor versions to add new features

Exactly. When this role was written (around eXist-db 4.7), core configuration files like conf.xml have changed without version numbers being updated. (not sure if this still is the case). This left us with guesswork about correct template files.

As a workaround, you can set exist_confxml_from_template: no and provide a desired conf.xml yourself.

This should be fixed upstream, ensuring that every change to default config files will result in a new version number.

adamretter commented 1 year ago

@chakl I'm not sure I understand what you mean, could you explain further please? Each released version of eXist-db has a corresponding conf.xml file