clj-commons / clj-commons/durable-queue
Slabs can grow larger than max-queue-size
- Dominant language
- Clojure
- Stars
- 405
- Forks
- 30
- PR merge metrics
- No merged PRs in 30d
Description
In the put! function, slab! is called before queue!, writing the data to the slab before offering to the queue.
```clj
(if-let [val (locking q
(queue!
(vary-meta (slab!) assoc
::this this-ref
::queue-name q-name
::queue q
::fsync? fsync-take?)))]
```
The consequence is that the slab files can get larger than the max-queue-size, and upon application restart, exceptions get raised when the slabs are loaded and don't fit into the queue.
```clj
(IllegalArgumentException.
"'max-queue-size' insufficient to hold existing tasks."))
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.