mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-25 20:14:21 +01:00
Because we can abort a read_page completion, this means a page can be in the cache but be unloaded and unlocked. However, if we do not evict that page from the page cache, we will return an unloaded page later which will trigger assertions later on. This is worsened by the fact that page cache is not per `Statement`, so you can abort a completion in one Statement, and trigger some error in the next one if we don't evict the page in these circumstances. Also, to propagate IO errors we need to return the Error from IOCompletions on step. Closes #2785