Hi folks,

The 2024.03 tag has been pushed to master on gitlab.com/lava/lava.
.deb packages have been built in GitLab CI and are published at

  https://apt.lavasoftware.org/release

Docker images for amd64 and arm64 have been built in GitLab CI and
are available from

  https://registry.gitlab.com/

and

  https://hub.docker.com/u/lavasoftware

Changes in this release
==================

# Device-types

## New device-types

* mt8195-cherry-tomato-r3

## aaeon-UPN-EHLX4RE-A10-0864

Allow to set `kernel_start_message` variable.

## bcm2837-rpi-3-b

Fix the DT load addresses that was potentially overwriting u-boot ATAGs. See [rpi-3-32b fix](https://gitlab.com/lava/lava/-/commit/afa28d5ae128a591414517edd72652800a72be12)

## FVP

Automatically retry failures when activating the ARMLM license.

# APIs

## Rest API

The REST API v1 has been removed. The API has been superseded by v2 for a long time now.

At the same time, a new version of the API (v3) has been started. This is still an on going work to improve the API performances and reliability.

## XMLRPC

### Devices

Allow to update a device `physical_owner` field  from the API. Calling `lavacli devices update --user <username>` will update the field.

### Workers

Validate yaml syntax before updating the worker configuration.

# docker

## lava-dispatcher

Use QEMU from bookworm-backports, upgrading from 2.7 to 8.2.1.

# Services

## lava-dispatcher-host

Improve stability by handling more potential exceptions.

## lava-publisher

Improve lava-publisher stability by handling multiple potential connection errors.

## lava-run

When sending logs over https fails because the payload is too large, lava-run will automatically reduce the size of the payload before retrying. Before this version, lava-run would retry with the exact same payload (or sometime even larger one) and will be unlikely to ever succeed.

When failing to send logs to the server, lava-run will also record the error to stderr. lava-worker will then forward these messages to the server. This will be recorded as failure_comment.

## lava-server-gunicorn

Switch gunicorn default worker from eventlet to gthread.

With eventlet, the event notification system (based on ZMQ socket) will need to create a new socket for each connection. If the publisher service is unreachable, the server will consume all the file descriptors and crash after some time.

gthread worker allows to reuse the same zmq socket for multiple requests while still allowing requests to live longer than the worker timeout.

Regarding the performances, the apache bench test results shown that gthread is able to handle more concurrent connection than eventlet in most use cases.

## lava-server cli

A new argument has been added to the `lava-server jobs rm` command: `--logs-only`. When this parameter is set, the command will only remove the logs from the filesystem while keeping the TestJob objects in the database.


Rgds

-- 
Rémi Duraffort
Principal Tech Lead
LAVA Tech Lead
Automation Software Team
Linaro