ARM Technical Support Knowledge Articles

Trouble shooting floating license issues

Applies to: DS-5, RealView Development Suite (RVDS), Tool Licensing (License Management)

Answer

The aim of this guide is to make it easier for you to diagnose and solve floating licensing problems with the ARM tools. The guide is intended to help you identify an error, and navigate the product documentation and Knowledge Article database to solve it.

Before proceeding further with the guide it is recommended you review the steps for setting up a floating license server, and its client workstations, in the ARM FLEXnet License Management Guide

The guide makes number a number of assumptions:

For a Windows install of RVDS, the installer will by default add the FLEX binaries to the PATH.  For Linux installs, you will need to source the configuration script generated by the installer (e.g. RVDS40Env.posh).

If after following the steps in this FAQ you are still unable to use your tools, please contact license.support@arm.com.


Part 1: Client Or Server?

The first step in the diagnostic is to determine whether the client machine is able to successfully communicate with the server. To do this, run two quick tests:


1) On the client

Open a command prompt and enter:

lmutil lmstat -a

This command queries all the license servers on the search path (ARMLMD_LICENSE_FILE and LM_LICENSE_FILE). The output will look something like this:

c:\>lmutil lmstat -a
lmutil - Copyright (c) 1989-2006 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
Flexible License Manager status on Thu 1/29/2009 12:52

[Detecting lmgrd processes...]
License server status: 8224@my_lic_server          <- Name of server
License file(s) on my_lic_server: C:\\license.dat: <- License file location on server

my_lic_server: license server UP (MASTER) v10.8    <- lmgrd version

Vendor daemon status (on my_lic_server):           <- the daemons running

armlmd: UP v10.8                                   <- daemon version

Feature usage info:                                <- list of components and current users

Users of compiler: (Total of 1 license issued; Total of 0 licenses in use)

Or, if the connection fails the output will look something like this:

c:\>lmutil lmstat -a
lmutil - Copyright (c) 1989-2006 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
Flexible License Manager status on Thu 1/29/2009 12:52

[Detecting lmgrd processes...]
Error getting status: Cannot connect to license server system. (-15,10:10061 "WinSock: Connection refused")

2) On the server:

Now run the test again, but this time on the server machine. On the server, open a command prompt and enter:

lmutil lmstat -a

The output will be of the same format as on the client.  Based on the results of the two tests you have an indication on where the problems lies:

On the Client On the Server See section on...
NA FAIL Server Problems
FAIL SUCCEED Client or Connection Problems
SUCCEED SUCCEED Client Problems


Part 2: Connection/Client Problems

If the server software (lmgrd) is running correctly, then the next step is to determine why the client is unable to check-out a license.

On the client, open a terminal and enter the command:

armcc --vsn

The command tells the compiler to attempt a license check-out. The output will look something like this:

C:\>armcc --vsn
ARM C/C++ Compiler, RVCT4.0 [Build 400]
Error: C9932E: Cannot obtain license for Compiler (feature compiler) with license version >= 4.0:
Cannot connect to license server system.
The license server manager (lmgrd) has not been started yet,
the wrong port@host or license file is being used, or the
port or hostname in the license file has been changed.
Feature: compiler
Server name: 10.1.72.146          
License path: 8224@my_lic_server 
FLEXnet Licensing error:-15,10.  System Error: 10061 "WinSock: Connection refused"
For further information, refer to the FLEXnet Licensing End User Guide,
available at "www.macrovision.com".

The error message gives much useful information.  For now it is the FLEXnet Licensing error  (-XXX,XXX) and the License path lines which are of most interest.

