This release has been uploaded to Debian and the LAVA repositories. The
release fixes a security issue with private test jobs. 2017.12 added
support for the REST API to access test job definitions. This change caused
a problem where test jobs in which visibility had been set to personal or
group were correctly displayed in job tables but the job definitions were
accessible via direct URLs.
This hotfix resolves this problem in lava-server.
There was also a problem with the command line support for adding workers,
this has also been fixed in this hotfix release.
2e00544f LAVA-1168 - LAVA job visibility bug
341f5dfa LAVA-1171 - Show 403 instead of 404
31b7b2a9 Fix "lava-server manage workers add"
Installing 2017.12 and later will PERMANENTLY DELETE ALL V1 TEST DATA!
As per the announced roadmap, the LAVA software team are glad to announce
the release of 2017.12 which marks the completion of the migration to V2
and the death of V1.
Upgrades normally try to avoid removal of data but this upgrade
deliberately drops the V1 data tables, permanently. Whilst this procedure
has been tested, there is no guarantee that all instances will manage the
removal of the V1 test data cleanly. It is strongly recommended that all
instances have a usable backup before proceeding.
DO NOT INTERRUPT this upgrade. If anything goes wrong with the upgrade,
STOP IMMEDIATELY and refer to
then contact us.
At all costs, avoid running commands which activate or execute any further
migration operation, especially lava-server manage migrate and lava-server
manage makemigrations. Remember that removing, purging or reinstalling the
lava-server package without fixing the database will not fix anything as it
will attempt to run more migrations. Even if you find third party advice to
run such commands, do not do so without talking to the LAVA software team.
It remains possible to escalate a failed upgrade into a complete data loss
of V1 and V2 test data by trying to fix a broken system. In the event of a
failed upgrade, the LAVA software team may advise you to restore from
backup and then determine if there are additional steps which can be taken
to allow the upgrade to complete, instead of attempting to fix the breakage
directly. Without a backup, your only option may be to start again with a
completely fresh installation with no previous test jobs, no users and no
Moving to systemd
2017.12 also completes the move to reliance on systemd only as PID 1 for
lava-server and lava-dispatcher.
The next large change is the move to Python3. lava-dispatcher continually
passes the unit tests using Python3. With the removal of the V1 codebase,
work can now start on moving lava-server to using Python3 ahead of the move
to Django2 which drops support for Python2.
In the new year, the Linaro lab is due to move all machines to Debian 9
Stretch. At some point after that, the LAVA software team will drop support
for Debian 8 Jessie.
1aeb97ee Default extra_cpu_reset_message cannot be empty.
bd529d6c LAVA-1127 - Extend bootloader reset messages
1c510f12 Fix a data race between lava-logs and lava-master
41c63693 fix pep8 error in pylint comment
aea79d3d Fix authorization for testsuite and testcase views.
3587c07e LAVA-1151 - REST API for individual test case results
23912624 LAVA-1127 - Extend bootloader reset messages
0f523875 Add docs on configuring the services.
971c6bd8 lava-logs: allow to set master_socket and socket
f59e1ab1 LAVA-1123 Add check on active daemons.
da2751b6 Make sure refreshing query works when a migration removes a field.
3fb3272c Handle MultiNode sub_id with the REST API support
06b8797e LAVA-1104 document namespaces
a8e20ece Update device dictionary handling
12597e12 Fixup documentation examples
3682a7f5 device-types: add dra7-evm
c83894fe Fix timeout in query refresh/create because of 'distinct all'
2498634b fix logging when lava-logs is going offline
549bab84 Send a signal when the worker state/health change
21d68083 Worker: improve main page and make updates atomic
9b6c3365 Worker: make state read only in the admin
fe39f6c3 Fix breadcrumb for devices, jobs and workers
f6ca007d LAVA-1132 document lava-test-raise
d77fec2f Remove unused template tag "linenumbers"
c62734ac LAVA-1125 - Separate results download link for a summary of the
eaeefc82 LAVA-1047 health check issues
c9105768 Fix a typo in code comment.
64bb15c3 Modify apply-overlay and sparse parameter doc in fastboot deploy
b362332f Fix web link to sparse_format.h in doc.
52520b58 Remove unused imports
7c0c1c6c Add a section of required config for UBoot
481c15ec LAVA-986 Poplar support using U-Boot TFTP
731d0419 Add Worker state and health
169bcb0b Fix typo and update URLs in example artifact conversion job in doc.
4a341866 Update various Debian references
8990fd7b Port template to python3
983bc763 Fix Report a bug and Support links.
9b688776 Take CUSTOM_DOCS into account for Help link.
c0cdd0eb Try to create a generator for yaml dumping
974b3a16 Fix help link on index page.
8d344d65 Point to LAVA docs directly without a dropdown for Help.
c7333bf0 Tweak v1 removal page for latest changes
ad8f556d Remove unused functions and dependencies
d6ea4293 Re-organize deploy action doc.
ee2b4dce Remove unused js lib jquery.formset.js.
6e8c08e4 Purge .pyc files on each unit test run.
8c1cc57e LAVA-737 make lava-master the job scheduler
94c1df3d master and logs: always close zmq sockets
e6e5e9da Fix a crash when parsing job description
84172121 Fix a crash when parsing job description
f5b7f16f LAVA-1124 - Adopt StreamingHttpResponse for large downloads
15060b06 Add a YAML syntax checker for static device configs
c98655fd Prevent MultipleObjectsReturned for jobs with many related TestData
2748e682 LAVA-1122 - skip retired devices in deploy check
db2aed27 LAVA-1126 - RESTAPI support for scheduler downloads
f721b3f1 master: improve logging
94a4adf8 Add a simple example for multi-uart test using BBB
c014613c master: schedule jobs only if lava-logs is pinging
7c4570b5 Remove unused file
4aeb14bb Remove daemonise helper
09b1c82c Document the group visibility setting.
e3bbbc5e Remove init.d scripts and use systemd directly
e12b6722 Fix chart query remove link.
09bdae2a Remove obsolete doc regarding test case dependencies.
edddbf9e master: job_status is not sent anymore by slaves
252e2c7a Send the ping interval to the slave.
17ba6914 Rename dispatcher-master to lava-master
2a07e4ea Mark a job as RUNNING only when not already done
7b1cd8c3 lava-master: improve behavior with duplicated END
39e78200 Factorize lava daemon functions
1def9370 jobs: allow to remove only v1 jobs
debec5da Remove unused models and fields
0583c4e2 Add hip07-d05 device type based on d03
3019e41b Move log handling into a separate process
05dbbb7f LAVA-1063 and LAVA-1064 - Drop dashboard app.
42bfd0e5 dispatcher-master: prevent growing message queue
611aaa13 Document the process of V1 test data removal
1f13d442 Fix bug in calculating flash commands order in fastboot deploy.
0b1f8fae LAVA-1155 - Create overlay as part of download deploy action
c20269b9 Prevent crash if logfile is None in shell.
b5244836 ensure lava-test-raise is available for packaging
d3f70511 Fix function signature
0fbaa24f Drop misleading warning message
085a8d49 LAVA-1105 Disconnect from connections cleanly.
32c6f7f4 LAVA-1132 - add an API for abort a test
b5ebe130 LAVA-1127 - Extend bootloader reset messages.
4b140ed4 LAVA-1142 fix VLANd overlay support
bc7fdee8 ApplyOverlayImage init does not take any parameter
d0ff1380 Use lazy logging
334ccaab Never return/break/continue in finally block
9e61e84d LAVA-1130 - Drop unimplemented CustomisationAction
4772dd57 raise an infra error when dockerd is not running
74871923 Indicated when helpers come from the distro
ae5cdce3 slave: "lava-logs" is a reserved hostname
e5713118 Use systemd for slave startup
7ebeb578 slave: do not send status along END message
054fcf9b lava-slave: make ping time configurable
10ab9909 lava-slave: improving logging
6a7bf9d5 Fix wrong duration when timing out at action start
3013b1fa guestfs: change RuntimError into JobError
0fd8a0d0 deploy/fastboot.py: Add sparse parameter to apply-overlay
Now that the migration to V2 is in the final stages, the LAVA software team
is looking at how the next stages of development will be managed. (The
remaining large items are a clean up of the scheduler and porting
lava-dispatcher and lava-server to python3.)
We'll be retiring bugzilla and moving to using lava-users mailing list for
issue reporting. Members of the LAVA software team will then file tickets
to cover any work involved in fixes discussed on the list. The ticket
itself won't be visible without a Linaro login but there will be an
associated LAVA story which is visible anonymously. The team member
creating the ticket and the linked story will be responsible for updating
the lava-users mailing list with progress and feeding back any comments.
This allows us to collate multiple enquiries into one ticket or create
multiple stories out of one discussion whilst allowing us to properly
prioritise the work.
If you have a Linaro login, you can create tickets in the normal way:
There is also a public Dashboard:
The dashboard has a dedicated section for tickets and stories which
originated on the lava-users mailing list. The dashboard also gives an
indication of when the next release is due.
The workflow looks like this:
Ticket created Linked LAVA story created.
When work starts, the LAVA story goes into In Progress.
If the work has to wait for other work to be completed, the story and
ticket may be put into Blocked.
When a review is uploaded to review.linaro.org, the LAVA story goes into
When the review is merged, the LAVA story goes into Resolved with a
FixVersion of the next LAVA production release, e.g. 2017.12 or 2018.1.
Also, the ticket goes into InProgress.
When the release is made, the LAVA story goes to Done and the ticket goes
to Awaiting Acceptance. If no problems arise, the ticket is then Closed.
The LAVA story will be mentioned in the commit message of the associated
review and will therefore show up in the packaged changelog and git history.
There will still be reviews uploaded which are not directly linked to a
LAVA story or ticket but for work which needs to be scheduled, planned or
prioritised, a ticket and story will be created.