tursodatabase/libsql

Recover client from server restarts when handling batons?

Open

#1,856 opened on Nov 29, 2024

View on GitHub
 (2 comments) (0 reactions) (0 assignees)C (490 forks)batch import
enhancementhelp wantedquestionremote protocol

Repository metrics

Stars
 (16,744 stars)
PR merge metrics
 (Avg merge 23h 19m) (1 merged PR in 30d)

Description

Currently, I think that when a client holds a server-issued baton and attempts to send it back after a server restart, the request fails with a BatonInvalid error. This error breaks the client's workflow and requires manual intervention.

If this turns out to be the case, let's fix that so thatif a BatonInvalid error occurs and no transaction is in progress, the client should:

  • Automatically restart the stream
  • Obtain a new baton from the server
  • Continue normal operation

Contributor guide