changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate lisp/lib/rdb/err.lisp

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
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
6
 (in-package :rdb)
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
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
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
14
 
99
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
15
 (define-condition rocksdb-error (rdb-error)
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
16
   ((db :initarg :db :reader rdb-error-db))
226
956fe7929a7c temps, db, etc
Richard Westhaver <ellis@rwest.io>
parents: 224
diff changeset
17
   (:documentation "Error signaled by RocksDB subsystem."))
99
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
18
 
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
19
 (defmethod print-object ((obj rdb-error) stream)
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
20
   (print-unreadable-object (obj stream :type t :identity t)
99
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
21
     (format stream "~A" (rdb-error-message obj))))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
22
 
99
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
23
 (define-condition open-db-error (rocksdb-error)
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
24
   ()
226
956fe7929a7c temps, db, etc
Richard Westhaver <ellis@rwest.io>
parents: 224
diff changeset
25
   (:documentation "Error signaled while opening a database."))
99
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
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
956fe7929a7c temps, db, etc
Richard Westhaver <ellis@rwest.io>
parents: 224
diff changeset
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
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
31
 (define-condition destroy-db-error (rocksdb-error)
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
32
   ()
226
956fe7929a7c temps, db, etc
Richard Westhaver <ellis@rwest.io>
parents: 224
diff changeset
33
   (:documentation "Error signaled while destroying a database."))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
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
956fe7929a7c temps, db, etc
Richard Westhaver <ellis@rwest.io>
parents: 224
diff changeset
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
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
55
 (define-condition cf-error (rocksdb-error)
226
956fe7929a7c temps, db, etc
Richard Westhaver <ellis@rwest.io>
parents: 224
diff changeset
56
   ((cf :initarg :cf :reader rdb-error-cf))
956fe7929a7c temps, db, etc
Richard Westhaver <ellis@rwest.io>
parents: 224
diff changeset
57
   (:documentation "Error signaled in the context of a Column Family."))
102
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
58
 
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
59
 (define-condition put-kv-error (rdb-error)
99
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
60
   ((kv :initarg :kv :reader rdb-error-kv))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
61
   (:documentation "Error signaled while processing a PUT-KV request"))
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
62
 
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
63
 (define-condition get-kv-error (rdb-error)
99
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
64
   ((key :initarg :key :reader key))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
65
   (:documentation "Error signaled while processing a GET-KV request"))
99
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
66
 
269
87f503c7a365 more rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 267
diff changeset
67
 (define-condition opt-handler-missing (warning rdb-error)
87f503c7a365 more rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 267
diff changeset
68
   ())
87f503c7a365 more rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 267
diff changeset
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
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
80
 (defun handle-errptr (errptr &optional errtyp params)
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
81
   "Handle ERRPTR, a ROCKSDB-ERRPTR type which is a pointer to NULL,
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
82
 indicating a success or a pointer to a C-STRING.
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
83
 
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
84
 ERRTYP if present must be a condition which sub-classes RDB-ERROR. If
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
85
 an error is detected, the resulting string from ERRPTR and the
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 93
diff changeset
86
 additional PARAMS will be used to signal a lisp error condition."
102
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
87
   ;; if NULL, return nil
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
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))))