[ 
https://issues.apache.org/jira/browse/DISPATCH-1765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17186548#comment-17186548
 ] 

Ken Giusti commented on DISPATCH-1765:
--------------------------------------

Hi Robbie,

Yes, assuming the format of the version string will be a simple semantic 
version was not one of my proudest moments.

 

Here's the use case: we added a new feature in this release that allows a 
router to proactively create new outgoing links to a peer router as needed.   
Routers running previous releases do not handle the creation of additional 
links, so we needed some way of informing the sending router that its peer 
does/does not support accepting new inter-router links.

This new functionality is not a hard requirement - if a router detects that its 
peer does not have this new functionality it simply avoids opening extra links. 
 This was the reason we checked the peer router's software version.

That said we'd like the option of using this feature with non-router peers 
should a use case arise.  Yet an additional reason to avoid a version check.  
Seemed like the offered/desired capability exchange in the Open performative 
was a better approach.

So as you pointed out the correct way of implementing this would be to put the 
capability in both the desired and offered fields in the Open frame.   Previous 
releases of the router code never checked these fields so there's no risk in 
that approach.

Would you agree that having the router set these capabilities when connecting 
to non-router endpoints should be safe as well, as a generic endpoint should 
ignore offered/desired capabilities it does not recognize?    I'm thinking of 
setting the capability regardless of what kind of peer the router is connected 
to in order to allow any endpoint the option of accepting additional links if 
desired.

  

 

> Router version parsing is broken
> --------------------------------
>
>                 Key: DISPATCH-1765
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1765
>             Project: Qpid Dispatch
>          Issue Type: Bug
>    Affects Versions: 1.13.0
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>            Priority: Major
>             Fix For: 1.14.0
>
>
> The version string advertised by the router in the Open performative may be 
> parsed incorrectly if a non-semantic format is used (e.g. a git commit sha).
> Currently the router uses the router version of its peer in order to 
> determine if the peer supports certain features like streaming links.
> Two changes proposed to solve this:
> 1) do not attempt to parse the version string arriving in the Open 
> performative.  Treat it as opaque ascii data.
> 2) Add router-defined capabilities and advertise them in the 
> offered-capabilities field of the Open performative.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to