Page MenuHomeDevCentral

Add XML support on db-A PostgreSQL
Closed, ResolvedPublic

Description

Orbeon Forms requires XML feature with PostgreSQL.

That means we need to build PostgreSQL with libxml support.

When saving a form on Orbeon:

2023-05-25T04:17:27,661 ERROR PageFlowControllerProcessor - error caught {controller: "oxf:/apps/fr/page-flow.xml", method: "PUT", path: "/fr/service/postgresql/crud/orbeon/builder/data/.../data.xml"}
2023-05-25T04:17:27,668 ERROR PageFlowControllerProcessor -
+----------------------------------------------------------------------------------------------------------------------+
|An Error has Occurred                                                                                                 |
|----------------------------------------------------------------------------------------------------------------------|
|ERROR: unsupported XML feature                                                                                        |
|  Detail: This functionality requires the server to be built with libxml support.                                     |
|----------------------------------------------------------------------------------------------------------------------|
|Application Call Stack                                                                                                |                                                                                                    |----------------------------------------------------------------------------------------------------------------------|
|oxf:/apps/fr/page-flow.xml                                                        |reading page model data output|  42|                                                                                                    |······················································································································|
|element=<service path="/fr/service/(oracle|mysql|postgresql|db2|sqlserver)/crud/([^/]+/[^/]+/(form/[^/]+|(data|draft)/|                                                                                                    |model  =persistence/relational/crud.xpl                                                                               |
|----------------------------------------------------------------------------------------------------------------------|                                                                                                    |oxf:/apps/fr/persistence/relational/crud.xpl                                      |executing processor           |  17|
|······················································································································|
|element=<p:processor name="fr:relational-crud"/>                                                                      |
|name   ={http://orbeon.org/oxf/xml/form-runner}relational-crud                                                        |
|----------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.postgresql.util.PSQLException                                                                          |
|----------------------------------------------------------------------------------------------------------------------|

Event Timeline

dereckson triaged this task as High priority.May 25 2023, 04:21
dereckson created this task.
dereckson moved this task from Backlog to Servers on the DBA board.

Packages required to build it ourselves:

postgresql_dependencies_build:
  pkg.installed:
    - pkgs:
      - dialog4ports
      - gmake
      - pkgconf
      - gettext

Option to enable: XML

When upgraded to FreeBSD 14, we lost this.

I've added documentation to https://agora.nasqueron.org/Operations_grimoire/FreeBSD#PostgreSQL without real conviction.

A better solution would be to create a cluster of 3 servers and create new servers:

  • we start by creating db-A-002, db-A-003, so we've a cluster of 3 servers
  • upgrade to FreeBSD 15 or major library bump consists of the following rolling upgrade steps:
    • create db-A-004
    • destroy db-A-001
    • create db-A-005
    • destroy db-A-002
    • create db-A-006
    • destroy db-A-003

On the new machines, roles/dbserver-pgsql/server/build will work like a charm.