LA_EXPIRED in armv7 Docker container

We’re trying to activate Cryptlex licenses in a Docker container running on an armv7 device. The container is running on Debian 11 (Bullseye). We’re getting an LA_EXPIRED (status code 20) response during activation (ActivateLicense).

One caveat is that the container is running in a QEMU virtual machine (armv7), but this is also happening on real hardware.

The license is configured to allow VM / Container activations. The clock offset is set to 120 seconds. The expiration date is well into the future (~50 years).

image

.NET LexActivator version: 3.20.10
Docker version: 23.0.2

Any guidance would be appreciated. We specifically configured the container to use NTP and also set the timezone. The clock offset is within the 120s. The license should not be expired.

We can activate the same license in a non-armv7 container and it works fine.

Oh, and wanted to add that activating a trial license (online) appears to work. Customer is using this as a workaround for now.

Offline activation also returns LA_EXPIRED.

Hi,

Can you try running the following C program in your container:

#include <stdio.h>
#include <time.h>

int main() {
    printf("\n Unix timestamp: %d", time(NULL));
    return 0;
}

And check if it is returning the correct timestamp.

Everything looks good to me (inside the container):

image

I should add that this is with the node-locked license type, and the license fingerprint matching is set to fuzzy. I recognize that this is not recommended for Docker apps because of the lack of ability to fingerprint the environment.

I tried with a hosted floating license (okay for this specific device) with exact fingerprint matching as described by the documentation, and that license type appears to work, and does not report as expired.

Is there any advice for using floating licenses in Docker containers that are running on devices that do not have an active internet connection, and where we can’t install an on-premise floating license server? Is this something where a custom fingerprint helps us solve the problem? (For example, require user to enter a device serial number, and then keep track of used serial numbers, perhaps with a webhook).

Also, can floating licenses be activated offline?

LA_EXPIRED is only returned if the license has expired or the time on the current machine is in future that makes license looks expired. It has nothing to do with any other parameter of the license.

Can you try with some perpetual license and see what the error code is?

For offline floating licenses, you have to use LexFloatServer