| Previous | Next |
| ERROR_LOG_INVALID_RANGE | ERROR_LOG_READ_CONTEXT_INVALID |
ERROR_LOG_BLOCKS_EXHAUSTED
The marshalling area has no free log-block buffers
CreateLogMarshallingArea configures limits for write and read buffers. Read contexts consume at least one read block, and CLFS uses the marshalling context for record reads, appends, writes, and flushes. Exhausting these buffers is a client-side flow-control problem around a specific marshalling area; it is different from ERROR_LOG_FULL, where the physical log has no reclaimable log space.
Inspect outstanding read contexts, asynchronous operations, and the configured maximum read and write buffer counts. Every read sequence should eventually be terminated so CLFS can release system-allocated read-context resources. Likewise, an application that accumulates pending appends without allowing flush or completion can hold write buffers. Increase limits only after measuring concurrency and lifecycle handling: an unbounded buffer count can hide a leaked context while increasing memory use and changing flush behavior.
What to inspect
- Count live read contexts and verify TerminateReadLog is reached on success, error, and cancellation paths.
- Measure concurrent appends and asynchronous completions against cMaxWriteBuffers and cMaxReadBuffers.
- Distinguish marshalling-buffer exhaustion from physical log-space exhaustion before changing log size.
References
- Microsoft: CreateLogMarshallingArea, block buffers, and marshalling contexts
- Microsoft: ReadLogRecord and CLFS read context modes
- Microsoft: clfsw32 API reference
Looking for a different code? Search another status or error code.