[users at bb.net] No grid/console views, build view always empty, despite successful build
Jeronimo Pellegrini
j_p at aleph0.info
Mon Mar 23 22:46:40 UTC 2020
I found the problem!
It was the reverse proxy that wasn't properly configured for websockets.
I used this in my apache virtualhost config,
<Location /ws>
ProxyPass ws://127.0.0.1:8010/ws
ProxyPassReverse ws://127.0.0.1:8010/ws
</Location>
ProxyPass /ws !
ProxyPass / http://localhost:8010/
ProxyPassReverse / http://localhost:8010/
and it works now!
( after searching a lot, I found the solution here:
https://docs.buildbot.net/0.9.2/manual/cfg-www.html )
There it is, in case anyone else needs it.
J.
On Sat, Mar 21, 2020 at 12:44:38PM -0300, Jeronimo Pellegrini wrote:
> Hello!
>
> I have installed buildbot -- one docker image with a master, and another with a worker. Inter-container networking is allowed, and they share the same network; I have also a gitea instance, and installed the `buildbot_gitea` plugin.
>
> So far I got a small project to run `make` on the worker after a push, and buildbot correctly reports success back to gitea (I can tell form the logs, and gitea also shows the green check image on the repo).
>
> However,
>
> * the waterfall view is always empty; console and grid views do not load (they show the "loading" animation and never finish);
> * in the "Home" buildbot tab, sometimes the list of recent builds show up, sometimes it doesn't. (But the number of recent builds is always correct)
> * if I click on one of the builds (successful or not, doesn't matter), it shows a build page, but empty (no build steps, no build properties, nothing).
>
> The only things that look strange on the master logs are periodic timeout messages, some connection drop messages:
>
> 2020-03-21 12:11:26+0000 [-] Timing out client: IPv4Address(type='TCP', host='172.27.0.1', port=56388)
> 2020-03-21 12:11:26+0000 [-] Timing out client: IPv4Address(type='TCP', host='172.27.0.1', port=56380)
> 2020-03-21 12:11:26+0000 [-] Timing out client: IPv4Address(type='TCP', host='172.27.0.1', port=56392)
>
> 2020-03-21 12:19:40+0000 [-] dropping connection to peer tcp4:172.27.0.1:56598 with abort=False: None
>
> and this:
>
> 2020-03-21 12:10:49+0000 [-] Unhandled error in Deferred:
> 2020-03-21 12:10:49+0000 [-] Unhandled Error
> Traceback (most recent call last):
> File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
> self.run()
> File "/usr/lib/python3.8/threading.py", line 870, in run
> self._target(*self._args, **self._kwargs)
> File "/bbot/sandbox/lib/python3.8/site-packages/twisted/_threads/_threadworker.py", line 46, in work
> task()
> File "/bbot/sandbox/lib/python3.8/site-packages/twisted/_threads/_team.py", line 190, in doWork
> task()
> --- <exception caught here> ---
> File "/bbot/sandbox/lib/python3.8/site-packages/twisted/python/threadpool.py", line 250, in inContext
> result = inContext.theWork()
> File "/bbot/sandbox/lib/python3.8/site-packages/twisted/python/threadpool.py", line 266, in <lambda>
> inContext.theWork = lambda: context.call(ctx, func, *args, **kw)
> File "/bbot/sandbox/lib/python3.8/site-packages/twisted/python/context.py", line 122, in callWithContext
> return self.currentContext().callWithContext(ctx, func, *args, **kw)
> File "/bbot/sandbox/lib/python3.8/site-packages/twisted/python/context.py", line 85, in callWithContext
> return func(*args,**kw)
> File "/bbot/sandbox/lib/python3.8/site-packages/buildbot/buildbot_net_usage_data.py", line 204, in _sendBuildbotNetUsageData
> res = _sendWithRequests(PHONE_HOME_URL, data)
> File "/bbot/sandbox/lib/python3.8/site-packages/buildbot/buildbot_net_usage_data.py", line 197, in _sendWithRequests
> r = requests.post(url, json=data)
> File "/bbot/sandbox/lib/python3.8/site-packages/requests/api.py", line 119, in post
> return request('post', url, data=data, json=json, **kwargs)
> File "/bbot/sandbox/lib/python3.8/site-packages/requests/api.py", line 61, in request
> return session.request(method=method, url=url, **kwargs)
> File "/bbot/sandbox/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
> resp = self.send(prep, **send_kwargs)
> File "/bbot/sandbox/lib/python3.8/site-packages/requests/sessions.py", line 643, in send
> r = adapter.send(request, **kwargs)
> File "/bbot/sandbox/lib/python3.8/site-packages/requests/adapters.py", line 516, in send
> raise ConnectionError(e, request=request)
> requests.exceptions.ConnectionError: HTTPSConnectionPool(host='events.buildbot.net', port=443): Max retries exceeded with url: /events/phone_home (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7ff7297704f0>: Failed to establish a new connection: [Errno 110] Operation timed out'))
>
> which seems to happen only once (why is buildbot trying to phone home anyway? there is no mention of `events.buildbot.net` in any of my config files.
>
> The docker containers have full network access, ipv6, routing and DNS are all fine (tested with the `buildbot-master` image).
>
> This is my `master.cfg`:
>
> import os
>
> from twisted.application import service
> from buildbot.master import BuildMaster
>
> from buildbot.plugins import *
> from buildbot_gitea.auth import GiteaAuth
> from buildbot_gitea import *
>
> basedir = '/bbot/bbot-master'
> rotateLength = 10000000
> maxRotatedFiles = 10
> configfile = 'master.cfg'
>
> umask = None
>
> if basedir == '.':
> basedir = os.path.abspath(os.path.dirname(__file__))
> application = service.Application('buildmaster')
> from twisted.python.logfile import LogFile
> from twisted.python.log import ILogObserver, FileLogObserver
> logfile = LogFile.fromFullPath(os.path.join(basedir, "twistd.log"), rotateLength=rotateLength,
> maxRotatedFiles=maxRotatedFiles)
> application.setComponent(ILogObserver, FileLogObserver(logfile).emit)
>
> m = BuildMaster(basedir, configfile, umask)
> m.setServiceParent(application)
> m.log_rotation.rotateLength = rotateLength
> m.log_rotation.maxRotatedFiles = maxRotatedFiles# -*- python -*-
> # ex: set filetype=python:
>
> from buildbot.plugins import *
>
>
> c = BuildmasterConfig = {}
> ####### WORKERS
>
> c['workers'] = [worker.Worker("bbot-worker", "BUILDBOT_PASSWORD")]
>
> c['protocols'] = {'pb': {'port': 9989}}
>
> ####### CHANGESOURCES
>
> c['change_source'] = []
> c['change_source'].append(changes.PBChangeSource())
>
> ####### SCHEDULERS
>
> c['schedulers'] = []
>
>
> c['schedulers'].append(schedulers.SingleBranchScheduler(
> name="all",
> change_filter=util.ChangeFilter(branch='master'),
> treeStableTimer=None,
> builderNames=["runtests"]))
> c['schedulers'].append(schedulers.ForceScheduler(
> name="force",
> builderNames=["runtests"]))
>
> ####### BUILDERS
>
> factory = util.BuildFactory()
> factory.addStep(steps.Gitea(repourl='gitea at gitea.mydomain:jpellegrini/repo.git',
> mode='incremental',
> workdir="build",
> branch="master",
> progress=True,
> logEnviron=False,
> ))
>
> factory.addStep(steps.ShellCommand(command=["make"]))
>
> c['builders'] = []
>
> c['builders'].append(
> util.BuilderConfig(name="runtests",
> workernames=["bbot-worker"],
> factory=factory))
>
> ####### BUILDBOT SERVICES
>
> c['services'] = [
> reporters.GiteaStatusPush(
> baseURL="https://gitea.mydomain/",
> token="GITEA_API_ACCESS_TOKEN",
> verbose=True)
> ]
>
>
> ####### PROJECT IDENTITY
>
> c['title'] = "My Domain!"
> c['titleURL'] = "https://buildbot.mydomain"
>
>
> c['buildbotURL'] = "https://buildbot.mydomain/"
>
> c['www'] = dict(port=8010,
> plugins=dict(waterfall_view={}, console_view={}, grid_view={}))
>
> c['www']['authz'] = util.Authz(
> allowRules = [
> util.AnyEndpointMatcher(role="admins")
> ],
> roleMatchers = [
> util.RolesFromUsername(roles=['admins'], usernames=['jpellegrini'])
> ]
> )
>
> c['www']['auth'] = GiteaAuth(
> endpoint="https://gitea.mydomain/",
> client_id="MY_CLIENT_ID_FROM_GITEA",
> client_secret='MY_CLIENT_SECRET_FROM_GITEA')
>
> c['www']['change_hook_dialects'] = {
> 'gitea': {
> 'secret': 'THE_GITEA_WEBHOOK_SECRET',
> 'onlyIncludePushCommit': True
> }
> }
>
> ####### DB URL
>
> c['db'] = {
> 'db_url' : "postgresql://buildbot:MY_SECRET_DB_PASSWORD@172.25.0.2/buildbot",
> }
>
> The Dockerfile for the master is
>
> FROM alpine:3.11.3
> EXPOSE 9989
>
> RUN apk update
> RUN apk add python3 bash busybox-extras w3m gcc python3-dev libffi-dev openssl-dev musl-dev postgresql-dev
> RUN mkdir /bbot
> COPY entrypoint.sh /root/
> RUN chmod a+x /root/entrypoint.sh
> RUN mkdir /root/.ssh && chmod og-rwx /root/.ssh/
> COPY bbot-gitea bbot-gitea.pub /root/.ssh/
> RUN chmod og-w /root/.ssh/bbot-gitea*
>
>
> RUN cd /bbot && \
> python3 -m venv sandbox && \
> source sandbox/bin/activate && \
> pip3 install 'buildbot[bundle]' && \
> pip3 install 'requests[security]' && \
> pip3 -v install buildbot_gitea && \
> pip3 install treq && \
> pip3 install psycopg2
> RUN apk del gcc python3-dev libffi-dev openssl-dev musl-dev
>
> RUN ls -la /root
> RUN cat /root/entrypoint.sh
>
> ENTRYPOINT [ "/root/entrypoint.sh" ]
>
> and the entrypoint does nothing special -- it is this,
>
> #!/bin/bash
>
> cd /bbot
>
> echo " BBOT MASTER ENTRYPOINT"
>
> source sandbox/bin/activate
> buildbot upgrade-master bbot-master
>
> # debug: check everything that was pip-installed:
> echo "\n\n=====\n"
> pip3 list
> echo "=====\n\n"
>
> if [ ! -f bbot-master/buildbot.tac ]; then
> buildbot create-master bbot-master
> fi
>
> buildbot start bbot-master
> tail -f /bbot/bbot-master/twistd.log
>
> and the `pip3 list` line, which runs on startup for debugging, shows that I have
>
> buildbot 2.7.0
> buildbot-console-view 2.7.0
> buildbot-gitea 1.2.0
> buildbot-grid-view 2.7.0
> buildbot-waterfall-view 2.7.0
> buildbot-worker 2.7.0
> buildbot-www 2.7.0
>
> So... What else can I do to continue debugging this?
> _______________________________________________
> users mailing list
> users at buildbot.net
> https://lists.buildbot.net/mailman/listinfo/users
More information about the users
mailing list