RLM Issues Affecting Software Publishers (Pre v8.0)

This is a list of RLM issues fixed prior to v8.0.
To hide the full description, click on the issue title or the '-' sign on the left.


expand list (Good for searching full description in browser).
collapse list

Click here to show the CURRENT issues list.

P168 - Some product names cause rlm_detached_demo() to fail
If rlm_detached_demo() is called for a product name containing the substring "99", rlm_detached_demo() will fail with RLM_EH_DEMOWRITEERR (-138) on Windows.

This is fixed in RLM v7.0BL4.

Fix requires: client.

*Note*: The P168 fix means that some detached demos created prior to v7.0BL4 may no longer work in v7.0BL4 (these demos can be re-created, however).

Also, a demo created prior to v7.0BL4 may be able to be re-created one time after your application with v7.0BL4 is shipped.

P167 - Obsolete license pools can have incorrect inuse count
If a license server has checked-out licenses, then the license is removed from the license file (or the entire license file is removed), and a reread is done on the license server, from that point on until the clients check their licenses back in, the number of licenses reported checked out will be incorrect.

The list of users is still correct; however, the number of licenses in use will be reported as twice the actual number of licenses in use at the time of the reread.

This problem is not of significance, since the license server will not serve licenses from this (now obsolete) license pool. Only the count of licenses in use in this obsolete license pool will be incorrect.

This is fixed in RLM v7.0BL4. Fix requires: server.

P166 - On Mac/OS, rlm thread synchronization does not work
This results in 2 distinct problems:

  • the server, if configured for failover licenses, will sometimes crash on a reread operation, and
  • intermittent, unspecified failures in the client if rlm_auto_hb() is used.

This is fixed in RLM v7.0BL4.

Fix requires: server, client.

P165 - roamed licenses don't expire on Windows
On Windows, the server will occasionally keep a roamed license checked out past the expiration of the roam time.

This is due to the roam expiration time not being updated correctly in the server, and the problem occurs randomly.

This is fixed in RLM v7.0BL4. Fix requires: server.

P164- Error adding GROUP to named user list on Windows
P164 - If a GROUP definition has any uppercase letters in the keyword "group", then it cannot be added to a named user list using the rlm web GUI. This bug appears on Windows servers only. The workaround is to define the group using the keyword "group" (using all lowercase letters). This is fixed in RLM v7.0BL4. Fix requires: server.
P163 - DEBUGLOG failure with "+" outside quotes
When specifying DEBUGLOG or REPORTLOG in the ISV options file, if the path to the log file contains embedded spaces, it must be enclosed in double quotes. If using a '+' to indicate that the existing log file should be appended to rather than overwritten, RLM will not create the log file if the '+' precedes the opening double quote. For example,

DEBUGLOG +"C:\My Path\mylog.dl"

will fail. The workaround is to put the '+' after the opening quote, as follows:

DEBUGLOG "+C:\My Path\mylog.dl"

This is fixed in RLM v7.0BL4. Fix requires: server.

P162 - End-user MAX specifications work incorrectly
P162 - A MAX specification does not work correctly with shared licenses or with reservations. If a MAX specification is used with shared licenses, new requests which can share with prior licenses will be rejected if the counts sum to more than the max, even though the total would not be over the max with sharing. Also, reserved licenses are not counted toward the MAX, so usage above the specified MAX will be allowed. Both of these issues are fixed in v7.0BL4. Fix requires: server.
p161 - end-user MAX with a GROUP causes server crash
P161 - if a MAX line appears in an ISV server options file specifying a GROUP, the server will crash when a checkout is attempted on the product.

Example:

GROUP groupname user-list MAX product GROUP groupname

In this example, a checkout request for "product" will result in a server crash.

This bug has been in RLM since the MAX option appeared. It is fixed in v7.0BL4. Fix requires: server.

P160 - complete UPGRADEs sometimes lose licenses
P160 - If all licenses of a particular product are UPGRADEd by a single UPGRADE line, the licenses disappear. Partial upgrades work properly. In addition, this failure only occurs if the UPGRADE line precedes the LICENSE line in the license file - if the LICENSE line is first, the upgrade works properly. The workaround is to issue partial upgrades adding up to the total license count to be upgraded. This is fixed in v7.0BL4. Fix requires: server.
P159 - license transfer destination server crashes
The destination server of a license transfer can crash if a held license is transferred.

