use of staticmethod in kojihub.py
by Ken Dreyer
Someone was asking me recently why hub/kojihub.py has a convention like:
listChannels = staticmethod(list_channels)
Is it fine to just remove this and use the @staticmethod decorator on
all the "public API" methods everywhere?
- Ken
3 years, 5 months
koji 1.22 roadmap pruning
by Tomas Kopecek
Hi all,
1.22 code freeze is near and there are still lots of open issues. I've
limited availability for koji work these weeks so it is already clear that
I'll not be able to fix everything. Can you write a comment on issues you
consider important for this release? I'll try to prioritize the rest of the
work accordingly.
--
Tomas Kopecek <tkopecek(a)redhat.com>
RHEL Build Development, RedHat
3 years, 5 months
benchmarking koji
by Ken Dreyer
If we had a "koji benchmark" tool, what would you like it to do?
I've written an Ansible playbook that automatically sets up Koji
according to our documentation, and I want to exercise the hub to see
how it performs. We can use a benchmark tool to understand changes
that could impact performance. As one example, we probably want to
compare CentOS 7, 8, and Fedora.
What scalability problems have you encountered with Koji in the wild?
I'm thinking of things like:
- Tagging thousands of builds quickly
- Contention on the sessions table
- Maintaining thousands of builders
- Ensuring kojira runs in a timely manner
When we have test data, even if the benchmarks are fairly synthetic,
it's easier to see the impact of code changes before we ship.
(As an aside, I started writing a really simple "echo" and "login"
benchmark tool using the txkoji library, but I found that Twisted's
built-in XML-RPC client only supports HTTP/1.0, so no keepalives!)
- Ken
3 years, 5 months
Error: "<type 'exceptions.TypeError'>: object of type 'NoneType' has
no len()"> in koji
by Viacheslav Dubrovskyi
Hi.
After update koji from 17 -> 1.21.0-2.el7 all build failed with error:
<Fault 1: "<type 'exceptions.TypeError'>: object of type 'NoneType' has
no len()">
[slava@dubrwork ~]$ koji build el7
/home/slava/Documents/ORO/SCL/rh-postgresql12/rh-postgresql12-3.4-2.fc32.src.rpm
Uploading srpm:
/home/slava/Documents/ORO/SCL/rh-postgresql12/rh-postgresql12-3.4-2.fc32.src.rpm
[====================================] 100% 00:00:00 17.38 KiB 64.31
KiB/sec
Created task: 5873
Task info: http://koji.oro.cloud/koji/taskinfo?taskID=5873
Watching tasks (this may be safely interrupted)...
5873 build (el7, rh-postgresql12-3.4-2.fc32.src.rpm): free
5873 build (el7, rh-postgresql12-3.4-2.fc32.src.rpm): free -> open
(koji.oro.cloud)
5874 rebuildSRPM (noarch): open (koji.oro.cloud)
5874 rebuildSRPM (noarch): open (koji.oro.cloud) -> closed
0 free 1 open 1 done 0 failed
5875 buildArch (rh-postgresql12-3.4-2.el7.src.rpm, x86_64): free
5875 buildArch (rh-postgresql12-3.4-2.el7.src.rpm, x86_64): free ->
open (koji.oro.cloud)
5873 build (el7, rh-postgresql12-3.4-2.fc32.src.rpm): open
(koji.oro.cloud) -> FAILED: Fault: <Fault 1: "<type
'exceptions.TypeError'>: object of type 'NoneType' has no len()">
0 free 1 open 1 done 1 failed
5875 buildArch (rh-postgresql12-3.4-2.el7.src.rpm, x86_64): open
(koji.oro.cloud) -> closed
0 free 0 open 2 done 1 failed
5873 build (el7, rh-postgresql12-3.4-2.fc32.src.rpm) failed
In /var/log/kojid.log:
2020-06-10 16:37:14,329 [INFO] koji.TaskManager: Task 5875 (pid 3358)
exited with status 0
2020-06-10 16:37:14,380 [INFO] koji.TaskManager: Expiring subsession
6833 (task 5875)
2020-06-10 16:37:14,529 [WARNING] koji.TaskManager: FAULT:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/koji/daemon.py", line 1339, in
runTask
response = (handler.run(),)
File "/usr/lib/python2.7/site-packages/koji/tasks.py", line 329, in run
return koji.util.call_with_argcheck(self.handler, self.params,
self.opts)
File "/usr/lib/python2.7/site-packages/koji/util.py", line 258, in
call_with_argcheck
return func(*args, **kwargs)
File "/usr/sbin/kojid", line 1062, in handler
self.session.host.completeBuild(self.id, build_id, srpm, rpms,
brmap, logs=logs)
File "/usr/lib/python2.7/site-packages/koji/__init__.py", line 2263,
in __call__
return self.__func(self.__name, args, opts)
File "/usr/lib/python2.7/site-packages/koji/__init__.py", line 2804,
in _callMethod
raise err
Fault: <Fault 1: "<type 'exceptions.TypeError'>: object of type
'NoneType' has no len()">
$ rpm -qa | grep koji | sort
koji-1.21.0-2.el7.noarch
koji-builder-1.21.0-2.el7.noarch
koji-hub-1.21.0-2.el7.noarch
koji-utils-1.21.0-2.el7.noarch
koji-web-1.21.0-2.el7.noarch
python2-koji-1.21.0-2.el7.noarch
python2-koji-cli-plugins-1.21.0-2.el7.noarch
python2-koji-hub-1.21.0-2.el7.noarch
python2-koji-web-1.21.0-2.el7.noarch
Help please to fix it.
Thank you!
--
WBR,
Viacheslav Dubrovskyi
3 years, 5 months