cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Resolved Issue: Vendor Daemon crashes when LM_A_LINGER configured with TIMEOUT/TIMEOUTALL

Resolved Issue: Vendor Daemon crashes when LM_A_LINGER configured with TIMEOUT/TIMEOUTALL

Summary

There is an issue where using the LM_A_LINGER attribute on the client side, combined with the TIMEOUT/TIMEOUTALL option in the OPTIONS file on the server side, causes the Vendor Daemon to crash when the server reclaims the license due to the client's inactivity. This issue affects producers using FlexNet Publisher versions 11.19.4.1 up to 11.19.6.0. The article below provides details about the known issue and the available resolution.

Symptoms

End users may experience frequent license server crashes and attempts to restart if the vendor daemon is configured with the TIMEOUT/TIMEOUTALL option in the OPTIONS file and the client uses the LM_A_LINGER attribute to create a client-side linger.

Steps to Reproduce

The issue can be observed by following the steps below:

1. Update the value ls_min_user_timeout to 90 in lsvendor.c file and build the kit.

2. Create an options file and add TIMEOUTALL=130.

3. Start the server with below license file:

SERVER this_host ANY
VENDOR <vendor>
USE_SERVER
#a counted license
FEATURE f1 <vendor>1.0 permanent 4 SIGN="CCCCCC"

4. Edit the default lmflex.c file shared in the kit with the below config to create 3 different client applications: 

#Client 1:
(void)lc_set_attr(lm_job, LM_A_LINGER, (LM_A_VAL_TYPE)700);
lc_set_attr(lm_job, LM_A_CHECK_INTERVAL, (LM_A_VAL_TYPE) -1);
lc_set_attr(lm_job, LM_A_RETRY_INTERVAL, (LM_A_VAL_TYPE) -1);
lc_set_attr(lm_job, LM_A_RETRY_COUNT, (LM_A_VAL_TYPE) -1);

#Client 2:
(void)lc_set_attr(lm_job, LM_A_LINGER, (LM_A_VAL_TYPE)600);
lc_set_attr(lm_job, LM_A_CHECK_INTERVAL, (LM_A_VAL_TYPE) -1);
lc_set_attr(lm_job, LM_A_RETRY_INTERVAL, (LM_A_VAL_TYPE) -1);
lc_set_attr(lm_job, LM_A_RETRY_COUNT, (LM_A_VAL_TYPE) -1);

#Client 3:
lc_set_attr(lm_job, LM_A_CHECK_INTERVAL, (LM_A_VAL_TYPE) -1);
lc_set_attr(lm_job, LM_A_RETRY_INTERVAL, (LM_A_VAL_TYPE) -1);
lc_set_attr(lm_job, LM_A_RETRY_COUNT, (LM_A_VAL_TYPE) -1);

#...(Other code here)...
sleep(150);
getchar();
lc_checkin(lm_job, feature, 0);

5. When the clients are created, run the clients in the following order a -> b -> c and maintain a 1-minute gap between each client checkout.

6. A crash will occur when the server reclaims the license due to client inactivity:

21:52:58 (YYYY) OUT: "f1" zzzz@aaaa
21:53:34 (YYYY) OUT: "f1" zzzz@aaaa
21:53:54 (YYYY) OUT: "f1" zzzz@aaaa
21:56:58 (YYYY) IN: "f1" zzzz@aaaa (INACTIVE)
21:56:58 (lmgrd) YYYY exited with status 5 signal = bbbb
21:56:58 (lmgrd) Since this is an unknown status, license server
21:56:58 (lmgrd) manager (lmgrd) will attempt to re-start the vendor daemon.
21:56:58 (lmgrd) REStarted YYYY (pid XXXX)
21:56:58 (YYYY) FlexNet Licensing version v11.19.6.0 x64_n6

Fix Version and Resolution

A fix for this issue is available as a hotfix in FlexNet Publisher 11.19.6.1. If the issue is being observed, please contact Revenera Technical Support for assistance with accessing the hotfix. The fix will be incorporated in the FlexNet Publisher 2024 R2 (11.19.7.0) GA release targeted for December 2024. 

Was this article helpful? Yes No
No ratings
Version history
Last update:
‎May 21, 2024 01:33 AM
Updated by:
Contributors