changeset 309: | 94d358919982 |
parent: | e2e5c4831389 |
child: | 7ca2e98f0847 |
author: | Richard Westhaver <ellis@rwest.io> |
date: | Wed, 08 May 2024 00:13:43 -0400 |
permissions: | -rw-r--r-- |
description: | refactor rust, fixing cli issues and rdb error handling |
267
f3d814fb136a
db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents:
226
diff
changeset
|
1 | ;;; rdb/err.lisp --- RDB errors |
f3d814fb136a
db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents:
226
diff
changeset
|
2 | |
f3d814fb136a
db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents:
226
diff
changeset
|
3 | ;; |
f3d814fb136a
db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents:
226
diff
changeset
|
4 | |
f3d814fb136a
db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents:
226
diff
changeset
|
5 | ;;; Code: |
93 | 6 | (in-package :rdb) |
7 | ||
274
5f782d361e08
threads and db tweaks. fixed a tricky macro error caused by string-case, dat/html now works.
Richard Westhaver <ellis@rwest.io>
parents:
273
diff
changeset
|
8 | (eval-always |
5f782d361e08
threads and db tweaks. fixed a tricky macro error caused by string-case, dat/html now works.
Richard Westhaver <ellis@rwest.io>
parents:
273
diff
changeset
|
9 | (deferror rdb-error () |
5f782d361e08
threads and db tweaks. fixed a tricky macro error caused by string-case, dat/html now works.
Richard Westhaver <ellis@rwest.io>
parents:
273
diff
changeset
|
10 | ((message :initarg :message |
5f782d361e08
threads and db tweaks. fixed a tricky macro error caused by string-case, dat/html now works.
Richard Westhaver <ellis@rwest.io>
parents:
273
diff
changeset
|
11 | :reader rdb-error-message)) |
5f782d361e08
threads and db tweaks. fixed a tricky macro error caused by string-case, dat/html now works.
Richard Westhaver <ellis@rwest.io>
parents:
273
diff
changeset
|
12 | (:auto t) |
5f782d361e08
threads and db tweaks. fixed a tricky macro error caused by string-case, dat/html now works.
Richard Westhaver <ellis@rwest.io>
parents:
273
diff
changeset
|
13 | (:documentation "Error signaled by the RDB system."))) |
93 | 14 | |
99 | 15 | (define-condition rocksdb-error (rdb-error) |
16 | ((db :initarg :db :reader rdb-error-db)) |
|
226 | 17 | (:documentation "Error signaled by RocksDB subsystem.")) |
99 | 18 | |
93 | 19 | (defmethod print-object ((obj rdb-error) stream) |
20 | (print-unreadable-object (obj stream :type t :identity t) |
|
99 | 21 | (format stream "~A" (rdb-error-message obj)))) |
93 | 22 | |
99 | 23 | (define-condition open-db-error (rocksdb-error) |
24 | () |
|
226 | 25 | (:documentation "Error signaled while opening a database.")) |
99 | 26 | |
113
afcb1f02bb66
removed obj/uri. may add back new impl later. new file obj/db.lisp and RDB stuff - (sst)
ellis <ellis@rwest.io>
parents:
112
diff
changeset
|
27 | (define-condition open-backup-engine-error (rocksdb-error) |
afcb1f02bb66
removed obj/uri. may add back new impl later. new file obj/db.lisp and RDB stuff - (sst)
ellis <ellis@rwest.io>
parents:
112
diff
changeset
|
28 | () |
226 | 29 | (:documentation "Error signaled while opening a backup engine.")) |
113
afcb1f02bb66
removed obj/uri. may add back new impl later. new file obj/db.lisp and RDB stuff - (sst)
ellis <ellis@rwest.io>
parents:
112
diff
changeset
|
30 | |
99 | 31 | (define-condition destroy-db-error (rocksdb-error) |
32 | () |
|
226 | 33 | (:documentation "Error signaled while destroying a database.")) |
93 | 34 | |
272
0a5e37693fdf
db protocol stuff, prep for tao, tests, with-temp-db
Richard Westhaver <ellis@rwest.io>
parents:
271
diff
changeset
|
35 | (define-condition flush-db-error (rocksdb-error) |
0a5e37693fdf
db protocol stuff, prep for tao, tests, with-temp-db
Richard Westhaver <ellis@rwest.io>
parents:
271
diff
changeset
|
36 | () |
0a5e37693fdf
db protocol stuff, prep for tao, tests, with-temp-db
Richard Westhaver <ellis@rwest.io>
parents:
271
diff
changeset
|
37 | (:documentation "Error signaled while flushing a database.")) |
0a5e37693fdf
db protocol stuff, prep for tao, tests, with-temp-db
Richard Westhaver <ellis@rwest.io>
parents:
271
diff
changeset
|
38 | |
292
00d1c8afcdbb
mostly done with std refactor, added sst-file-writer to rdb
Richard Westhaver <ellis@rwest.io>
parents:
274
diff
changeset
|
39 | (define-condition ingest-db-error (rocksdb-error) |
00d1c8afcdbb
mostly done with std refactor, added sst-file-writer to rdb
Richard Westhaver <ellis@rwest.io>
parents:
274
diff
changeset
|
40 | () |
293
e2e5c4831389
std fixes and rdb with-sst
Richard Westhaver <ellis@rwest.io>
parents:
292
diff
changeset
|
41 | (:documentation "Error signaled while ingesting a database.")) |
e2e5c4831389
std fixes and rdb with-sst
Richard Westhaver <ellis@rwest.io>
parents:
292
diff
changeset
|
42 | |
e2e5c4831389
std fixes and rdb with-sst
Richard Westhaver <ellis@rwest.io>
parents:
292
diff
changeset
|
43 | (define-condition sst-writer-error (rocksdb-error) |
e2e5c4831389
std fixes and rdb with-sst
Richard Westhaver <ellis@rwest.io>
parents:
292
diff
changeset
|
44 | () |
e2e5c4831389
std fixes and rdb with-sst
Richard Westhaver <ellis@rwest.io>
parents:
292
diff
changeset
|
45 | (:documentation "Error signaled while writing a SST file.")) |
292
00d1c8afcdbb
mostly done with std refactor, added sst-file-writer to rdb
Richard Westhaver <ellis@rwest.io>
parents:
274
diff
changeset
|
46 | |
272
0a5e37693fdf
db protocol stuff, prep for tao, tests, with-temp-db
Richard Westhaver <ellis@rwest.io>
parents:
271
diff
changeset
|
47 | (define-condition repair-db-error (rocksdb-error) |
0a5e37693fdf
db protocol stuff, prep for tao, tests, with-temp-db
Richard Westhaver <ellis@rwest.io>
parents:
271
diff
changeset
|
48 | () |
0a5e37693fdf
db protocol stuff, prep for tao, tests, with-temp-db
Richard Westhaver <ellis@rwest.io>
parents:
271
diff
changeset
|
49 | (:documentation "Error signaled while repairing a database.")) |
0a5e37693fdf
db protocol stuff, prep for tao, tests, with-temp-db
Richard Westhaver <ellis@rwest.io>
parents:
271
diff
changeset
|
50 | |
113
afcb1f02bb66
removed obj/uri. may add back new impl later. new file obj/db.lisp and RDB stuff - (sst)
ellis <ellis@rwest.io>
parents:
112
diff
changeset
|
51 | (define-condition destroy-backup-engine-error (rocksdb-error) |
afcb1f02bb66
removed obj/uri. may add back new impl later. new file obj/db.lisp and RDB stuff - (sst)
ellis <ellis@rwest.io>
parents:
112
diff
changeset
|
52 | () |
226 | 53 | (:documentation "Error signaled while destroying a backup engine.")) |
113
afcb1f02bb66
removed obj/uri. may add back new impl later. new file obj/db.lisp and RDB stuff - (sst)
ellis <ellis@rwest.io>
parents:
112
diff
changeset
|
54 | |
102 | 55 | (define-condition cf-error (rocksdb-error) |
226 | 56 | ((cf :initarg :cf :reader rdb-error-cf)) |
57 | (:documentation "Error signaled in the context of a Column Family.")) |
|
102 | 58 | |
93 | 59 | (define-condition put-kv-error (rdb-error) |
99 | 60 | ((kv :initarg :kv :reader rdb-error-kv)) |
93 | 61 | (:documentation "Error signaled while processing a PUT-KV request")) |
62 | ||
63 | (define-condition get-kv-error (rdb-error) |
|
99 | 64 | ((key :initarg :key :reader key)) |
93 | 65 | (:documentation "Error signaled while processing a GET-KV request")) |
99 | 66 | |
269 | 67 | (define-condition opt-handler-missing (warning rdb-error) |
68 | ()) |
|
69 | ||
273
6d56c4950fa2
rocksdb iter,metadata,and more
Richard Westhaver <ellis@rwest.io>
parents:
272
diff
changeset
|
70 | (define-condition db-missing (warning rdb-error) |
6d56c4950fa2
rocksdb iter,metadata,and more
Richard Westhaver <ellis@rwest.io>
parents:
272
diff
changeset
|
71 | ()) |
6d56c4950fa2
rocksdb iter,metadata,and more
Richard Westhaver <ellis@rwest.io>
parents:
272
diff
changeset
|
72 | |
6d56c4950fa2
rocksdb iter,metadata,and more
Richard Westhaver <ellis@rwest.io>
parents:
272
diff
changeset
|
73 | (define-condition metadata-missing (warning rdb-error) |
6d56c4950fa2
rocksdb iter,metadata,and more
Richard Westhaver <ellis@rwest.io>
parents:
272
diff
changeset
|
74 | ()) |
6d56c4950fa2
rocksdb iter,metadata,and more
Richard Westhaver <ellis@rwest.io>
parents:
272
diff
changeset
|
75 | |
271
4a1a21ff46ee
metadata,props,merge-ops
Richard Westhaver <ellis@rwest.io>
parents:
269
diff
changeset
|
76 | (define-condition invalid-propname (rdb-error) |
4a1a21ff46ee
metadata,props,merge-ops
Richard Westhaver <ellis@rwest.io>
parents:
269
diff
changeset
|
77 | () |
4a1a21ff46ee
metadata,props,merge-ops
Richard Westhaver <ellis@rwest.io>
parents:
269
diff
changeset
|
78 | (:documentation "Error signaled when an invalid ROCKSDB-PROPERTY value is detected.")) |
4a1a21ff46ee
metadata,props,merge-ops
Richard Westhaver <ellis@rwest.io>
parents:
269
diff
changeset
|
79 | |
99 | 80 | (defun handle-errptr (errptr &optional errtyp params) |
81 | "Handle ERRPTR, a ROCKSDB-ERRPTR type which is a pointer to NULL, |
|
82 | indicating a success or a pointer to a C-STRING. |
|
83 | ||
84 | ERRTYP if present must be a condition which sub-classes RDB-ERROR. If |
|
85 | an error is detected, the resulting string from ERRPTR and the |
|
86 | additional PARAMS will be used to signal a lisp error condition." |
|
102 | 87 | ;; if NULL, return nil |
88 | (unless (null-alien errptr) |
|
309
94d358919982
refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents:
293
diff
changeset
|
89 | (apply #'signal (or errtyp 'rocksdb-error) |
94d358919982
refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents:
293
diff
changeset
|
90 | (nconc (list :message (sb-unix::strerror)) params)))) |