test_serialization failure on ppcl64el and s390x
- Dominant language
- Python
- Stars
- 107
- Forks
- 32
- PR merge metrics
- No merged PRs in 30d
Description
Hello,
Rebecca Palmer noticed out that test_serialization in partd version 1.2.0's tests occasionally fail on ppc64el and s390x . ( https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1005045 )
```
=================================== FAILURES
===================================
______________________________ test_serialization
______________________________
def test_serialization():
with partd_server(hostname='localhost') as (p, server):
p.append({'x': b'123'})
q = pickle.loads(pickle.dumps(p))
> assert q.get('x') == b'123'
E AssertionError: assert b'' == b'123'
E Full diff:
E - b'123'
E + b''
test_zmq.py:114: AssertionError
```
The full logs are at:
https://ci.debian.net/data/autopkgtest/testing/ppc64el/p/partd/18902384/log.gz
https://ci.debian.net/data/autopkgtest/testing/s390x/p/partd/16889914/log.gz
That code failure really looks like some kind of race condition.
We were wondering what to do about this test failure.
Stick a brief sleep in between the append and the get? block building on these architectures? Just ignore it?
**Environment**:
- Python version: 3.9.10
- Operating System: Debian testing
- Install method (conda, pip, source): Debian package version 1.2.0-1 CI tests.
Contributor guide
Research direction
Start with test_zmq.py at test_serialization and reproduce the failure on ppc64el or s390x using the Debian CI logs and the Python 3.9.10 environment described. Trace the partd_server append, pickle round trip, and get sequence to determine the intermittent cause; done means the test reliably passes on the affected architectures without masking the failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- databases, testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100