Temporal agent config missing after updating maas from 3.4 to 3.5 (package)

In documentation, no information are given about creating a temporal config. I got an error after updating from 3.4 to 3.5.
To reproduce:

  • 1 maas rack server 3.4 with 1 maas region server 3.4
  • inside the both server run :
    • sudo apt-add-repository ppa:maas/3.5
    • sudo apt update
    • sudo apt upgrade
  • inside maas region server:
    • display log with: sudo journalctl -u maas-temporal.service

      Unable to load configuration: config file corrupted: no config files found within /var/lib/maas/temporal.

@eliasb,

you shouldn’t be configuring the temporal agent at all! it isn’t for user adjustment. that said, can you send some logs so we can see what you’re talking about, specifically around regiond startup?

Hi @eliasb

MAAS should take care of crafting proper config file for Temporal during regiond startup. It is possible that something odd happened and regiond failed to generate correct config file. As Bill mentioned, there might be something in journalctl -u maas-regiond

Configuration file creation happens at:
src/maasserver/regiondservices/temporal.py

After the upgrate I got:

@troyanov the last lines of journalctl are:


It seems that an initiation script failed because of the images that were previously stored in the db

@eliasb in 3.5 we changed the way we store bootresources (they are not in the database anymore) and during upgrade to 3.5 they should be extracted onto the disk.

At first glance it seems that some of the blobs that should be exported do not exist in your database.

the missing BLOB is likely an unrecoverable error, so I suggest that you remove it

  1. identify the broken resource version
select rset.id, res."name", res.architecture , rf.filename, rset."version"  
from maasserver_bootresourcefile rf 
join maasserver_largefile ml on rf.largefile_id = ml.id
join maasserver_bootresourceset rset on rset.id = rf.resource_set_id 
join maasserver_bootresource res on rset.resource_id = res.id 
where ml."content" = $OID

replace $OID with the oid from the logs. If the result is a custom image, you will need to upload it again later. Standard images from images.maas.io will be downloaded again automatically.

  1. remove the reference to the offending entry
update maasserver_bootresourcefile rf 
set largefile_id = null 
from maasserver_largefile ml 
where rf.largefile_id = ml.id and ml."content" = $OID
  1. remove the broken largefile
delete from maasserver_largefile ml where ml."content" = $OID

Hello @alexsander-souza,

First of all, thank you very much for your help. I’ve been able to update my maas server.
I had to repeat your sql commands several times because I had several files affected.
I would like to thank everyone (I can’t mention more than 2 people in my message sorry) who replied on this subject for your responsiveness.

Regards.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.