pytest-dev / pytest-dev/pytest-xdist

Node down when number of workers are increased.

Open
#251 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

needs information
Dominant language
Python
Stars
1.9k
Forks
288
Avg merge
9h 30m
Merged PRs (30d)
2

Description

When given this ini file the test suite executes correctly
[pytest]
addopts = -n 5 --dist load --boxed --timeout=90 -v --durations=32 --lf
norecursedirs = ui zetc gracefulShutdown

gw0 = dialplan conf/AgentLogin
gw1 = conf/DN
gw2 = dm/AdvancedSearch dm/Bulk dm/CME dm/IVR dm/Profile
gw3 = voicemail conf/AgentGroup conf/System monitoring tserv
gw4 = conf/Person conf/Place dm/Device dm/Features dm/FirmwareUpgrade

When number of workers are increased to 9. The test suite fails

[pytest]
addopts = -n 9 --dist load --boxed --timeout=90 -v --durations=32 --lf
norecursedirs = ui zetc gracefulShutdown

gw0 = dialplan monitoring
gw1 = voicemail dm/Profile
gw2 = conf/AgentLogin dm/Device
gw3 = conf/DN dm/Bulk
gw4 = conf/Person dm/CME
gw5 = conf/Place dm/Features
gw6 = conf/AgentGroup dm/IVR
gw7 = conf/System dm/FirmwareUpgrade
gw8 = dm/AdvancedSearch tserv

it fails with the following error

[gw8] node down: Traceback (most recent call last):
File "/var/lib/jenkins/jobs/fs-integration-test-standalone/workspace/env27/lib/python2.7/site-packages/execnet/gateway_base.py", line 816, in _local_receive
callback(data) # even if channel may be already closed
File "/var/lib/jenkins/jobs/fs-integration-test-standalone/workspace/env27/src/pytest-xdist/xdist/slavemanage.py", line 316, in process_from_remote
self.config.pluginmanager.notify_exception(excinfo)
AttributeError: 'PytestPluginManager' object has no attribute 'notify_exception'

I have searched but couldn't find the possible reasons for the error.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with the two pytest configurations, then inspect xdist/slavemanage.py around line 316 and execnet/gateway_base.py around line 816. Trace why PytestPluginManager lacks notify_exception when nine workers are used; done means the nine-worker suite no longer reports the gw8 node-down error.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
distributed-systems, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.