KNOWLEDGE BASE

Tableau Server Restore fails at step "Committing data for services"


Published: 30 Oct 2020
Last Modified Date: 02 Nov 2020

Issue

When attempting to restore a backup the restore job fails to restore at 50%, "Committing data for services".

Committing data for services failure

Tabadmincontroller log presents the following:

ERROR com.tableausoftware.tabadmin.webapp.asyncjobs.JobStepRunner - Running step CommitServices failed
java.lang.RuntimeException: Running 'restore commit' failed

Environment

  • Tableau Server 2020.2 +
  • Linux

Resolution

Verify the Issue:
Check the control_filestore log to determine if the situation encountered is relevant to this article. On the node where Filestore exists, navigate to the following location:

Linux default path:
/var/opt/tableau/tableau_server/data/tabsvc/logs/filestore/control_filestore_node1-0.log

Look for the following entry:
ERROR com.tableausoftware.commandline.SwitchCommand - Failed to execute command restore
java.lang.IllegalStateException: Command Line operation failed to execute
...
Caused by: java.lang.RuntimeException: java.nio.file.DirectoryNotEmptyException: /var/opt/tableau/tableau_server/data/tabsvc/dataengine/revision/93/17/5abd99ae-19e6-4c6c-827d-c944320d2e02


If the above is not present then a different issue may be causing the restore failure.  Please contact Tableau Support at https://www.tableau.com/support/case

Workaround:
Extract the revisions folder from the backup file and replace the current revisions folder in Tableau Server, then restore the backup.

1. Copy the backup file(.tsbak) into a .zip folder.

cp BackupFileName.tsbak CopiedFileName.zip

2. Extract dataengine folder from .zip to test folder

unzip -q CopiedFileName.zip -x "dataengine/ext*" "work*" "sos" "dataengine/flow*" -d ./test

This will extract the revisions folder within the zip file into the test folder.

3. Remove the current revisions folder in Tableau Server and move the extracted revisions folder to $TABLEAU_SERVER_DATA_DIR/data/tabsvc/dataengine/.  

  • sudo rm -rf /var/opt/tableau/tableau_server/data/tabsvc/dataengine/revision/
  • mv revision/ /var/opt/tableau/tableau_server/data/tabsvc/dataengine/

4. Make sure the revisions folder has the proper permissions for the tableau or unprivileged runas user.

sudo chown -R tableau:tableau /var/opt/tableau/tableau_server/data/tabsvc/dataengine/

5. Run a restore using BackupFileName.tsbak

tsm maintenance restore -f BackupFileName.tsbak

 



 

Cause

When there is a revisions file that is not found nested within its folder ID, Tableau Server will fail to copy the file because the process is expecting a folder but is presented with a file.

The structure to be copied is dataengine/revision/93/17/5abd99ae-19e6-4c6c-827d-c944320d2e02/5abd99ae-19e6-4c6c-827d-c944320d2e02

dataengine/revision/<FolderID>/<FolderID>/<FolderID>/<FileID>


Failed attempts are seeing the following instead:

dataengine/revision/93/17/5abd99ae-19e6-4c6c-827d-c944320d2e02

dataengine/revision/<FolderID>/<FolderID>/<FileID>


Tableau is currently investigating this issue through Defect ID 1183764
Did this article resolve the issue?