[users at bb.net] 0.9.0rc2 and multi-master
Neil Gilmore
ngilmore at grammatech.com
Fri Sep 2 16:58:41 UTC 2016
Hi everyone,
Getting multi-master to work has only gone so far.
I can set up a database and have masters talk to it just fine. And the
masters can mostly function correctly. I'm using mostly
master.cfg.sample instead of our own because I want something smaller. I
have 2 masters that are mostly the same except for various names, and
only 1 is running a UI.
I don't seem to be able to have them talk to crossbar. And there's not
many log messages giving me a clue as to what's going on. I suspect my
crossbar configuration. But the default configuration with a changed
realm and port doesn't seem to work, either.
My first attempt had this:
c['mq'] = {
'type' : 'wamp',
'router_url': 'ws://ws/buildbot',
'realm': 'buildbot',
'debug' : True,
'debug_websockets' : True,
'debug_lowlevel' : True,
}
Obviously incorrect, as there's no host:port in there. Using my
handwritten config.json on the crossbar side, here's what happens.
Crossbar starts, and since I'm not putting the log in a file, I can see
it on my terminal, and it looks fine enough. Then I start buildbot, and
the only entries I see that might be relevant are:
2016-09-02 12:34:50-0400 [-] Starting wamp with config: %r {'realm':
'buildbot', 'debug_lowlevel': True, 'router_url': 'ws://ws/buildbot',
'debug': True, 'debug_websockets': True, 'type': 'wamp'}
2016-09-02 12:34:50-0400 [-] Starting factory
<autobahn.twisted.websocket.WampWebSocketClientFactory object at
0x7fb21ffd3ed0>
2016-09-02 12:35:20-0400 [-] Stopping factory
<autobahn.twisted.websocket.WampWebSocketClientFactory object at
0x7fb21ffd3ed0>
and that's it. OK, so I put in the host:port into master.cfg:
c['mq'] = {
'type' : 'wamp',
'router_url': 'ws://127.0.0.1:8020/ws/buildbot',
'realm': 'buildbot',
'debug' : True,
'debug_websockets' : True,
'debug_lowlevel' : True,
}
and my config.json looks like the one in the crossbar defaults, except
for the transport, which looks like this:
"transports": [
{
"type": "websocket",
"endpoint": {
"type": "tcp",
"port": 8020
},
"url": "ws://ws/buildbot",
"auth": {
"anonymous": {
"type": "static",
"role": "public"
}
}
}
]
and try again. This time, I get a crossbar log entry:
2016-09-02T12:38:48-0400 [Router 31742] failing WebSocket opening
handshake ('port 8020 in HTTP Host header '127.0.0.1:8020' does not
match server listening port 80')
and on buildbot:
2016-09-02 12:38:48-0400 [-] Starting wamp with config: %r {'realm':
'buildbot' , 'debug_lowlevel': True, 'router_url':
'ws://127.0.0.1:8020/ws/buildbot', 'deb ug': True, 'debug_websockets':
True, 'type': 'wamp'}
2016-09-02 12:38:48-0400 [-] Starting factory
<autobahn.twisted.websocket.WampWebSocketClientFactory object at
0x7f89de379950>
2016-09-02 12:38:48-0400 [-] failing WebSocket opening handshake
('WebSocket connection upgrade failed (400 -
port8020inHTTPHostheader'127.0.0.1:8020'doesnotmatchserverlisteningport80)')
2016-09-02 12:38:48-0400 [-] Stopping factory
<autobahn.twisted.websocket.WampWebSocketClientFactory object at
0x7f89de379950>
Betterm I think. At least I get an error, and both sides agree. But why
is my crossbar listening on 80 when I told it 8020? OK, we'll try port
80 then...
(same mq, just change the port)
No messages from crossbar. From buildbot:
2016-09-02 12:42:07-0400 [-] Starting wamp with config: %r {'realm':
'buildbot', 'debug_lowlevel': True, 'router_url':
'ws://127.0.0.1:80/ws/buildbot', 'debug': True, 'debug_websockets':
True, 'type': 'wamp'}
2016-09-02 12:42:07-0400 [-] Starting factory
<autobahn.twisted.websocket.WampWebSocketClientFactory object at
0x7f33e87d7650>
2016-09-02 12:42:07-0400 [-] failing WebSocket opening handshake
('WebSocket connection upgrade failed (404 - NotFound)')
2016-09-02 12:42:07-0400 [-] Stopping factory
<autobahn.twisted.websocket.WampWebSocketClientFactory object at
0x7f33e87d7650>
So no connection there, either.
OK, we'll try the default config.json, and only change the port. It's
transports look like this:
"transports": [
{
"type": "universal",
"endpoint": {
"type": "tcp",
"port": 8020
},
"websocket": {
"ws": {
"type": "websocket"
}
}
}
]
We'll also have to change master.cfg to match urls:
c['mq'] = {
'type' : 'wamp',
'router_url': 'ws://127.0.0.1:8020/ws',
'realm': 'buildbot',
'debug' : True,
'debug_websockets' : True,
'debug_lowlevel' : True,
}
Crossbar starts fine. Buildbot excepts:
2016-09-02 12:52:46-0400 [-] Starting wamp with config: %r {'realm':
'buildbot', 'debug_lowlevel': True, 'router_url':
'ws://127.0.0.1:8020/ws', 'debug': True, 'debug_websockets': True,
'type': 'wamp'}
2016-09-02 12:52:46-0400 [-] Starting factory
<autobahn.twisted.websocket.WampWebSocketClientFactory object at
0x7fdd9d381890>
2016-09-02 12:52:46-0400 [-] Traceback (most recent call last):
File
"/leg0/ngilmore/abyss/lib/python2.7/site-packages/autobahn-0.16.0-py2.7.egg/autobahn/wamp/websocket.py",
line 60, in onOpen
self._session = self.factory._factory()
File
"/leg0/ngilmore/abyss/lib/python2.7/site-packages/autobahn-0.16.0-py2.7.egg/autobahn/twisted/wamp.py",
line 639, in create
cfg = ComponentConfig(self.realm, self.extra)
File
"/leg0/ngilmore/abyss/lib/python2.7/site-packages/autobahn-0.16.0-py2.7.egg/autobahn/wamp/types.py",
line 84, in __init__
assert(realm is None or type(realm) == six.text_type)
AssertionError
2016-09-02 12:52:46-0400 [-] Stopping factory
<autobahn.twisted.websocket.WampWebSocketClientFactory object at
0x7fdd9d381890>
Any idea where I'm going wrong?
Neil Gilmore
grammatech.com
More information about the users
mailing list