You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Fix memory leak issue in ConfigDBConnector. (sonic-net#655)
#### Why I did it
Fix memory leak issue in ConfigDBConnector:
[chassis] Too many open files error and unable to connect to redis socket error
sonic-net/sonic-buildimage#10870
The reason of this issue is DBConnector::pubsub() will return a pointer, and following code call this method but never release the returned pointer:
```
void ConfigDBConnector_Native::db_connect(string db_name, bool wait_for_init, bool retry_on)
{
m_db_name = db_name;
m_key_separator = m_table_name_separator = get_db_separator(db_name);
SonicV2Connector_Native::connect(m_db_name, retry_on);
if (wait_for_init)
{
auto& client = get_redis_client(m_db_name);
auto pubsub = client.pubsub(); <== this pointer not delete later.
```
Also change DBConnector::pubsub() to deprecated for none SWIG scenario.
#### How I did it
Change DBConnector::pubsub() to return a smart pointer.
#### How to verify it
Pass all test case.
Run following code in python and validate there is no epoll and socket leak:
```
import gc
from swsscommon import swsscommon
config_db = swsscommon.ConfigDBConnector_Native()
config_db.connect()
config_db.connect()
config_db.connect()
gc.collect()
```
#### 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
- [x] 202111
#### Description for the changelog
Fix epoll and socket resurce leak issue:
[chassis] Too many open files error and unable to connect to redis socket error
sonic-net/sonic-buildimage#10870
#### Link to config_db schema for YANG module changes
#### A picture of a cute animal (not mandatory but encouraged)
Co-authored-by: liuh-80 <azureuser@liuh-dev-vm-02.5fg3zjdzj2xezlx1yazx5oxkzd.hx.internal.cloudapp.net>
* Transfer organization from Azure to sonic-net (sonic-net#656)
Transfer organization from Azure to sonic-net
* Add docker-mux related table names (sonic-net#627)
This PR is to add table name definitions for database entries used by docker mux processes.
Sign-off: Jing Zhang zhangjing@microsoft.com
* Add libzmq dependency
* Add test logs
* Add libzmq3-dev dependency
* Add libboost-serialization and uuid-dev dependencies
* Add boost and uuid
* Add installation before building docker
Co-authored-by: Hua Liu <58683130+liuh-80@users.noreply.github.com>
Co-authored-by: liuh-80 <azureuser@liuh-dev-vm-02.5fg3zjdzj2xezlx1yazx5oxkzd.hx.internal.cloudapp.net>
Co-authored-by: Liu Shilong <shilongliu@microsoft.com>
Co-authored-by: Jing Zhang <zjsw1206@gmail.com>
Co-authored-by: Ubuntu <zain@zb-dev-vm.022x1jpnpm4u1iy2d325acts3c.yx.internal.cloudapp.net>
0 commit comments