KNOWLEDGE BASE

Backgrounder Down After Upgrade, Logs Show "Context initialization failed" and "class path resource [com/tableau/messagebus/config/IConfiguration.class] cannot be opened because it does not exist"


Published: 09 Jul 2021
Last Modified Date: 05 Oct 2021

Issue

After a successful upgrade, some or all backgrounders on some or all nodes will not start and persistently remain in a bad state even after restarts/reboots. 

The post-upgrade restart job times out with a message similar to the following in tabadmincontroller_node1-0.log:

2021-06-29 19:39:27.423 -0500 pool-21-thread-1 : INFO com.tableausoftware.tabadmin.webapp.impl.status.ServiceStatusWatcher - 30 services have reached their expected state

2021-06-29 19:39:27.423 -0500 pool-21-thread-1 : INFO com.tableausoftware.tabadmin.webapp.impl.status.ServiceStatusWatcher - node1 has 1 service that isn't running: backgrounder_0.20212.21.0610.0336 (deployment state: ENABLED, process status: DOWN)

2021-06-29 19:39:28.665 -0500 pool-22-thread-1 : ERROR com.tableausoftware.tabadmin.webapp.asyncjobs.AsyncJobService - Timed out after 1800 seconds running job 84 of type StartServerJob

java.util.concurrent.TimeoutException: null
 

Around that same time in tabadminagent_node1-0.log we see:

2021-06-29 19:37:28.469 -0500 StatusRequestDispatcher-1-request : WARN com.tableausoftware.service.status.BackgrounderStatusFactory - Unexpected HTTP error response (404): 

2021-06-29 19:37:28.469 -0500 StatusRequestDispatcher-1 : INFO com.tableausoftware.tabadmin.agent.status.ServiceStatusRequestRunner - Posting status update for backgrounder_0: DOWN, detail message: Unexpected HTTP error response (404):
 

The backgrounder_node1-0.log file, meanwhile, is a steady stream of this class path resource cannot be opened because it does not exist error:
 

2021-06-29 19:28:14.221 -0500 (,,,,,,) main : ERROR org.springframework.web.context.ContextLoader - Context initialization failed

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.tableausoftware.backgrounder.config.AppConfig]; nested exception is java.io.FileNotFoundException: class path resource [com/tableau/messagebus/config/IConfiguration.class] cannot be opened because it does not exist

Slightly more information is revealed in the tomcat_backgrounder_node1-0 log file:
02-Jul-2021 02:12:12.441 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
	org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.tableausoftware.backgrounder.config.AppConfig]; nested exception is java.io.FileNotFoundException: class path resource [com/tableau/messagebus/config/IConfiguration.class] cannot be opened because it does not exist


 

Environment

  • Tableau Server 2021.2.0
  • Windows Server 2016

Resolution

Use one of the following workarounds

Option 1
  1. Run a tsm stop.
  2. Open a command line interface (Run as administrator) and navigate to the services folder for the backgrounder process that is not running, in this case 1 of 4 and 2 of 4 are both in an error state.
    Example:
    C:\ProgramData\Tableau\Tableau Server\data\tabsvc\services\backgrounder_0.20212.21.0712.0907 (First backgrounder that is not running)
  3. Run uninstall.cmd
    Example:
    C:\ProgramData\Tableau\Tableau Server\data\tabsvc\services\backgrounder_0.20212.21.0712.0907 >uninstall.cmd
  4. If the uninstall.cmd is successful, proceed with the install.cmd
    Example:
    C:\ProgramData\Tableau\Tableau Server\data\tabsvc\services\backgrounder_0.20212.21.0712.0907 >install.cmd
  5. Run tsm start
  6. Confirm status with tsm status -v

Option 2
Obliterate, install the target version of Tableau Server, and restore from backup.
 

Cause

This issue is currently being investigated by Tableau's Development team under ID 1299520.
Did this article resolve the issue?