Skip to content

Conversation

@gabordozsa
Copy link
Collaborator

@gabordozsa gabordozsa commented Jan 20, 2026

Fixes issue issues #1813 and #1814

Add support for multi-routing-key listeners.

  • Extend tcpListener entity witth a multiAddressStrategy field
  • Add new entity type ListenerAddress to the management scheme
  • Add configure and delete management APIs to the ListenerAddress entity
  • Modify adaptor_listener and tcp_listener C files to use a service address list

@github-advanced-security
Copy link

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

@gabordozsa gabordozsa force-pushed the grabor_multikey_listener_1813 branch 2 times, most recently from 21a72ee to 809e2d7 Compare January 20, 2026 17:40
@ted-ross ted-ross self-requested a review January 20, 2026 17:50
@ted-ross
Copy link
Member

ted-ross commented Jan 20, 2026

Using the following config, the router crashes on shutdown.

router {
    mode: interior
    id: A
}

listener {
    host: 0.0.0.0
    port: amqp
}

tcpListener {
    name: choices
    port: 8080
    multiAddressStrategy: none
    address: choice-1
}

There is an assertion failure:

src/adaptors/adaptor_listener.c:126: _listener_free: Assertion 'DEQ_IS_EMPTY(li->addresses)' failed.

@gabordozsa
Copy link
Collaborator Author

Using the following config, the router crashes on shutdown.

router {
    mode: interior
    id: A
}

listener {
    host: 0.0.0.0
    port: amqp
}

tcpListener {
    name: choices
    port: 8080
    multiAddressStrategy: none
    address: choice-1
}

There is an assertion failure:

src/adaptors/adaptor_listener.c:126: _listener_free: Assertion 'DEQ_IS_EMPTY(li->addresses)' failed.

I think it is fixed now.

@gabordozsa gabordozsa self-assigned this Jan 22, 2026
Enhancement issue skupperproject#1813

Signed-off-by: Gabor Dozsa <gabor,dozsa@ibm.com>
@gabordozsa gabordozsa force-pushed the grabor_multikey_listener_1813 branch from 99206f8 to 016a679 Compare January 22, 2026 17:52
@gabordozsa gabordozsa marked this pull request as ready for review January 23, 2026 11:19
@gabordozsa
Copy link
Collaborator Author

gabordozsa commented Jan 23, 2026

The PR is ready for review now. I have run some basic tests it in my local development environment to create and delete ListenerAddresses with different priorities. New connections have picked a reachable service address with highest priority - as expected.

Follow up work items for the multi-address listeners:

  • Extend status information to include a list of reachable addresses
  • VANFLOW records
  • New system test for the priority failover strategy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants