[FIX] runbot: add limit on log length

This commit is contained in:
Xavier-Do 2020-10-15 15:55:33 +02:00
parent 45034d362d
commit 1985917702
3 changed files with 6 additions and 2 deletions

View File

@ -357,6 +357,9 @@ class Batch(models.Model):
self._log(message, *args, level='WARNING')
def _log(self, message, *args, level='INFO'):
message = message % args if args else message
if len(message) > 300000:
message = message[:300000] + '[Truncate, message too long]'
self.env['runbot.batch.log'].create({
'batch_id': self.id,
'message': message % args if args else message,

View File

@ -670,9 +670,9 @@ class BuildResult(models.Model):
results = build.active_step._make_results(build)
except Exception as e:
if isinstance(e, RunbotException):
message = e.args[0]
message = e.args[0][:300000]
else:
message = 'An error occured while computing results of %s:\n %s' % (build.job, str(e).replace('\\n', '\n').replace("\\'", "'"))
message = 'An error occured while computing results of %s:\n %s' % (build.job, str(e).replace('\\n', '\n').replace("\\'", "'")[:10000])
_logger.exception(message)
build._log('_make_results', message, level='ERROR')
results = {'local_result': 'ko'}

View File

@ -858,6 +858,7 @@ class ConfigStep(models.Model):
eval_ctx = self.make_python_ctx(build)
safe_eval(self.python_result_code.strip(), eval_ctx, mode="exec", nocopy=True)
return_value = eval_ctx.get('return_value')
# todo check return_value or write in try except. Example: local result setted to wrong value
if not isinstance(return_value, dict):
raise RunbotException('python_result_code must set return_value to a dict values on build')
return return_value