tests: two race tests share one boto3 client across threads and failed with TLSV1_ALERT_DECODE_ERROR

Aperta Adatta ai principianti
#894 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 4 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
76/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
aws, python, rust

Direzione di ricerca

Leggi il fixture di race in tests/test_update_item_creates_key.py e la configurazione dei worker in tests/test_transact_write_conflict.py, poi confrontali con la configurazione di un client per writer in tests/test_index_rows_track_base_item.py e con la correzione descritta in #392. Assegna a ogni writer in competizione un proprio client ed esegui i test interessati; il lavoro è completato quando entrambi i test di race passano senza che i thread writer condividano un pool di connessioni client.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

ci:stability

Two cassandra-pytest jobs failed with this error from the test client:

botocore.exceptions.SSLError: SSL validation failed for https://127.0.0.1:18443/ [SSL: TLSV1_ALERT_DECODE_ERROR] tlsv1 alert decode error
  • job 126933918802, fix/367-table-name-validation, 4 November 23:20 UTC: tests/test_transact_write_conflict.py::test_opposite_order_transactions_cancel_instead_of_failing, the test of #879
  • job 127366989897, fix/sigv4-scope-date-first, 5 November 16:25 UTC: four tests of tests/test_update_item_creates_key.py, at the setup of the race fixture

In both files, every writer thread uses one raw_client fixture object. The race fixture in test_update_item_creates_key.py starts 2 × WRITERS threads on one raw_client. The workers in test_transact_write_conflict.py share its raw_client in the same way.

#392 found this error when threads shared one client in test_rfc0003_concurrency.py. As #392 explains, two threads that interleave on one TLS connection corrupt its record stream, and the request fails with this error. #392 gave each thread its own client. test_index_rows_track_base_item.py also builds one client per racing writer, so that the writers share no connection pool.

These were 2 failures in 297 completed cassandra-pytest jobs between 3 November 00:00 UTC and 6 November 15:07 UTC. I have not reproduced them.

Lingua principale
Rust
Stelle
517
Fork
60
Merge medio
5g 3h
PR unite (30g)
79

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ExtendDB/extenddb

Tutte le issue di ExtendDB/extenddb

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.