gkernelci / gbuildbot Goto Github PK
View Code? Open in Web Editor NEWGentoo kernel automated
Home Page: https://gkernelci.gentoo.org/
License: GNU General Public License v2.0
Gentoo kernel automated
Home Page: https://gkernelci.gentoo.org/
License: GNU General Public License v2.0
qemu-system-x86_64: -hda /tmp/gentoo.qcow2: Failed to get "write" lock
Is another process using the image?
http://kernel1.amd64.dev.gentoo.org:8010/#/builders/3/builds/49/steps/13/logs/stdio
we need to install
armv7a-hardfloat-linux-gnueabi-gcc
in kernel2.amd64.dev.gentoo.org
gcc 7.3 is now keyword stabilized for arm architecture.
After I've finished testing (locally) I'd like to bump this crossdev target on
kernel2.amd64.dev.gentoo.org
(which is still on gcc-6.4.0-r1)
I don't see any reason to run CI / QA for older version of toolchain components than the latest keyword-stabilized version.
I have time in the next few days to perform the bump, but if anyone's if anyone's workflow will be disrupted by this change, please let me know before thursday (July 26th).
Looks like we need some dependency installer for make buildbot worker work, maybe we can make in the future a script for checking for unsatisfied dependency and install it automatically.
The dependency are also different from python 2 and python 3
Don't use the qemu check with package different from *-sources
http://kernel1.amd64.dev.gentoo.org:8010/#/builders/16/builds/11
<kuzetsa> stdio log from buildbot job 899
from the database
ERROR: duplicate key value violates unique constraint "sourcestamps_ss_hash_key"
ERROR: duplicate key value violates unique constraint "buildrequest_claims_brids"
Hi,
Buildbot should support the most common popular architectures used in gentoo, these are amd64, arm and arm64. As a first step support for ARM architecture would be great:
Upon failure to resolve github.com the CI bot seems to have prematurely marked the build as a failure, and not retried the fetch or performed a build test.
References:
opened issue to buildbot buildbot/buildbot#5890
~/Gdocker $ docker-compose logs |grep -ie error
db_1 | 2022-12-16 16:12:35.945 UTC [32] ERROR: relation "version" does not exist at character 15
db_1 | 2022-12-16 16:12:35.946 UTC [32] ERROR: relation "migrate_version" does not exist at character 15
Files removed from the repo still appear in the 'test' list, causing an error when they're missing (duh!).
Check which git operation took place on the files listed, and ignore those removed.
(probably relevant in the appropriate ChangeFilter function in master.cfg)
See https://kernel-ci.emjay-embedded.co.uk/#/builders/8/builds/681 for example.
buildbot_1 | 2021-02-13 09:28:45+0000 [-] trying to poll branch refs/heads/4.1 of https://github.com/GKernelCI/linux-patches.git
buildbot_1 | Traceback (most recent call last):
buildbot_1 | File "/usr/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks
buildbot_1 | current.result = callback(current.result, *args, **kw)
buildbot_1 | File "/usr/lib/python3.8/site-packages/twisted/internet/defer.py", line 1475, in gotResult
buildbot_1 | _inlineCallbacks(r, g, status)
buildbot_1 | File "/usr/lib/python3.8/site-packages/twisted/internet/defer.py", line 1416, in _inlineCallbacks
buildbot_1 | result = result.throwExceptionIntoGenerator(g)
buildbot_1 | File "/usr/lib/python3.8/site-packages/twisted/python/failure.py", line 512, in throwExceptionIntoGenerator
buildbot_1 | return g.throw(self.type, self.value, self.tb)
buildbot_1 | --- <exception caught here> ---
buildbot_1 | File "/usr/lib/python3.8/site-packages/buildbot/changes/gitpoller.py", line 220, in poll
buildbot_1 | yield self._process_changes(revs[branch], branch)
buildbot_1 | File "/usr/lib/python3.8/site-packages/twisted/internet/defer.py", line 1416, in _inlineCallbacks
buildbot_1 | result = result.throwExceptionIntoGenerator(g)
buildbot_1 | File "/usr/lib/python3.8/site-packages/twisted/python/failure.py", line 512, in throwExceptionIntoGenerator
buildbot_1 | return g.throw(self.type, self.value, self.tb)
buildbot_1 | File "/usr/lib/python3.8/site-packages/buildbot/changes/gitpoller.py", line 311, in _process_changes
buildbot_1 | results = yield self._dovccmd('log', revListArgs, path=self.workdir)
buildbot_1 | File "/usr/lib/python3.8/site-packages/twisted/internet/defer.py", line 1416, in _inlineCallbacks
buildbot_1 | result = result.throwExceptionIntoGenerator(g)
buildbot_1 | File "/usr/lib/python3.8/site-packages/twisted/python/failure.py", line 512, in throwExceptionIntoGenerator
buildbot_1 | return g.throw(self.type, self.value, self.tb)
buildbot_1 | File "/usr/lib/python3.8/site-packages/buildbot/changes/gitpoller.py", line 405, in _dovccmd
buildbot_1 | stdout = yield self._dovccmdImpl(command, args, path, None)
buildbot_1 | File "/usr/lib/python3.8/site-packages/twisted/internet/defer.py", line 1416, in _inlineCallbacks
buildbot_1 | result = result.throwExceptionIntoGenerator(g)
buildbot_1 | File "/usr/lib/python3.8/site-packages/twisted/python/failure.py", line 512, in throwExceptionIntoGenerator
buildbot_1 | return g.throw(self.type, self.value, self.tb)
buildbot_1 | builtins.TypeError: exceptions must be classes or instances deriving from BaseException, not type
http://kernel1.amd64.dev.gentoo.org:8010/#/builders/8/builds/3
Traceback (most recent call last):
File "check-kernelpage.py", line 94, in
new_version_split = new_version_revision.split('.',2)
AttributeError: 'NoneType' object has no attribute 'split'
Pull request should be checked/ build-tested on each branch.
This code grabs a list of packages to test:
Then later, the kernel CI bot checks to see that the
most recent commit for each package is working:
I believe this part is correct, because it's doing what
it was written to do: perform a build test on each package ...
The head of the branch (the git branch) for a PR is
normally the correct state to test. For a non-kernel PR,
testing the most recent commit in a PR is enough.
hypothetical failure test case / example:
sys-kernel/foo-sources-4.4.131.ebuild {commit #1}
sys-kernel/foo-sources-4.15.2.ebuild {commit #2}
The current state of the kernel CI bot treats these commits
the same package, and performs one test of the package.
both of these are part of sys-kernel/foo-sources package,
but each ebuild is on a different branch, and needs tested.
I don't understand how to change this buildbot code:
.
.
.
pseudocode / algorithm:
branch_list = new object_collection[] // key-value err... python dictionary?
commit_list = this.bot(input_data).commits
for each commit in commit_list
{
if !contains_ebuild(commit) then
continue // no ebuild, check next iteration
chk_vers = ebuild_getbranch(commit) // which branch is this?
if branch_list.has_key(chk_vers) then
branch_list(chk_vers) = commit // not testing obsolete revision anyway (overwrite)
else
branch_list(chk_vers) = commit // is this how python adds a NEW key/value pair?
}
.
Then update the iterator itself to check for branches:
should now be something like:
for branch in branch_list:
At this time, requiring one PR per bumped branch would be a workaround.
I don't write python.
https://www.openwall.com/lists/kernel-hardening/2018/07/18/1 has some useful defconfigs making use of well-known existing hardening features/options which we could easily deploy in kernel testing.
These could be potentially added under a 'hardened' USE flag with reference to the upstream inspirations in ewarn/einfo messages.
The way I'm checking this is by downloading a somewhat recent kernel and its corresponding patch from kernel.org, putting the patch suffixed by .patch to work with the build-kernel.sh script into a one-higher level directory "linux-patches" as required, unpacking the kernel source, and putting the scripts inside the kernel source folder.
I run "bash build-kernel.sh" which blows up needing make menuconfig/make xconfig/make oldconfig first.
Second, I created a .config via make menuconfig and then ran the build-kernel.sh script which still claims a .config doesn't exist even after the make menuconfig step, following by saving to a .config.
please check what's wrong in you mirror
As evidenced in #66 amongst other places, failure of an intermediate step in the build process does not cause buildbot to abort the build (as you might expect).
This is mostly a note to @mjeveritt to implement this change in our master.cfg .
We need documentation
for making the Gentoo kernel ci compatible with arm testing we need to install qemu-system-arm
in the kernel2 machine.
WARNING: Image format was not specified for '/tmp/gentoo.qcow2' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
qemu: could not load kernel '/boot/vmlinuz-sys-kernel/ck-sources/ck-sources-4.13.13': No such file or directory
vmimage present: /tmp/gentoo.qcow2
current state of amd64:
rather than a minimalist test, arm should boot a
stable profile / realistic OS (more than busybox)
Patch_kernel
and build_kernel
both contain warnings about missing dependencies on CONFIG_NET. This results in a failure to build the kernel image and the resulting trickle-down failures.
I suggest we create a patched _defconfig which is used by the patch_kernel
script.
This would allow non-developer Gentoo users to contribute CPU time similar to BOINC, or any other grid computing effort.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.