Skip to content

Test ZMQ server lazy bind#23741

Draft
liuh-80 wants to merge 7 commits intosonic-net:masterfrom
liuh-80:dev/liuh/fix_dpu_restart
Draft

Test ZMQ server lazy bind#23741
liuh-80 wants to merge 7 commits intosonic-net:masterfrom
liuh-80:dev/liuh/fix_dpu_restart

Conversation

@liuh-80
Copy link
Copy Markdown
Contributor

@liuh-80 liuh-80 commented Aug 18, 2025

No description provided.

@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run Azure.sonic-buildimage

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run Azure.sonic-buildimage

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run Azure.sonic-buildimage

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run Azure.sonic-buildimage

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run Azure.sonic-buildimage

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run Azure.sonic-buildimage

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@liuh-80 liuh-80 changed the title Test ZMQ server lazzy bind Test ZMQ server lazy bind Aug 19, 2025
qiluo-msft pushed a commit to sonic-net/sonic-swss-common that referenced this pull request Aug 21, 2025
Add lazy binding support to ZmqServer.

Why I did it
When creating a ZmqServer followed by a ZmqProducerStateTable, there may be a time gap between the server starting to receive messages and the producer state table registering its handler.

This gap can lead to dropped messages. To avoid this, use lazy binding and invoke bind() only after the handler is registered.

How I did it
Add lazy binding support to ZmqServer.

Work item tracking
Microsoft ADO: 33995986
How to verify it
Pass all test cases.
Add new test case for lazy binding.

Pass all sonic-mgmt test with this PR:
sonic-net/sonic-buildimage#23741
mssonicbld added a commit to mssonicbld/sonic-swss-common.msft that referenced this pull request Aug 30, 2025
Add lazy binding support to ZmqServer.

#### Why I did it
When creating a ZmqServer followed by a ZmqProducerStateTable, there may be a time gap between the server starting to receive messages and the producer state table registering its handler.

This gap can lead to dropped messages. To avoid this, use lazy binding and invoke bind() only after the handler is registered.

#### How I did it
Add lazy binding support to ZmqServer.

##### Work item tracking
- Microsoft ADO: 33995986

#### How to verify it
Pass all test cases.
Add new test case for lazy binding.

Pass all sonic-mgmt test with this PR:
sonic-net/sonic-buildimage#23741

#### Which release branch to backport (provide reason below if selected)

<!--
- Note we only backport fixes to a release branch, *not* features!
- Please also provide a reason for the backporting below.
- e.g.
- [x] 202006
-->

- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106
- [ ] 202111

#### Description for the changelog
Add lazy binding support to ZmqServer.

#### Link to config_db schema for YANG module changes
<!--
Provide a link to config_db schema for the table for which YANG model
is defined
Link should point to correct section on https://github.com/Azure/SONiC/wiki/Configuration.
-->

#### A picture of a cute animal (not mandatory but encouraged)
mssonicbld added a commit to Azure/sonic-swss-common.msft that referenced this pull request Aug 30, 2025
Add lazy binding support to ZmqServer.

#### Why I did it
When creating a ZmqServer followed by a ZmqProducerStateTable, there may be a time gap between the server starting to receive messages and the producer state table registering its handler.

This gap can lead to dropped messages. To avoid this, use lazy binding and invoke bind() only after the handler is registered.

#### How I did it
Add lazy binding support to ZmqServer.

##### Work item tracking
- Microsoft ADO: 33995986

#### How to verify it
Pass all test cases.
Add new test case for lazy binding.

Pass all sonic-mgmt test with this PR:
sonic-net/sonic-buildimage#23741

#### Which release branch to backport (provide reason below if selected)

<!--
- Note we only backport fixes to a release branch, *not* features!
- Please also provide a reason for the backporting below.
- e.g.
- [x] 202006
-->

- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106
- [ ] 202111

#### Description for the changelog
Add lazy binding support to ZmqServer.

#### Link to config_db schema for YANG module changes
<!--
Provide a link to config_db schema for the table for which YANG model
is defined
Link should point to correct section on https://github.com/Azure/SONiC/wiki/Configuration.
-->

#### A picture of a cute animal (not mandatory but encouraged)
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