MagicStack / MagicStack/asyncpg
Test failure in test_executemany_server_failure_during_writes
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 8.1k
- Forks
- 468
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
* **asyncpg version**: 0.29.0
* **PostgreSQL version**: 15.4
* **Do you use a PostgreSQL SaaS? If so, which? Can you reproduce
the issue with a local PostgreSQL install?**: N/A, building the [`python-asyncpg` package](https://src.fedoraproject.org/rpms/python-asyncpg) on Fedora Linux infrastructure
* **Python version**: 3.12.0
* **Platform**: Fedora Linux Rawhide, ~~`s390x` architecture (only!)~~
* **Do you use pgbouncer?**: No
* **Did you install asyncpg with pip?**: No, I am the maintainer of the distribution package.
* **If you built asyncpg locally, which version of Cython did you use?**: 0.29.35
* **Can the issue be reproduced under both asyncio and
[uvloop](https://github.com/magicstack/uvloop)?**: ~~**No**, only `asyncio`.~~ *yes*
This is new in 0.29.0. I don’t have any idea why it is happening.
~~I can’t reproduce this with `PYTHONASYNCIODEBUG=1`, nor can I reproduce it with `USE_UVLOOP=1`.~~ I have now seen this on `x86_64` with `asyncio` and `PYTHONASYNCIODEBUG=1`.
~~I don’t have interactive access to an `s390x` machine, but~~ I am happy to run experiments or test proposed fixes by submitting package test builds on Fedora infrastructure. For the time being, I plan to simply skip this test ~~on `s390x`~~.
```
=================================== FAILURES ===================================
________ TestExecuteMany.test_executemany_server_failure_during_writes _________
Traceback (most recent call last):
File "/usr/lib64/python3.12/unittest/case.py", line 58, in testPartExecutor
yield
File "/usr/lib64/python3.12/unittest/case.py", line 634, in run
self._callTestMethod(testMethod)
File "/usr/lib64/python3.12/unittest/case.py", line 589, in _callTestMethod
if method() is not None:
^^^^^^^^
File "/builddir/build/BUILDROOT/python-asyncpg-0.29.0-1.fc40.s390x/usr/lib64/python3.12/site-packages/asyncpg/_testbase/__init__.py", line 92, in wrapper
self.loop.run_until_complete(coro)
File "/usr/lib64/python3.12/asyncio/base_events.py", line 664, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/builddir/build/BUILD/asyncpg-0.29.0/tests/test_execute.py", line 215, in test_executemany_server_failure_during_writes
self.assertLess(pos, 128, 'should stop early')
File "/usr/lib64/python3.12/unittest/case.py", line 1257, in assertLess
self.fail(self._formatMessage(msg, standardMsg))
File "/usr/lib64/python3.12/unittest/case.py", line 715, in fail
raise self.failureException(msg)
AssertionError: 128 not less than 128 : should stop early
```
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit tests/test_execute.py, insbesondere mit TestExecuteMany.test_executemany_server_failure_during_writes rund um die fehlschlagende Assertion in Zeile 215. Reproduziere den Test mit Python 3.12, PostgreSQL 15.4 und asyncio und vergleiche die beobachtete Position von 128 mit dem erwarteten frühen Abbruch des Tests. Erledigt bedeutet, dass der Fehler verstanden ist und der Test ohne einen nicht gerechtfertigten plattformspezifischen Skip konsistent besteht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- postgresql, python
- Bereich
- backend, databases
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100