github.com/ooni/psiphon/tunnel-core@v0.0.0-20230105123940-fe12a24c96ee/oovendor/bolt/errors.go (about) 1 package bolt 2 3 import "errors" 4 5 // These errors can be returned when opening or calling methods on a DB. 6 var ( 7 // ErrDatabaseNotOpen is returned when a DB instance is accessed before it 8 // is opened or after it is closed. 9 ErrDatabaseNotOpen = errors.New("database not open") 10 11 // ErrDatabaseOpen is returned when opening a database that is 12 // already open. 13 ErrDatabaseOpen = errors.New("database already open") 14 15 // ErrInvalid is returned when both meta pages on a database are invalid. 16 // This typically occurs when a file is not a bolt database. 17 ErrInvalid = errors.New("invalid database") 18 19 // ErrVersionMismatch is returned when the data file was created with a 20 // different version of Bolt. 21 ErrVersionMismatch = errors.New("version mismatch") 22 23 // ErrChecksum is returned when either meta page checksum does not match. 24 ErrChecksum = errors.New("checksum error") 25 26 // ErrTimeout is returned when a database cannot obtain an exclusive lock 27 // on the data file after the timeout passed to Open(). 28 ErrTimeout = errors.New("timeout") 29 ) 30 31 // These errors can occur when beginning or committing a Tx. 32 var ( 33 // ErrTxNotWritable is returned when performing a write operation on a 34 // read-only transaction. 35 ErrTxNotWritable = errors.New("tx not writable") 36 37 // ErrTxClosed is returned when committing or rolling back a transaction 38 // that has already been committed or rolled back. 39 ErrTxClosed = errors.New("tx closed") 40 41 // ErrDatabaseReadOnly is returned when a mutating transaction is started on a 42 // read-only database. 43 ErrDatabaseReadOnly = errors.New("database is in read-only mode") 44 ) 45 46 // These errors can occur when putting or deleting a value or a bucket. 47 var ( 48 // ErrBucketNotFound is returned when trying to access a bucket that has 49 // not been created yet. 50 ErrBucketNotFound = errors.New("bucket not found") 51 52 // ErrBucketExists is returned when creating a bucket that already exists. 53 ErrBucketExists = errors.New("bucket already exists") 54 55 // ErrBucketNameRequired is returned when creating a bucket with a blank name. 56 ErrBucketNameRequired = errors.New("bucket name required") 57 58 // ErrKeyRequired is returned when inserting a zero-length key. 59 ErrKeyRequired = errors.New("key required") 60 61 // ErrKeyTooLarge is returned when inserting a key that is larger than MaxKeySize. 62 ErrKeyTooLarge = errors.New("key too large") 63 64 // ErrValueTooLarge is returned when inserting a value that is larger than MaxValueSize. 65 ErrValueTooLarge = errors.New("value too large") 66 67 // ErrIncompatibleValue is returned when trying create or delete a bucket 68 // on an existing non-bucket key or when trying to create or delete a 69 // non-bucket key on an existing bucket key. 70 ErrIncompatibleValue = errors.New("incompatible value") 71 ) 72 73 // [Psiphon] 74 // https://github.com/etcd-io/bbolt/commit/b3e98dcb3752e0a8d5db6503b80fe19e462fdb73 75 76 // MmapError represents an error resulting from a failed mmap call. Typically, 77 // this error means that no further database writes will be possible. The most 78 // common cause is insufficient disk space. 79 type MmapError string 80 81 func (e MmapError) Error() string { return string(e) }