hashicorp / hashicorp/consul

Consul in latest versions defaults to experimental WAL backend, despite docs saying boltdb is default

Open
#21,992 0 comments 5 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
30.1k
Forks
4.6k
Avg merge
2d 6h
Merged PRs (30d)
43

Description

#### Overview of the Issue

In consul 1.20.1 (maybe in other versions as well, we just upgraded from 1.14.8), consul defaults to experimental WAL backend even though docs say that it is experimental and default is boltdb.

#### Reproduction Steps

Create a server with default config for raft logstore, check data folder. It should have boltdb file but has wal file.

We can also see in code logic why that is https://github.com/hashicorp/consul/blob/beef7a7417a22f1dc7c436de531704fd206b0b4c/agent/consul/server.go#L1030-L1044

if default & boltdb file doesn't exist => WAL
if WAL & boltdb file doesn't exist => WAL
else use BoltDB

excerpt from the docs:
> [backend](https://developer.hashicorp.com/consul/docs/agent/config/config-files#raft_logstore_backend) Specifies which storage engine to use to persist logs. Valid options are boltdb or wal. Default is boltdb. The wal option specifies an experimental backend that should be used with caution. Refer to [Experimental WAL LogStore backend](https://developer.hashicorp.com/consul/docs/agent/wal-logstore) for more information.

So it's a bit confusing when WAL became the default and if it is still experimental

### Consul info for both Client and Server

we use a forked consul version, but this issue exists on non-forked version as described above.

### Operating system and Environment details

Linux

### Log Fragments

n/a

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.