Hi folks,
The 2025.10 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
and
https://hub.docker.com/u/lavasoftware
Changes in this release ==================
# Device-types
## New device-types
* acer-cp714-1hn-rex * acer-cpe794-1n-rex * imx8mp-frdm * imx91-11x11-frdm-imx91s * imx943-15x15-lpddr4-evk * imx95-15x15-frdm * k3-am625-verdin-wifi-mallow * mt8196-rauru-navi-sku2 * rk3576-rock-4d
## Removed device-types
* aml-s905d3-cc: duplicates of meson-sm1-s905d3-libretech-cc
## u-boot
Support dynamic device tree update using fdt command. This feature allows dynamic modifications to the loaded DTB.
For example, the device dictionary could include the following to enable the ethernet at runtime on the mt8365-genio-350-evk:
```jinja {% set uboot_fdt_extra_commands = ['fdt set /soc/ethernet status okay'] %} ```
# LAVA Server
## Database migration
A new partial index on TestCase table to improve performances when creating the Job Errors page.
## gunicorn optimization
Use gunicorn's `--preload` mode to optimize memory usage.
The preload mode will load all the Python files before forking the workers. This allows the Python code to be shared in memory between worker processes resulting in less overall RAM being used.
## XMLRPC API
Add a new `proxy.scheduler.device_types.devices` endpoint to list the devices of a given device-type. The function allows to filter by device health.
# LAVA worker
## Kernel crashes
When a kernel panic happens a board can reboot faster than the end of the kernel panic could be printed. This will result the job error becoming `wait for prompt timed out` which is very misleading.
In this release, the error message will be `Kernel panic - not syncing` even if matching the end of kernel panic fails.
## Log queue
The `lava-run` process is now using a [multiprocessing.Queue]( https://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue) instead of a pipe to keep pending log lines in memory.
`multiprocessing.Queue` uses a unlimited queue as a internal buffer and a separate thread to feed the pipe. It helps prevent job execution from being blocked when logs are not consumed from the pipe in time
## HTTP cache rules
This release introduced rules and fallback when using the http caching service option. In the dispatcher configuration, you can now specify 4 different parameters to configure the http caching service, which URL to exclude and include and to fallback or not to the original URL if the caching service failed.
```jinja http_url_format_string: "https://cache.lavasoftware.org/api/v1/fetch?url=%s" http_cache_include_rules: ["https://.*example.com"] http_cache_exclude_rules: ["https://10.*"] http_cache_fallback_origin_url: True ```
## Log parsing performances
Remove the [pexpect](https://pexpect.readthedocs.io/en/stable/) delays for both reading and writing to the DUT serial console. This is improving log parsing speed when a lot of interaction are happening.
## Worker and job cancellation during restart
When restarting lava-worker, the process waits for attached lava jobs to finish cleanly. Due to a bug in previous version, canceling such jobs on the LAVA server was not taken into account by the worker. Starting in the release, lava-worker will correctly cancel lava jobs.
## Worker logs
Log time in lava-worker and lava-docker-worker log file into UTC. This has been broken since 2018.
Rgds