Problems adding new XCP-NG host to pool

Hey everyone,

So I am currently trying to add a new XCP-NG host to an existing pool.

Here’s a rundown of what I did since install:

  1. Update host via yum update
  2. Add new host to XO
  3. Add SMB ISO Library
  4. First attempt at adding host to pool… yielding this error:
pool.mergeInto
{
  "sources": [
    "a2283b02-34ee-99e4-ddca-6799c721a07b"
  ],
  "target": "f83f0e0c-e231-e93b-1335-171f672f0e62",
  "force": true
}
{
  "code": "JOINING_HOST_CANNOT_CONTAIN_SHARED_SRS",
  "params": [],
  "call": {
    "method": "pool.join_force",
    "params": [
     "REDACTED 1ST HOST IP",
      "REDACTED USER",
      "REDACTED PASSWORD!"
    ]
  },
  "message": "JOINING_HOST_CANNOT_CONTAIN_SHARED_SRS()",
  "name": "XapiError",
  "stack": "XapiError: JOINING_HOST_CANNOT_CONTAIN_SHARED_SRS()
    at Function.wrap (/opt/xo/xo-builds/xen-orchestra-202107111601/packages/xen-api/src/_XapiError.js:16:12)
    at /opt/xo/xo-builds/xen-orchestra-202107111601/packages/xen-api/src/transports/json-rpc.js:35:27
    at AsyncResource.runInAsyncScope (async_hooks.js:197:9)
    at cb (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/util.js:355:42)
    at tryCatcher (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (internal/timers.js:464:21)
    at process.topLevelDomainCallback (domain.js:147:15)
    at process.callbackTrampoline (internal/async_hooks.js:129:24)"
} 
  1. Removed SMB ISO Library… fixing the above error
  2. Second attempt at adding host to pool… yielding another error (the one I’m stumped on):
pool.mergeInto
{
  "sources": [
    "a2283b02-34ee-99e4-ddca-6799c721a07b"
  ],
  "target": "f83f0e0c-e231-e93b-1335-171f672f0e62",
  "force": true
}
{
  "code": "POOL_JOINING_HOST_MUST_HAVE_SAME_DB_SCHEMA",
  "params": [
    "5.601",
    "5.602"
  ],
  "call": {
    "method": "pool.join_force",
    "params": [
     "REDACTED 1ST HOST IP",
      "REDACTED USER",
      "REDACTED PASSWORD!"
    ]
  },
  "message": "POOL_JOINING_HOST_MUST_HAVE_SAME_DB_SCHEMA(5.601, 5.602)",
  "name": "XapiError",
  "stack": "XapiError: POOL_JOINING_HOST_MUST_HAVE_SAME_DB_SCHEMA(5.601, 5.602)
    at Function.wrap (/opt/xo/xo-builds/xen-orchestra-202107111601/packages/xen-api/src/_XapiError.js:16:12)
    at /opt/xo/xo-builds/xen-orchestra-202107111601/packages/xen-api/src/transports/json-rpc.js:35:27
    at AsyncResource.runInAsyncScope (async_hooks.js:197:9)
    at cb (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/util.js:355:42)
    at tryCatcher (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/opt/xo/xo-builds/xen-orchestra-202107111601/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (internal/timers.js:464:21)
    at process.topLevelDomainCallback (domain.js:147:15)
    at process.callbackTrampoline (internal/async_hooks.js:129:24)"
} 

I’ve done some research and referenced the documentation from XCP-NG and XO:

Yet I’ve still yet to come up with a solution/answer.

Has anyone else seen this in the wild? Any advice on where I should look things up? Any ideas as to why this may happen? Thanks in advance.

Looks like the master host of the pool you are joining needs to be updated before adding the new member as the DB Schema versions are not the same

2 Likes

Hey @lo.voltage. Thanks for the reply. I’ve done yum update & yum upgrade on both hosts. Also checked for pool and host patches. Both hosts don’t update as if they’re already up to date. Would you or anyone know the commands to check the host versions via CLI and if need be, force an update?

Hey theadboe.

I just ran into the same issue, same “POOL_JOINING_HOST_MUST_HAVE_SAME_DB_SCHEMA” error… I had also ran ‘yum update’ on both machines.

The fix for me was to run ‘xe-toolstack-restart’ on both both hosts. I don’t know if it was actually required on both, but I did both anyways. VMs stayed up, but it took a couple of minutes for XOA to see both hosts. Once they both appeared, I was able to add my host to the pool.

I hope this helps.

1 Like