changelog shortlog graph tags branches changeset files revisions annotate raw help

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

changeset 624: 97dd03beda03
parent: 7ca2e98f0847
child: e49442cd6010
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 25 Aug 2024 20:28:57 -0400
permissions: -rw-r--r--
description: rocksdb updates in coordination with infra/scripts/org-graph-db-init.lisp
1 ;;; rdb/err.lisp --- RDB errors
2 
3 ;;
4 
5 ;;; Code:
6 (in-package :rdb)
7 
8 (eval-always
9  (deferror rdb-error ()
10  ((message :initarg :message
11  :reader rdb-error-message))
12  (:auto t)
13  (:documentation "Error signaled by the RDB system.")))
14 
15 (define-condition rocksdb-error (rdb-error)
16  ((db :initarg :db :reader rdb-error-db))
17  (:documentation "Error signaled by RocksDB subsystem."))
18 
19 (defmethod print-object ((obj rdb-error) stream)
20  (print-unreadable-object (obj stream :type t :identity t)
21  (format stream "~A" (rdb-error-message obj))))
22 
23 (define-condition open-db-error (rocksdb-error)
24  ()
25  (:documentation "Error signaled while opening a database."))
26 
27 (define-condition open-backup-engine-error (rocksdb-error)
28  ()
29  (:documentation "Error signaled while opening a backup engine."))
30 
31 (define-condition destroy-db-error (rocksdb-error)
32  ()
33  (:documentation "Error signaled while destroying a database."))
34 
35 (define-condition flush-db-error (rocksdb-error)
36  ()
37  (:documentation "Error signaled while flushing a database."))
38 
39 (define-condition ingest-db-error (rocksdb-error)
40  ()
41  (:documentation "Error signaled while ingesting a database."))
42 
43 (define-condition sst-writer-error (rocksdb-error)
44  ()
45  (:documentation "Error signaled while writing a SST file."))
46 
47 (define-condition repair-db-error (rocksdb-error)
48  ()
49  (:documentation "Error signaled while repairing a database."))
50 
51 (define-condition destroy-backup-engine-error (rocksdb-error)
52  ()
53  (:documentation "Error signaled while destroying a backup engine."))
54 
55 (define-condition cf-error (rocksdb-error)
56  ((cf :initarg :cf :reader rdb-error-cf))
57  (:documentation "Error signaled in the context of a Column Family."))
58 
59 (define-condition put-kv-error (rdb-error)
60  ((kv :initarg :kv :reader rdb-error-kv))
61  (:documentation "Error signaled while processing a PUT-KV request"))
62 
63 (define-condition get-kv-error (rdb-error)
64  ((key :initarg :key :reader key))
65  (:documentation "Error signaled while processing a GET-KV request"))
66 
67 (define-condition opt-handler-missing (warning rdb-error)
68  ())
69 
70 (define-condition db-missing (warning rdb-error)
71  ())
72 
73 (define-condition metadata-missing (warning rdb-error)
74  ())
75 
76 (define-condition invalid-propname (rdb-error)
77  ()
78  (:documentation "Error signaled when an invalid ROCKSDB-PROPERTY value is detected."))
79 
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."
87  ;; if NULL, return nil
88  (unless (null-alien errptr)
89  (apply #'signal (or errtyp 'rocksdb-error)
90  (nconc (list :message (sb-unix::strerror)) params))))