If a held license is transferred to a destination server, and
a client checks out this license from the destination server, and
the source server goes down while the client has the license checked out,

then the destination server will crash when the client exits or checks the license back in, or when the hold period expires.

This is fixed in v7.0BL4. Fix requires: server.

P158 - token-based licenses with hold= cause failures
P158 - If a token-based license contains two or more primary licenses where one of the primary licenses has a hold period specified, and another one does not have a hold, the license server will either fail to check in the held license, or it will cause it's internal lists to become corrupted. This is fixed in v7.0BL4. Fix requires: server.
P157 - Older ISV server settings files don't work on 7.0BL3
RLM ISV server settings files from prior versions will not work with v7.0BL3 rlm executables. The workaround is to issue a new ISV server settings file. This is fixed in v7.0BL4. Fix requires: rlm, settings.
P156 - rlm web interface sometimes displays "bad" characters
The rlm web interface will display bad characters near the buttons in the Edit Transfer page when "Server Status" is followed by "Edit Transfer". This is fixed in RLM v7.0BL4. Fix requires: rlm.
P155 - RLM sometimes fails to start ISV server on Windows
rlm will fail to start an isv server on Windows under the following circumstances:

the license file ISV line has a path without a trailing .set or .exe, and
that filename, without the .set or .exe, does not exist, and
there is no ISV .exe file present.

This is a separate case with a similar symptom to P139.

Again, note that this is a configuration error, but it has been fixed to avoid confusion.

The workaround is to put the correct path on the ISV line.

This is fixed in RLM v7.0BL3.

P154 - ISV server fails on reread after license replaced
If a license server has a checked-out license, then: - a new replacement license is installed, and - a reread is done after the licenses have been upgraded (replaced) then the ISV server will fail. This is corrected in v7.0BL3. The workaround is to shut down and restart the servers.
P153 - Activation fails with long attribute strings
P153 - the activation gui (rlc) and license generator (ISV_mklic) will fail if the database contains strings longer than the maximum allowed. This generally happens with hand-edited databases, and in particular with the "extra license attribute" string, which is limited to 200 characters. This is fixed in v7.0BL2. The strings are still limited to 200 characters, but they are now truncated at 200 characters when read by rlc and ISV_mklic.
P152 - roamed licenses become unusable after license upgrade
If:

a license is roaming on a system, and
the licenses are upgraded on the license server, and
new applications are installed that require the new licenses,

then the old roamed license is often not usable (for example, if the new application requires a higher version number).

Starting in RLM v7.0, RLM will attempt to bypass the roamed license and go back to the license server and check out a new roaming license. If this works, the new roaming license replaces the old, no longer usable, roamed license.

Note that the problem behavior does not happen if RLM_ROAM is not set.

Also note that, once the new license is set to roam on the system, it is no longer possible to return the old roamed license to the server's license pool. So, if the licenses are changed temporarily, then a new roaming license is checked out, then the old licenses are replaced, the old roaming license will exist until it expires - it cannot be returned early.

P151 - end-user IP-based options fail on loopback address
P151 - If a system has it's primary hostname configured on the loopback address (127.0.0.1), rlm options which specify the "real" IP address of the system will not work.

Note that systems should never have their loopback addresses configured with the system's hostname.

RLM v7.0 will address this issue on most platforms, but there may be platforms where we cannot fix this problem, which results from the way the system calls gethostbyname() and getipnodebyname() return their data. A better solution is to configure the network without the hostname on the loopback address.

