KNOWLEDGE BASE

Non-Initial Nodes are Unlicensed After a Restart


Published: 29 Nov 2018
Last Modified Date: 30 Apr 2019

Issue

After restarting Tableau Server host machines, the non-initial nodes start up in a degraded state with unlicensed processes.

Environment

  • Tableau Server 2018.2.0 - 2018.2.4
  • Tableau Server 2018.3.0 - 2018.3.1

Resolution

Option 1

This behavior was caused by a known issue, ID 846106, which has been corrected in later versions of Tableau Server. Upgrade to Tableau Server 2018.2.5 or 2018.3.2 or later. For more information, see Tableau Server Downloads and Release Notes.

Option 2

If you cannot upgrade, work with your IT team or Tableau Administrator in order to manually modify the license file tableau.lic.templ.
  • The file can be located at: 
    • Program Files/Tableau/Tableau Server/packages/templates.<your version>/license/tableau.lic.templ  
    • Or   /opt/tableau/tableau_server/packages/templates.<version>/license/tableau.lic.templ
  • Edit tableau.lic.templ to include the ".split(',')" on line 3 below:
<%
license_service_host = AppConfig['license.server']
license_service_worker_id = AppConfig['worker.hosts'].split(',').find_index(license_service_host)
vendorDaemonPort = AppConfig["worker#{license_service_worker_id}.licenseservice.vendor_daemon.port"]
%>
SERVER <%= license_service_host %> ANY
<% if vendorDaemonPort %>
VENDOR tableau port=<%= vendorDaemonPort %>
<% else %>
VENDOR tableau
<% end %>
USE_SERVER
 

Cause

The non-initial nodes are unable to contact the license daemon, resulting in unlicensed processes.

Additional Information

On initial boot, the license daemon is configured to use a specific port assigned by Tableau Server. After changes are made to Tableau Server this port specification is overwritten and is undefined. On subsequent host restarts the License Daemon will select a port outside the expected range on startup.

TSM Topology retains the port assignment originally assigned and will continue to incorrectly report the port the License Daemon is listening on. Non-initial nodes are then unable to contact the License Daemon, as they will attempt to connect via the original port.
Did this article resolve the issue?