The license path is where the tools are looking for licenses.  It can contain a number of entries, each will either be <port>@<server> (e.g. 8224@my_lic_server or 8224@192.168.10.1) or the path to a license file.  In the case of license files, these should be a copy of the license file on the server (this gives the server's hostname/IP address and port).  It is recommended that you use the <port>@<host> syntax.

The error code gives the reason for the failure, the most common codes are listed below:

NOTE: It is possible that there is more than one reason the tools are unable to connect to the server.  The error message from the tools will only give the first error.  So once you have resolved this issue, you should re-run the command to check for further errors!

The following gives a list of common error codes:

FLEX error -4: Licensed number of users already reached
FLEX error -12: Invalid data returned from server system
FLEX error -15: Cannot connect to license server system
FLEX error -18: License server system does not support this feature
FLEX error -25: License server system does not support this version of the feature
FLEX error -38: User host on EXCLUDE list for feature
FLEX error -39: User host not on INCLUDE list for feature
FLEX error -68: License BORROW support not enabled
FLEX error -96: License server machine is down or not responding
FLEX error -97: The desired vendor daemon is down
FLEX error -114: SIGN= keyword required, but is missing from license certificate
FLEX error -9990: Invalid error code

NOTE: This test uses armcc to check-out a license.  It maybe that this check-out succeeds, but the check-out for other tools fail.  If this is the case for you, run the tool that is failing and see what error code it reports.  The codes are common across ARM development tools.

Part 3: Server Problems

If the lmutil command failed on the server, it is likely that the FLEXnet server software (lmgrd and/or armlmd) is not running.  You should confirm, using Task Manager on Windows or the ps command on Linux. 

If the processes are listed, these may be stale processes left over from a crash.  Usually you will have to manually kill these stale processes before attempting to re-start the server software.  BEWARE - it is possible to run multiple lmgrd servers (but not armlmd) on the same physical machine - refer to here.

Once you have killed any stale processes try manually re-starting the lmgrd software.  The command is as follows:

lmgrd -c /path/to/license.dat -z

Replacing "/path/to/license.dat" as appropriate.  The -z flag causes the server to print all log and diagnostic information to the console.  This is not usually desirable, but useful for trouble shooting.  Alternatively, you can replace -z with -l <filename>, which directs the messages to a file. 

If the server starts up correctly, you will see something similar to this:

C:\>lmgrd -c license.dat -z
(lmgrd) -----------------------------------------------
(lmgrd)   Please Note:
(lmgrd)
(lmgrd)   This log is intended for debug purposes only.
(lmgrd)   In order to capture accurate license
(lmgrd)   usage data into an organized repository,
(lmgrd)   please enable report logging. Use Macrovision's
(lmgrd)   software license administration  solution,
(lmgrd)   FLEXnet Manager, to  readily gain visibility
(lmgrd)   into license usage data and to create
(lmgrd)   insightful reports on critical information like
(lmgrd)   license availability and usage. FLEXnet Manager
(lmgrd)   can be fully automated to run these reports on
(lmgrd)   schedule and can be used to track license
(lmgrd)   servers and usage across a heterogeneous
(lmgrd)   network of servers including Windows NT, Linux
(lmgrd)   and UNIX. Contact Macrovision at
(lmgrd)   www.macrovision.com for more details on how to
(lmgrd)   obtain an evaluation copy of FLEXnet Manager
(lmgrd)   for your enterprise.
(lmgrd)
(lmgrd) -----------------------------------------------
(lmgrd)
(lmgrd)
(lmgrd) pid 524
(lmgrd) Done rereading
(lmgrd) FLEXnet Licensing (v10.8.5.0 build 31891 i86_n3) started on my_lic_server (IBM PC) (2/5/2009)
(lmgrd) Copyright (c) 1988-2006 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
(lmgrd) US Patents 5,390,297 and 5,671,412.
(lmgrd) World Wide Web:  http://www.macrovision.com
(lmgrd) License file(s): license.dat
(lmgrd) lmgrd tcp-port 8224
(lmgrd) Starting vendor daemons ...
(lmgrd) Started armlmd (pid 132)
(armlmd) FLEXnet Licensing version v10.8.5.0 build 31891 i86_n3
(armlmd) Server started on my_lic_server for:      compiler
(armlmd) EXTERNAL FILTERS are OFF
(lmgrd) armlmd using TCP-port 1142

If the server appears to have started correctly, re-run "lmutil lmstat -a" to check that you are able to query it successfully.  If this also succeeds, then monitor the server as the problem may come during operation rather than start up.

Otherwise, you will see an error message at some point after the notice.  How far through the start up sequence it got before the error gives an indication of where the issue lies.  Below are common messages to see in the output:


Part 4: Error Code Descriptions


-4: Licensed number of users already reached

A license file provides a fixed number of seats for each component. If all the seats are in use, further requests will not be satisfied. Normally, the server will queue a request until a seat becomes available - so that the client does not see a failure. On the client you would see something like this:

C:>armcc --vsn
Waiting for license...

There are cases where this queuing mechanism fails, and this is when you would see this error message on the client. Please see the following Knowledge Article for more information:

Do RVDS floating licenses support license queuing/wait for license?


-12: Invalid data returned from server system

This message is normally only seen with older tools, such as ADS 1.2. It means that the something is interfering with the communication between the server and client. This is covered in more detail in the following FAQ:

Why am I getting a FLEXlm -12,122 license error?


-15: Cannot connect to license server system

The hostname or IP address specified in the license path is valid. However, the tools were unable to open a connection to a FLEX license server on the specified port. Possible causes include:


-18: License server system does not support this feature

The tools were able to connect to the license server successfully. However, the server does not host the feature that the client was trying to check-out. This can happen for a number of reasons. For example, RVDS is sold as Professional and Standard editions. The Professional edition includes additional features. If you were to try using the Professional edition with a Standard license, you could see this error.

Another explanation could be that you have multiple license servers. For example, one server for ARM licenses and another third party licenses. In which case this could indicate that you are specifying the wrong server on the search path.  Check the value of ARMLMD_LICENSE_FILE on the client, and that this matches the ARM license server. 

NOTE: Remember that you can specify multiple license sources on the search path!


-25: License server system does not support this version of the feature

The tools were able to connect to the license server successfully. The server hosts the feature that was requested - but not the correct version. This usually indicates that you are trying to use an older license with a more recent tool.  For example, using the RVDS 4.0 tools with an RVDS 3.1 license.

NOTE: You may see this message in license server logs, even when the check-out succeeded.  This is due how the server operates internally when it hosts a mix of licenses, and can be ignored.  For further information please see FAQ: "Why am I getting DENIED messages in my server log?"

-38: User host on EXCLUDE list for feature
-39: User host not on INCLUDE list for feature

The FLEX server allow licenses to be reserved for certain users, or groups of users.  This is done using an options file. 

These messages can be seen when a user attempts to check out a license reserved another user/group.  For more information on option files, please see the following FAQ:

Can I reserve floating licenses for specific users?


-68: License BORROW support not enabled

ARM's tool licenses do not support the FLEX borrow feature.  Attempting to user borrow will result in this error.  For further information, please see the following FAQ:

Do ARM's development tools support BORROW licenses?

-96: License server machine is down or not responding

There are several variants of this message:

-96,7 "WinSock: Host not found (HOST_NOT_FOUND)"
This message is a networking fault being flagged by the host operating system (in this case Windows). It shows that the OS failed to translate the hostname into an IP address. Check that the correct name is being specified, and that your network's name resolution is working correctly. If these are correct, try using the "ping" command to check that the client can see the server on the network. 

Alternatively, try using the server's IP address instead of the hostname.

-96,491
This usually indicates the port being used by armlmd is being blocked, possibly by a firewall.  Check on the server which port is being used by the daemon and that it is open on the server's firewall. 

By default, the armlmd port number is not specified. It is assigned by the host operating system at server start. If you the server has a firewall it is advisable to set the port manually.  In the license file change:

VENDOR armlmd

To:

VENDOR armlmd port=XXXX

Where XXXX is the port number you wish to use.

-97: The desired vendor daemon is down

In this case the tools were able to contact the license server (lmgrd), but the vendor daemon (armlmd) did not respond.  This usually indicates that armlmd has crashed.  Check the server's debug log, you should see a message indicating that lmgrd lost its connection to armlmd.  Shut down lmgrd, and check that there are no stale lmgrd or armlmd processes.  Then re-start lmgrd.

-114: SIGN= keyword required, but is missing from license certificate

This message is displayed when the server attempts to issue an old format license to a more recent tool.  For example, trying to issue an ADS license to RVDS.  Normally this will not happen, however there are cases where it can.  Please see this FAQ for further information.

NOTE: You may see this message in license server logs, even when the check-out succeeded.  This is due how the server operates internally when it hosts a mix of licenses, and can be ignored.  For further information please see this FAQ.

license manager: can't initialize: No SERVER lines in license file.
License path:  /path/to/license.dat
FLEXnet Licensing error:-13,66

The license file is missing the SERVER line.  This could be because it has been edited, or accidently commented out.  Try re-downloading the license file from ARM's website.  Alternatively, you may be passing a node-locked license file, which can not be hosted in this way.

(lmgrd) License server manager (lmgrd) startup failed:
(lmgrd) CreateProcess error code: 0x6   File= armlmd.exe

lmgrd has launched and parsed the license. It has tried to launch the ARM vendor daemon (armlmd), but was unable to locate the executable.  lmgrd will have searched on the PATH, and within the same directory as itself.  Check the location of armlmd (armlmd.exe on Windows) and ensure that it is on the search path.  Alternatively you can specify the location in the license file.  The file from ARM will have this line:

VENDOR armlmd

Change to:

VENDOR /path/to/armlmd

 (lmgrd) The TCP port number in the license, <port number>, is already in use.

The port specified on the SERVER line of the license file is in use.  This is usually caused by having a lmgrd process already running, for example a stale process. 

Alternatively, if lmgrd has previously crashed the OS may not yet had released the port. 

It is possible, but rare, that the port is being used by another application.


(armlmd) Invalid license key (inconsistent authentication code)

There are two common causes for this error: 

(armlmd) EXPIRED: <feature name(s)>

The feature specified has expired.  If all the features in the license file have expired the server will fail to start.

(lmgrd) MULTIPLE "armlmd" license server systems running.
You can run multiple FLEXnet license servers on the same machine - if they are for different vendors' licenses.  However, only one instance of armlmd (the ARM vendor deamon) can be running on the machine.  If armlmd is already running when the server software starts it fail with this error:

(armlmd) EXITING DUE TO SIGNAL 32
(lmgrd) armlmd exited with status 32 (Exited because another server was running)
(lmgrd) MULTIPLE "armlmd" license server systems running.

There are two common causes of this error.  You be trying to run two instances of the license server on the same machine - both hosting ARM licenses.  This is not supported.  You will need to merge the license files, and host them from a single instance of the server software.  Merging license file is covered here.

Alternatively, if lmgrd has previously exited uncleanly it is possible that armlmd did not close down.  You should check for stale instances of armlmd, and terminate them.  On Linux this can be done with the "ps -ax | grep armlmd" command.  On Windows you can use Task Manager.

-9999: INVALID error code

Unfortunately this error message is not very informative.  It is usually caused when the server is passed a node-locked license.  This configuration is not supported, and leads to this error message.  The message is only seen at the point a client attempts to use the license, not when the license it initially parsed.  You confirm whether this is the cause by running "lmutil lmstat -a" on the either the server or a client.  If a node-locked license is present on the server, the lmstat output will include one or more lines similar to this:

Users of <feature>: (Uncounted, node-locked)

To resolve this issue you must remove all the node-locked licenses from the license file.

(lmgrd) CreateProcess error code: 0x36b1 File= armlmd.exe

This error can be seen when using Microsoft Windows for the license server.  The armlmd daemon requires libraries from Microsoft Visual Studio, if they not present this error is seen. Refer to:

Why do I see "(lmgrd) CreateProcess error code: 0x36b1   File= armlmd.exe"?

license manager: can't initialize:No SERVER lines in license file.

If you see this when starting the license server:

...
(lmgrd) license manager: can't initialize:No SERVER lines in license file.
(lmgrd) License Path: "license.dat"
(lmgrd) FLEXnet Licensing error:-13,66

This shows that your license file does not contain a SERVER line.  The SERVER line in a license file should be near the top of the file, and the format is:

SERVER <HOSTNAME or IP ADDRESS> <HOSTID> <PORTNUMBER>
VENDOR armlmd

Possible causes include:

Article last edited on: 2013-01-29 10:02:41

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential