KBA1786 DB2 VDB SnapSync Fails Due to An Internal Error After Upgrade to 5.3.x
Applicable Delphix Versions
Major Release |
All Sub Releases |
5.3 | 5.3.0.0, 5.3.0.1 |
Issue
After upgrading a Delphix Engine with DB2 VDBs configured, scheduled or manual SnapSync operations for those VDBs may fail with an internal error, directing the user to contact Delphix Support.
The messaging in the UI will read as follows:
DB_SYNC job for "<VDB NAME>" failed due to an internal error during execution.
An example of the UI Actions result is provided below:
And the Job Details view:
Troubleshooting
VDBs experiencing this issue may have a sourceConfig path parameter unset; this can occur when the VDB provision is completed via CLI or API scripting.
The VDB sourceConfig path parameter can be checked via CLI by navigating to sourceconfig, selecting the affected VDB, and viewing its details with the ls command. An example is provided below; note the path parameter is indicated as unset (highlighted in this document for visibility with <<<<< characters), which is a key indication of the root cause in this instance.
All commands issued will be highlighted in bold text.
delphix.engine> /sourceconfig delphix.engine sourceconfig> ls Objects NAME REPOSITORY LINKINGENABLED VDB6 auto1056 - 10.5.0.5 - true VDB8 auto1058 - 10.5.0.5 - true VDB7 auto1057 - 10.5.0.5 - true delphix_nhadr auto1052 - 10.5.0.5 - true Operations create delphix.engine sourceconfig> select VDB8 delphix.engine sourceconfig 'VDB8'> ls Properties type: AppDataDirectSourceConfig name: VDB8 discovered: false environmentUser: auto1058 linkingEnabled: true parameters: {"dbName":"VDB8","prettyName":"VDB8"} path: (unset) <<<<<<<<<<<<<<< reference: APPDATA_SOURCE_CONFIG-3 repository: auto1058 - 10.5.0.5 - toolkit: `APPDATA_TOOLKIT-35/db2db
If the VDB sourceconfig path parameter is blank rather than unset, this document resolution will not apply, and a Support case should be created for further investigation.
delphix.engine sourceconfig 'VDB7'> ls Properties type: AppDataDirectSourceConfig name: VDB7 discovered: false environmentUser: auto1057 linkingEnabled: true parameters: {"dbName":"VDB7","prettyName":"VDB7"} path: <<<<<<<<<<<<<<< reference: APPDATA_SOURCE_CONFIG-4 repository: auto1057 - 10.5.0.5 - toolkit: `APPDATA_TOOLKIT-35/db2db
Resolution
For VDBs which have a sourceconfig path parameter unset, the sourceconfig can be manually updated via CLI to an empty field, which will prevent the internal error from occurring.
Note, in order to alter a VDB sourceconfig, the VDB must be disabled first. This can be done from the GUI:
Or from the CLI:
delphix.engine> /source; select VDB8; disable; commit Dispatched job JOB-111 SOURCE_DISABLE job started for "VDB8". Disabling virtual database "VDB8". Unmounting datasets. Unexporting storage containers. Virtual database "VDB8" disabled. SOURCE_DISABLE job for "VDB8" completed successfully.
In the following example we will set the sourceconfig path to an empty value, using the previous example VDB8 (note, a successful configuration change will not give any positive feedback in the CLI, but only return to the prompt):
delphix.engine > /sourceconfig; select VDB8 delphix.engine sourceconfig 'VDB8' update *> set path="" delphix.engine sourceconfig 'VDB8' update *> commit
Failing to disable the VDB before this operation will fail with an error message indicating as such:
delphix.engine sourceconfig 'VDB8' update *> commit Error: The path of source config "VDB8" associated with source "VDB8" cannot be updated while the source is enabled. Action: Disable source "VDB8" and try updating the path of source config "VDB8" again.
A successful update will be visible in the UI under Recently completed in the Actions pane:
Once the workaround is applied, the parameters should be listed again with ls to confirm the change.
Additional Information
This issue is only encountered for objects created via CLI or API, as the GUI implicitly sets the sourceconfig path parameter to an empty field (not NULL) if the path variable is not populated during configuration.