- Sep 21, 2020
-
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
- Sep 18, 2020
-
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
- Sep 17, 2020
-
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
It was passing but only after ~57 seconds because the busy_timeout setting in the test definition was being applied to a different connection than was being used by the implementation. With this change we hook into the connection function and apply the shorter busy_timeout after the normal setup work is done but before handing the connection off to application code.
-
- Sep 11, 2020
-
-
Jean-Paul Calderone authored
Have fewer SQLite3 "busy" errors
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
Handle exceptions during SQLite3 schema initialization and close the connection if necessary
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
Speed up the blinded token fingerprinting function
-
- Sep 10, 2020
-
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
It seems to be faster to hash one huge string than many smaller ones that total to the same length. Also by only showing one final hash we remove O(N) show calls. The old and new fingerprints are not compatible but I haven't deployed this in production anywhere yet so that doesn't bother me. Had I, we'd need some kind of versioning scheme for fingerprint computation I suppose.
-
- Jun 03, 2020
-
-
Jean-Paul Calderone authored
Delay redemption response if it would be a "not paid" error Internally try repeatedly to try to be able to return a success response.
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
I should really learn how to do some real logging...
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
- May 30, 2020
-
-
Jean-Paul Calderone authored
Fix intermittent "Database is locked" errors
-
- May 29, 2020
-
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
The default busy timeout is 0 and in the default configuration read-blocks-write. Thus by default it is extremely easy for concurrent requests to the server to block each other. So easy I can reproduce it with about 100% fidelity in trivial local testing. The transactions are all short lived, though, so re-attempting the lock acquisition for for up to a second dramatically reduces the failure rate. On a busy enough server it's conceivable a request might have to wait a full second behind other requests to get access to the database. In this case the request will fail with the same "database is locked" error. When that time comes, it is probably worth just provisioning a faster server. Or we could explore WAL mode where read *doesn't* block write (though you can still only have one writer and our API is pretty write heavy).
-
Jean-Paul Calderone authored
It's probably not strictly necessary but it's sort of nice.
-
- Apr 15, 2020
-
-
Jean-Paul Calderone authored
Some minor cleanups, mostly docs/comments
-
Jean-Paul Calderone authored
The backend logic to make different counter values distinct during redemption
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
Also a little more frontend to handle possible failure modes
-
Jean-Paul Calderone authored
Accept a counter value in redemption request This is a step towards being able to scale up the number of tokens issued.
-
Jean-Paul Calderone authored
-