P150 - roamed licenses sometimes fail on Mac systems
P149 - A roamed license will sometimes fail on a Mac system when it is disconnected from the network. This happens when the IP address to which the license was assigned disappears from the system when the system is disconnected. This is fixed in v7.0BL1.
P149 - ISV server hangs on reread with missing licenses
P149 - If a running license server has licenses checked out from 2 (or more) separate license pools, then a reread command is given to the server when the licenses from 2 (or more) of these pools are no longer valid, the license server will hang in an infinite loop. This can happen, for example, when 2 of the licenses expire on the same day when the server does it's automatic reread at midnight. The workaround is to kill the server after it gets into this state - rlm will restart it automatically. This is fixed in v6.0BL4.
P148 - ISV-defined hostid is case-sensitive (sometimes)
P148 - The value of an ISV-defined hostid (ie, the string) is case sensitive at the time it is compared to the hostid on the target system. The string in the license is not case sensitive, but it must match the case returned by your routine which retrieves the hostid. A workaround is to modify the license file to have the exact case which the system is returning so that the comparison succeeds. This is fixed (ie, the compare is done in a case-insensitive manner) in v7.0BL1.
P147 - ISV server running as service doesn't read ISV.opt
P147 - when running as a windows service, the ISV server fails to read it's option file <ISV>.opt which is located in the directory with the license file.
P146 - activation server hangs on IIS with HTML forms
P146 - If RLM activation data is submitted from an HTML form, and it contains an ISV-defined hostid (with an embedded "="), the activation license generator (ISV_mklic) will hang if it is running on IIS. This is not an issue with the rlm_act_request() API call, nor is it an issue running on Apache. This is fixed in v6.0BL4.
P145 - ISV server paths > 128 characters fail
On Windows, if the path to an ISV server is over 128 bytes, the rlm server will not start the ISV server. This is corrected in v6.0BL3.
P144 - generic server fails if ISV's RLM license too long
If an ISV has licensed approx 7 or more platforms, an ISV settings file created will fail to operate correctly. ISV binaries work correctly, this only applies to the generic server. The actual problem occurs when the RLM license is > 128 characters, which happens when the licensed platform string is longer than approximately 46 characters (which is usually 7 or more platforms). This is fixed in RLM v6.0BL3.
P143 - thread deadlock in rlm_close() with rlm_auto_hb()
P143 - rlm_close() will occasionally hang with a thread deadlock if using rlm_auto_hb(). This is a windows-only issue. The deadlock can be minimized by calling: rlm_set_active(handle, 0) before calling: rlm_close(handle) This problem is fixed in v6.0BL3.
P142 - path with trailing backslash in rlm_init() fails
If the path passed to rlm_init() in the first argument has a trailing slash or backslash, no license files are found in that path. This is a windows-only issue. The workaround is to avoid passing paths with trailing slash or backslash characters. This is fixed in v6.0BL3.
P140 - ISV server crashes if New Reportlog is requested...
An ISV server will exit with a segment fault if the user requests a New Reportlog and there is currently no report log. Starting in 6.0BL3, the server will log the error: 01/13 11:08 (isvname) ERROR: New Reportlog cmd received with no old log file. (Note: this bug exists in all versions of RLM prior to v6.0BL3)
P139 - rlm gives confusing error message with bad ISV line
With the following ISV line:

ISV isvname isvname

and a settings file present named "isvname.set" (rather than "isvname"), rlm fails to start the ISV server, and gives the message:

01/13 09:58 (rlm) ./isvname.set - problem with executable - unable to start (rlm) isvname executable path: ./isvname.set

The situation is inconsistent - either the executable or settings file name should be named "isvname" (or "isvname.exe") rather than "isvname.set", or the ISV line should read:

ISV isvname isvname.set

In v6.0BL3, RLM will start the ISV server, even though the ISV line is inconsistent with the filename.

P138 - rlc crashes when showing activations
rlc will crash when displaying activations on certain 64-bit windows systems when running a 32-bit binary. This is corrected in v6.0BL2.
P137 - If a linux system has an eth7 device, RLM hangs
If a linux system has an eth7 device, RLM client code hangs. This means your application as well as the rlmhostid command will hang on any system which has an eth7 device. A side effect of this bug is that only the first ethernet device is recognized. This bug applies to linux systems only, and was introduced in RLM v4.0. This is fixed in RLM v5.0BL6.
P136 - ISV servers fail if no SERVER line in license file
ISV servers will fail if processing multiple license files and the only valid licenses are in a file with no SERVER line. To work around this problem, ensure that a valid SERVER line is present in the license file with the valid license(s). This problem is corrected in RLM v6.0BL1.
P135 - rlm_act_request() uses less than optimal hostid
Activation requests made via rlm_act_request() which do not specify a hostid (or hostid list) use the default list of RLM hostids, including the 32-bit hostids.

