v3.32.4: rebuild the link on card insertion (the first attempt)
release / release (push) Has been cancelled
release / release (push) Has been cancelled
v3.32.2 fixed the endless re-arm, but on Windows the first attempt still failed on the old link (seen in the confirmation log: the "self._con.connect()" traceback) and only the retry recovered - a failed init, a 2-4 s delay and a traceback in the log. The monitor's insert path now marks the transport stale under _CARD_LOCK, so the first equip attempt rebuilds the PC/SC link. It also covers a link created at a cardless startup (never connected). The rebuild still happens in the equip worker, never in the pyscard monitor thread, and _ensure_transport releases the old link first. Docs: the READMEs' troubleshooting bullet. Tests: an insertion marks the transport for the rebuild. 1014 Python + 953 frontend green; simple-v462.
This commit is contained in:
@@ -799,7 +799,7 @@ its MSVC build chain) is not pulled in.
|
||||
- **"Failed to establish context: Access denied"** — `pcscd` isn't running or the user lacks permission: `sudo systemctl enable --now pcscd && sudo usermod -a -G pcscd $USER`.
|
||||
- **"device file /dev/ttyUSB0 does not exist"** — no serial reader; connect a USB reader or pass `-d` explicitly. The server still starts without a reader.
|
||||
- **"Service not available" (0x8010001D) / reader gone after a `pcscd` restart** — the server recovers by itself: a watchdog revives pyscard's presence monitor and the next equip (automatic after re-insertion, or the **Equip** button) recreates the PC/SC transport (releasing the old link first). No server restart needed.
|
||||
- **"Card was removed" errors / auto-equip fails after a card swap** — the auto-equip retries up to 3 times, and **every failed attempt rebuilds the PC/SC transport** before the next one: after a card swap on Windows the old link can stay unable to connect, which used to fail every retry and re-arm forever. The swallowed init error (with its traceback) is now printed as `AUTO-EQUIP: init output:`, and a card that is present but produced no card is a failure, not a silent "card gone". The watchdog re-arms with a doubling delay (5 s up to 60 s) while a card is present; a removed card clears the card state completely, so handlers answer "no card" instead of transmitting over the dead card.
|
||||
- **"Card was removed" errors / auto-equip fails after a card swap** — a card insertion marks the PC/SC link for a rebuild (so the **first** attempt already uses a fresh link — on Windows the old one cannot connect after a swap), the auto-equip retries up to 3 times, and **every failed attempt rebuilds the transport** before the next one. The swallowed init error (with its traceback) is now printed as `AUTO-EQUIP: init output:`, and a card that is present but produced no card is a failure, not a silent "card gone". The watchdog re-arms with a doubling delay (5 s up to 60 s) while a card is present; a removed card clears the card state completely, so handlers answer "no card" instead of transmitting over the dead card.
|
||||
|
||||
### API reference
|
||||
|
||||
|
||||
Reference in New Issue
Block a user