Bug 14896 - Current autobuilder code incompatible with buildbot 3.5.0
Summary: Current autobuilder code incompatible with buildbot 3.5.0
Status: RESOLVED FIXED
Alias: None
Product: AutoBuilder
Classification: Infrastructure
Component: autobuilder (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium+ normal
Target Milestone: 4.3 M1
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2022-08-17 22:27 UTC by Jate Sujjavanich
Modified: 2023-06-08 16:12 UTC (History)
6 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Don't know


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jate Sujjavanich 2022-08-17 22:27:15 UTC
I created a yocto-autobuilder2 instance under and a pyenv with python 3.6.11. I used the instructions in the README.Guide. This installs buildbot 3.5.0.

When starting an a-quick build, for example, the subbuilders run "Check run-config steps to use" which is a call to run-config. However, no further build steps are created.

Dropping the buildbot version to 2.8.4 (matching the autobuilder.yocto.io instance) allows run-config to work, however.
Comment 1 Benjamin Esquivel 2022-09-20 17:28:35 UTC
Hi Jate, have you inspected your yocto-controller/twistd.log when the process gets stuck?

are there any other signs of obvious errors that you can share?

I just installed the autobuilder controller following the instructions and I did run into some bumps which I'll be sending patches for soon but I wanted to check if yours is a different error.
Comment 2 Jate Sujjavanich 2022-09-21 00:36:43 UTC
In the controller twistd.log, the instance on 3.5.0 jumps straight to the next step from run-config's generation of json to Clobber build dir.

I added some debug code to the functions in runconfig.py's RunConfigCheckSteps. In 2.8.4, I see calls to evaluateCommand:

2022-09-12 15:32:55-0400 [-] DEBUG: RunConfigCheckSteps.run()
2022-09-12 15:32:55-0400 [-] DEBUG: RunConfigCheckSteps.start()
022-09-12 15:32:55-0400 [-] ShellCommand.startCommand(cmd=<RemoteShellCommand '
['/home/pokybuild3/yocto-worker/syntux-dunfell/yocto-autobuilder-helper/scripts/
run-config' ... --json-outputfile ...
...
2022-09-12 15:32:55-0400 [-] closing log <buildbot.process.buildstep.SyncLogFile
Wrapper object at 0x7f1ba8fe3ba8>
2022-09-12 15:32:55-0400 [-] closing log <buildbot.process.buildstep.SyncLogFile
Wrapper object at 0x7f1ba914b0b8>
2022-09-12 15:32:55-0400 [-] DEBUG: evaluateCommand
2022-09-12 15:32:56-0400 [-] releaseLocks(RunConfigCheckSteps(posttrigger=False)): []
2022-09-12 15:32:56-0400 [-]  step 'Check run-config steps to use' complete: success (None)
2022-09-12 15:32:56-0400 [-] ShellCommand.startCommand(cmd=<RemoteShellCommand '['/home/pokybuild3/yocto-worker/syntux-dunfell/yocto-autobuilder-helper/scripts/run-config' ... --phase 1


But with 3.5.0:

2022-09-20 20:05:50-0400 [-]  step 'Set build branch' complete: success (None)
2022-09-20 20:05:50-0400 [-] <RemoteShellCommand '['/home/pokybuild3/yocto-worke
r/qemux86-64/yocto-autobuilder-helper/scripts/run-config', --json-outputfile
...
2022-09-20 20:05:50-0400 [-] releaseLocks(RunConfigCheckSteps(posttrigger=False)): []
2022-09-20 20:05:50-0400 [-]  step 'Check run-config steps to use' complete: success (None)
2022-09-20 20:05:50-0400 [-] <RemoteShellCommand '['/home/pokybuild3/yocto-autobuilder-helper/janitor/clobberdir', '/home/pokybuild3/yocto-worker/qemux86-64/']'>: RemoteCommand.run [13]
2022-09-20 20:05:50-0400 [-] command '['/home/pokybuild3/yocto-autobuilder-helper/janitor/clobberdir', '/home/pokybuild3/yocto-worker/qemux86-64/']' in dir 'build'
Comment 3 Benjamin Esquivel 2022-09-22 01:46:15 UTC
ok, I'll take a look at this and see if the 3.6.0 behaves the same as 3.5.0 you mention.
Comment 4 Jate Sujjavanich 2022-12-07 00:39:19 UTC
While using the yocto-autobuilder2 code, I became curious about exactly what version stopped working. By bisecting the versions, I learned it was buildbot 3.0.0. That's when I found the release notes about the deprecation of old-style build steps. E.g., ShellCommand.

In 2.9.x, buildbot's developers added deprecation warnings to begin the process of removing old-style steps. They added *NewStyle aliases to allow gradual migration to the new API.
In 3.0.x, they formally removed old-style steps.
In 3.1.x, they removed the *NewStyle aliases. Before moving to this version, the *NewStyle aliases should be converted to standard classes.

I some patches which go through this migration process.

I've done simple testing up through 3.2.x. There will probably have to be a structured test plan to cover autobuilder2 through the latest version.
Comment 5 Richard Purdie 2023-06-08 16:12:27 UTC
We've updated to new versions of buildbot now.