On Mac and Linux, the 32-bit hostids are relatively insecure.

Beginning in RLM v6.0, rlm_act_request() will no longer use 32-bit hostids on Mac and Linux.

P134 - RLM server listens on port 28000 on Windows
On Windows, if the RLM server is started as a service and there is no command-line "-c license_file_path" option specified, the rlm server will listen on port 28000 (In addition to other ports in the license files). This causes no real problems; it is just confusing. This was reported on RLM v5.0 and is fixed in RLM v6.0.
P133 - Roaming named-user license re-installation issues
If users have roamed named-user licenses checked out when a new license is installed, when the server re-starts or re-reads the license file, it will create a new empty named user list (which is correct), then check out the roamed licenses on behalf of the users (which is also correct), but will not add the users to the (newly empty) named user list. The users are now added to the named user list. This problem was reported in RLM v5.0 and is fixed in RLM v6.0BL1.
P132 - rlm client fails when license file has 8-bit chars
An RLM client (and server) will fail if the license file contains 8-bit characters with the high-order bit set. This is corrected in RLM v6.0
P130 - rlc license generation fails for token= or disable=
rlc license generation will not generate token= or disable= licenses This problem appeared in RLM v5.0. disable= licenses will be fixed in v6.0. token= licenses are not supported in the rlc license generator.
P129 - ISV servers can create report logs with bad version #
RLM ISV servers can create report log files with version and revision numbers of zero. This happens when the server is started without a report log, then an options file is created to specify a report log, then the server rereads it's license file. This is corrected in v5.0BL5.
P128 - ISV servers fail on reread with "cannot open ..."
ISV servers will fail to open their license files on a reread if all the low-numbered descriptors (< 256) are in use. This is due to an fopen() bug on 32-bit solaris. This problem has always been present in RLM and is fixed in v5.0BL5 and later.
P127 - Getting list of ethernet addresses can cause crash
Getting the list of ethernet addresses on the Mac can cause an application crash. This happens when an application requests a license from the server. This problem has only been reported on Mac systems. Note that this only happens when the network is improperly configured, such that the return of gethostname() (or the "hostname" shell command) is not found in the network database. This problem appeared in v5 and is fixed in v5.0BL5 and later.
P126 - licenses expiring before 31-dec-1999 are valid
Licenses which expire prior to 31-dec-1999 are currently valid. This is fixed in v6.0BL2. Until then, do not issue licenses which expire prior to Jan 1, 2000.
P125 - RLM web interface displays bad characters in options
When the options file is read from disk (either rlm or ISV) in the RLM web interface, there are random characters appended to it. This happens most often on files with a single line with no trailing <CR> Note: these characters are in the display only, not in the file. However, if a "save options" is performed, then the bad characters are written to the file. This is fixed in v5.0BL5 and later.
P124 - ISV server reports an incorrect requested product
The RLM server will sometimes report (in the web interface, rlmstat, and the report log) an incorrect requested product. This happens when a token-based license is checked out and checked back in. Subsequent checkouts of non-token-based licenses will sometimes have the name of the token-based license as the requested product. This is corrected in v5.0BL5.
P116 - (Windows) rlmhostid infinite loops
P116 - On Windows, rlmhostid infinite loops if one of the network adapters on the system has an all-0 address or an address which is not 6 bytes in length. This can also affect clients and servers - anything that calls l_gethostid. This is fixed in v4.0BL7 and v5.0BL3.
P123 - Activation server loses track of fulfillments
P123 - The rlm activation server (ISV_mklic) will overwrite all fulfillment counts (except the current activation key's count) every time it does an activation. This results in activation keys being re-usable when they should not be. This is corrected in v5.0BL4. Note: this problem was introduced in v5.0BL2, and does not exist in earlier versions of RLM.
P122 - rlc will sometimes fail during license generation.
P122 - rlc will sometimes fail during license generation. This is corrected in v5.0BL4.
P121 ISV servers crash with a long ISV-defined hostid
P121 - ISV servers will crash if an ISV-defined hostid on the HOST line is longer than 53 characters. This is corrected in v5.0BL4.
P119 (Windows) Long command line causes rlm to fail
P119 - On Windows, if the rlm command line including -service_install exceeds 255 characters, the stack is corrupted and rlm crashes. This is corrected in v5.0BL3.
P118 - rlm on windows does not recognize *.LIC or *.DAT
rlm on Windows does not recognize license files which have uppercase characters in the file extension. This is fixed in 5.0BL3.
P117 - rlm_product_options() returns no options
rlm_product_options() returns NULL even if the license contains options. This is fixed in v5.0BL3. rlm_product_options() was introduced in v5.0BL2.
P115 - FLEXlm compatible lockfile issues on Windows
RLM writes the FLEXlm compatible lockfile on Windows to the system drive. FLEXlm writes the lockfile to the C: drive (at least as of FLEXlm v10.3). Starting in RLM v4.0BL6 (and RLM v5.0BL2), RLM will write the lockfile to the C: drive by default. The ISV has the option of using the older RLM behavior of using the system drive as well. Note that if the target system has no C: drive, the locking will fail and RLM servers will not run. On the other hand, if you select the system drive, RLM will lock there, and FLEXlm will do whatever it does when there is no C: drive.
P114 - rlm_act_admin fails on x86_w2 with no db fulfillments
(Note: This issue is the same as P102) rlm_act_admin will fail (exit) when run on a database with no fulfillments. This happens on versions built with the x86_w2 kit only. The workaround is to build rlm_act_admin with the x86_w1 kit using VS6 or VS2003. This issue is fixed in rlm v4.0BL6
P111 - ISV servers do not detect removal of portable hostids
The RLM ISV servers do not detect the removal of a portable (transient) hostid. This is fixed in RLM v5.0BL1.
P108 - Users are added to named user list incorrectly
Users are added to the named user list even when they cannot get a license due to reservations which would preclude them. This is corrected in RLM v4.0BL6
P107 - rlm_products() returns expired roamed licenses
rlm_products() will return expired roamed licenses in the list. This is corrected in v4.0BL6.
P104 - rlm_get_attr_health() failure on partitioned network
If the network between client and server nodes becomes partitioned, the client correctly notices that the license is not valid after a call to rlm_get_attr_health() (or via rlm_auto_hb()), however, the bad status will persist after network connectivity is restored. This is corrected in v4.0BL6.
P102 - rlm_act_admin generates an access violation on x86_w2
P102 - rlm_act_admin would generate an access violation at times on versions built with the x86_w2 kit. The workaround is to build rlm_act_admin with the x86_w1 kit. The problem is corrected on x86_w2 in v4.0BL6.
P99 - rlmstat -avail segment faults under certain conditions
rlmstat -avail will segment fault under certain conditions. If there are multiple license files, and a license file before the last one processed has a bad or missing HOST line (as would be the case if the license file contained only nodelocked, uncounted licenses, for example), then rlmstat -avail will segment fault. This is corrected in v4.0.
P98 - Once a roamed license expires, it can't be checked out
Once a roamed license expires, it cannot be checked out again. This is corrected in v4.0.
P97 - ISV server doesn't return roaming licenses
The ISV server does not return roaming licenses automatically. This is corrected in v4.0.
P96 - roamed license does not get invalidated properly
If a roamed license is checked out, then another process returns the roamed license back to the license pool, the first process will not be notified that it's license is invalid when it calls the heartbeat functions (either manually or automatically). This is corrected in v4.0.
P86 - activation license generator can fail...
The activation license generator will fail (core dump) on certain license types, due to a problem in the internal license printing routines. This problem can manifest itself in any license generator which creates licenses directly in a string using the rlm_sign_license() API call. The rlmsign utility is not affected. This is fixed in v3.0BL6.
P85 - license server can "forget" roamed licenses
If licenses are roaming, and the ISV server is stopped and restarted, creating new roaming licenses will cause the ISV server to "forget" about the old roamed licenses of the same product name. This is fixed in v3.0BL6.
P84 - rlmstat can hang if the server goes down
rlmstat can hang in the middle of a userlist operation if the server goes down. This is corrected in v3.0BL6.
P81 - core dump if serverhostname is not in network DB
rlm core dumps if the hostname on the server node is not present in the network database. This is fixed in v3.0BL6. A workaround is to ensure that the local hostname appears in the network database.
P80 - rlm_act_request() fails on Windows Vista ...
rlm_act_request() fails on Windows Vista if the supplied URL has a leading "http://" in the string. This is fixed in v3.0BL4.
P75 - Missing ethernet devices on Linux return all 0's
Missing ethernet devices on Linux will result in a good hostid of all zeroes being returned. The same result will happen on operating systems on which RLM does not support an ethernet address as a hostid. This situation now results in an invalid hostid, which will not match any hostid in a license file. This is fixed in v3.0BL4.
P74 - licenses locked to wildcard IP address are unusable
Counted license which are nodelocked to a wildcard IP address will not be available for checkout. This is fixed in v3.0BL4.
P68 - rlm_products() causes application fault.
If rlm_products() is called and a license file with only nodelocked licenses in it appears anywhere in the license list except the last position, rlm_products() will cause an application fault. This is fixed in v3.0BL4.
P67 - Windows RLM servers do not find license files
On Windows, if rlm is started in a folder which has a pathname with embedded spaces, it will not find license files in that folder. This is fixed in v3.0BL3.
P65 - ISV server does not start on Windows
If the ISV server pathname is omitted on a Windows system, the ISV server will not start. This is fixed in v3.0BL3.
P59 - License requests for valid versions sometimes fail
License requests for valid versions will sometimes fail when they should not. This happens if the major version # is the same, and the minor version number from the request is less than the license version number, but the minor version in the request either has more digits or the same number of digits and the last digit is higher than the corresponding digit in the license. So, for example, a request for 2.49 will fail on a license for v2.5, or v2.50. This is fixed in v3.0BL3.
P58 - no port in LF - client connection problems
If the port # in the license file is 0 or missing, the server starts on the default port (28000), but clients cannot connect. This is fixed in v3.0BL3. (Note: the workaround prior to v3.0BL3 is to either specify a port #, or use 28000@serverhost in the client environment).
P57 - rlm_products() did not report on local roam
rlm_products() did not report on products that were roaming on the local node. This is fixed in v3.0.
P42 - rlm will not start if hostnames don't match
rlm will not start if a fully-qualified hostname is in the license file, but the hostname command returns the unqualified hostname. This is fixed in rlm v3.0BL3, since the servers no longer verify the hostname in the license file.
P30 - rlm_products() causes a segment fault
rlm_products() causes a segment fault if there are no matching products. Additionaly, it was case-sensitive. Both of these issues were fixed in v3.0BL3.
P29 - roamed licenses on a failover server
P29 - licenses could be roamed from a failed-over license server. These licenses could not be checked back in unless the original server is still down. The resolution is that roaming operations are no longer permitted on license pools that come from a failed server (even if only a portion of the licenses came from the failed server). Fixed in v3.0BL3
P26 - starting rlm from a dos window
P26 - (windows) - when starting rlm from a dos window a warning about rlm_path being NULL was generated. Fixed in v3.0BL3

Support home

Resources for software publishers and license administrators

Email tech support

Send us your questions or requests for technical assistance.

Reprise on Twitter

Follow Reprise on Twitter for news of bug fixes, product releases, and more.

Reprise Blog

Stay current on all topics related to license management

Webinars

Sign up for a live demo of RLM or Activation Pro

Supported platforms

  • Linux x86 (64-bit, 32-bit)
  • Windows XP, Vista, 7, 8, 10 (64-bit, 32-bit)
  • Windows Server 2003, 2008, 2012 (64-bit, 32-bit)
  • Windows 2000 (32-bit)
  • Mac OS X x86 (64-bit, 32-bit)
  • Mac OS X PPC (32-bit)
  • Solaris x86 (64-bit, 32-bit)
  • Solaris Sparc (64-bit, 32-bit)
  • IBM AIX RS/6000 (64-bit, 32-bit)
  • HP-UX PA-Risc (64-bit, 32-bit)
  • NetBSD x86 (32-bit)
  • Java (Mac, Unix, Windows)
  • ARM9
  • Intel Xeon Pi