Hi All,My name is Arthur and I work for Twingate - a zero trust network access solution (tl;dr like a vpn but different).One of our clients uses µVision and is finding that they are experiencing intermittent issues when compiling, appearing due to connectivity to the license server (which is facilitated via Twingate).While several files will compile fine, they will (seemingly at random) get the following error (more or less):compiling gcm.c...ArmClang: error: Failed to check out a license.No socket connection to license server manager.Feature: mdk_cm_std_compiler5License path: 27002@[Server];c:\program files\arm\licenses\license.dat;FlexNet Licensing error:-7,10015**As we don't share this particular environment, we have been unable to replicate this in house. Our first thought was it was potentially related to the number of concurrent connections, but we have replicated hundreds of simultaneous/concurrent connections over our system with no issues.We were also thinking it could be something specifically related to timeout, as apparently FlexNet is very sensitive to that. We discovered This Flexera Community Post and subsequently tried setting the FLEXLM_TIMEOUT environment variable on the machine (as well as the TOOLS.ini file for uvision) to 5,10 and 20s, with no apparent change in behaviour.Is this something anyone has seen before? (Even with other remote access solutions?) Is there a different variable or spot we should be tweaking a timeout setting? Something else super obvious that I missed?Any input or guidance would be appreciated!Thanks,-arthur
ArmClang: error: Failed to check out a license.No socket connection to license server manager.
Feature: mdk_cm_std_compiler5
License path: 27002@[Server];c:\program files\arm\licenses\license.dat;
FlexNet Licensing error:-7,10015**
Hello Arthur.
It is interesting that this is intermittent - is the VPN/firewall blocking certain transactions on port 27002? Are you able to see any logs from the VPN?
I also note that there is a local (node-locked) and flex (floating) license specified - is it that they are usually getting the license from the local file, but only when the request goes to the server?
As a test, please edit ARMLM_LICENSE_FILE to point only to the server, and see if this increases the fail rate.
I will also consult internally on other possible causes.
Regards, Ronan
Hello again
Discussing internally, we believe that if there is any unreliability in the connection, this may prevent the build completing. There will be constant comms between the build machine and the license server, every time the compiler is invoked (likely many times in a build). Once a communication fails, it will likely incur the observed error.
Do you ever observe packet loss on the channel?
Hey Ronan, Apologies for the delay. I do have a PCAP during a compile and I do see a handful of TCP RST's related to the communication on port 27002.The situation is definitely one where there is multiple invocations of the compiler.The way our product works is basically just by adjusting the routing of traffic (ie it thinks it's going to 10.x.x.x but actually we route that to a CGNAT IP and through the network to the remote machine) - so there's theoretically always the chance of packets being dropped no different than any other remote connection.Is there any sort of configuration flag that can increase the threshold before the application loses its mind about license server communication?Or do you have any other potential solutions/information I can gather for you?
Hi Arthur.
Apologies for slow reply on my side too... I was out of office for a few days. You should raise an 'official' support case from the menu above for formal support. Anyway...
Unfortunately the issues you are seeing are not unexpected.. each compiler invocation is independent, but if any compiler run fails to communicate to the license server, it will fail, and hence cause the overall make to fail.
For this (and other) reasons, Arm is migrating to a new 'user-based' licensing system, which will eliminate virtually all interaction with the server. I'm not sure what the general availability of this technology is at this time, I recommend contacting your sales team to find out more.
See the below links for an overview:https://learn.arm.com/install-guides/license/https://developer.arm.com/documentation/102516/1-2/User-based-licensing-overview
Hey Ronan,Thanks for the details. I'll have the mutual customer reach out to Sales.In the meantime, is there any way at the IDE/Compiler level to "space out" the concurrency of the compilers? (ie instead of running 50 up front, run 10, then another 10, etc etc etc) to reduce the network hammering that might be occurring and causing the issues we're seeing with the remote/vpn connection?Apologies if that's a "dumb" question - I have very little experience in this particular arenaThanks!-arthur
Hi Arthur,
No problem, and not a dumb question at all. Unfortunately I don't think this is possible... users always want their builds to proceed faster and faster, rather than adding delays.
Nuts. I was afraid of that.I'll let the customer know and we'll go from there.Thanks for all your help, I appreciate it!-arthur