The Racket repository
![]() The SQLITE_READONLY_ROLLBACK error is supposed to mean that a crash occurred and a hot journal exists that needs to be replayed (but can't, because the current connection is read-only). In practice, it seems that the error can happen even if there has been no crash. In that case, retrying in the same was as other transient errors allows the process to continue. A possible reason for the spurious error: In the implementation of SQLite, comments in hasHotJournal() mention the possibility of false positives (ticket #3883) and how the false positive will be handled in the playback mechanism after obtaining an exclusive lock. The check for a read-only connection after hasHotJournal() is called, however, happens before that lock is acquired. So, it seems like the race condition could trigger a false SQLITE_READONLY_ROLLBACK error. |
||
---|---|---|
pkgs | ||
racket | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
appveyor.yml | ||
INSTALL.txt | ||
Makefile | ||
README.txt |
This is the source code for the main Racket distribution. See "INSTALL.txt" for information on building Racket. License ------- Racket Copyright (c) 2010-2014 PLT Design Inc. Racket is distributed under the GNU Lesser General Public License (LGPL). This implies that you may link Racket into proprietary applications, provided you follow the rules stated in the LGPL. You can also modify Racket; if you distribute a modified version, you must distribute it under the terms of the LGPL, which in particular states that you must release the source code for the modified software. See racket/src/COPYING_LESSER.txt for more information.