Skip to content

Commit

Permalink
Release 0.12: Retry EBUSY in guest agent
Browse files Browse the repository at this point in the history
  • Loading branch information
xolox committed Dec 5, 2019
1 parent 2163f77 commit a6ec9d1
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 5 deletions.
17 changes: 17 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,23 @@ to `semantic versioning`_.
.. _Keep a Changelog: http://keepachangelog.com/
.. _semantic versioning: http://semver.org/

`Release 0.12`_ (2019-12-05)
----------------------------

Retry character device access in guest agent when ``EBUSY`` error is reported.

At my employer we operate 200+ virtual servers that have Negotiator installed
and in recent months we've started building more and more monitoring on top of
Negotiator, resulting in hundreds of invocations per day. This is when I
started seeing intermittent errors like the following::

IOError: [Errno 16] Device or resource busy: '/dev/vport2p2'

The new retry on ``EBUSY`` behavior is intended to minimize occurrences of such
race conditions.

.. _Release 0.12: https://github.com/xolox/python-negotiator/compare/0.11...0.12

`Release 0.11`_ (2019-10-11)
----------------------------

Expand Down
2 changes: 1 addition & 1 deletion common/negotiator_common/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
from negotiator_common.config import BUILTIN_COMMANDS_DIRECTORY, USER_COMMANDS_DIRECTORY

# Semi-standard module versioning.
__version__ = '0.11'
__version__ = '0.12'

# Initialize a logger for this module.
logger = logging.getLogger(__name__)
Expand Down
2 changes: 1 addition & 1 deletion guest/negotiator_guest/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
from negotiator_common.utils import GracefulShutdown

# Semi-standard module versioning.
__version__ = '0.11'
__version__ = '0.12'

# Initialize a logger for this module.
logger = logging.getLogger(__name__)
Expand Down
2 changes: 1 addition & 1 deletion guest/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
]),
install_requires=[
'coloredlogs >= 5.0',
'negotiator-common >= 0.11',
'negotiator-common >= 0.12',
],
classifiers=[
'Development Status :: 4 - Beta',
Expand Down
2 changes: 1 addition & 1 deletion host/negotiator_host/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
from executor import ExternalCommandFailed, execute

# Semi-standard module versioning.
__version__ = '0.11'
__version__ = '0.12'

# Initialize a logger for this module.
logger = logging.getLogger(__name__)
Expand Down
2 changes: 1 addition & 1 deletion host/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
]),
install_requires=[
'coloredlogs >= 5.0',
'negotiator-common >= 0.11',
'negotiator-common >= 0.12',
],
classifiers=[
'Development Status :: 4 - Beta',
Expand Down

0 comments on commit a6ec9d1

Please sign in to comment.