On 22.06.2015 05:35, Marius Vollmer wrote:
Stef Walter stefw@redhat.com writes:
On 18.06.2015 03:17, Marius Vollmer wrote:
Once we have feature negotiation, I think we should not ignore unknown messages anymore. It is better to know whether or not your peer will understand a specific message and adapt to it.
The entire protocol is based around ignoring stuff it doesn't know about. This starts with fields in JSON open messages ... new control messages and so on.
Yes, I agree. 'Crashing' because of unknown messages is not useful in production. (It might help during development, maybe.)
<snip>
We talked about this further....
The plan for Cockpit has always been that by and large a compatible bridge and javascript code run together. You can see that in the way we componentize, in the way we load the code from the destination system, etc.
This relieves most of the complexity of protocol feature detection and negotiation from most of the code.
The exception to this is dashboard code. The "capabilities" logic in cockpit-bridge was meant to help with these few corner cases.
But ... it's buggy. Lets treat this as bugs, update Cockpit in the places where this buggy code exists, and move on.
We don't need to add further layers of complexity because we encountered these bugs. We're still in early stages of making this all work, so bugs aren't totally unexpected. Of course, it's important to double check that they're actually fixed this time around.
Stef