hashicorp / hashicorp/consul

Initialization leads to Access Denied on Windows

Open
#22,079 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
Go
Stars
30.1k
Forks
4.6k
Avg merge
1d 18h
Merged PRs (30d)
39

Description

The fsync operations performed in the code referenced below always result in an access denied result when performed on a Windows OS.

https://github.com/hashicorp/raft-wal/blob/cc4505d4dd2ef9e4231aea3c7ec7851527e67f4d/metadb/metadb.go#L135-L145

A similar issue:
https://support.hashicorp.com/hc/en-us/articles/27722437245715-Consul-Snapshot-Not-Supported-by-Windows

Additional use of Sync on a directory:
https://github.com/hashicorp/raft-wal/blob/cc4505d4dd2ef9e4231aea3c7ec7851527e67f4d/fs/fs.go#L117-L127

After two restarts of the node, consul will run as expected.

Contributor guide

Open the contributing guide

Research direction

Start with the fsync operations in metadb/metadb.go at lines 135-145 and the directory Sync use in fs/fs.go at lines 117-127. Reproduce initialization on Windows and inspect how these operations produce access denied; done means initialization succeeds without the reported error and the node remains functional across restarts.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.