Skip to content

Commit

Permalink
plug daemon memory leak (#77)
Browse files Browse the repository at this point in the history
* Update _protocol.py

* Update CHANGELOG.md

* bump version
  • Loading branch information
ddkohler authored Nov 10, 2023
1 parent 2735e4e commit 39733a9
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 4 deletions.
8 changes: 7 additions & 1 deletion yaqd-core/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).

## [Unreleased]

## [2023.11.0]

### Fixed
- Fixed memory leak in daemon server that scaled with number of connections

## [2023.6.0]

### Added
Expand Down Expand Up @@ -337,7 +342,8 @@ There are no actual code changes, this release is to update the release pipeline
- Generic Client
- Continuous hardware base daemon

[Unreleased]: https://github.com/yaq-project/yaq-python/compare/yaqd-core-2023.6.0...main
[Unreleased]: https://github.com/yaq-project/yaq-python/compare/yaqd-core-2023.11.0...main
[2023.11.0]: https://github.com/yaq-project/yaq-python/compare/yaqd-core-2023.6.0..2023.11.0
[2023.6.0]: https://github.com/yaq-project/yaq-python/compare/yaqd-core-2023.2.0...2023.6.0
[2023.2.0]: https://github.com/yaq-project/yaq-python/compare/yaqd-core-2022.8.0...2023.2.0
[2022.8.0]: https://github.com/yaq-project/yaq-python/compare/yaqd-core-2022.7.0...2022.8.0
Expand Down
2 changes: 1 addition & 1 deletion yaqd-core/yaqd_core/__version__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

__avro_version__ = "1.9.2"

__version__ = "2023.6.0"
__version__ = "2023.11.0"

try:
__branch__ = (
Expand Down
4 changes: 2 additions & 2 deletions yaqd-core/yaqd_core/_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ def __init__(self, daemon, *args, **kwargs):
def connection_lost(self, exc):
peername = self.transport.get_extra_info("peername")
self.logger.info(f"Connection lost from {peername} to {self._daemon.name}")
self.task.cancel()
self._daemon._connection_lost(peername)

def connection_made(self, transport):
Expand All @@ -27,8 +28,7 @@ def connection_made(self, transport):
self.transport = transport
self.unpacker = avrorpc.Unpacker(self._avro_protocol)
self._daemon._connection_made(peername)
task = asyncio.get_event_loop().create_task(self.process_requests())
self._daemon._tasks.append(task)
self.task = asyncio.get_event_loop().create_task(self.process_requests())

def data_received(self, data):
"""Process an incomming request."""
Expand Down

0 comments on commit 39733a9

Please sign in to comment.