OpenRiak / OpenRiak/riak

ttaaefs_peerip causes silent node failure when set with an FQDN

Open
#12 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
54
Forks
8
PR merge metrics
No merged PRs in 30d

Description

Discovered when trying to set up both realtime and fullsync NextGenRepl between 2 fully functional clusters of identical node count where all nodes were running KV 3.2.4. As part of setting up fullsync, the ttaaefs_peerip setting in the source cluster has to point to the fullsync peer in the sink cluster. As an FQDN had been set up for each node, we put the FQDN in instead of the IP address in the ttaaefs_peerip setting on the source cluster. This caused Riak to fall over silently with no log of cause. This was remedied by changing it to a hard-coded IPv4 address.
When using an environment where IP addresses can change, this seems to contradict Riak's ability to use an FQDN in the nodename.
To replicate:

  1. Create two clusters
  2. Set up NextGenRepl as one would normally
  3. On a source node, set ttaaefs_peerip to an FQDN that points to a sink node
  4. Restart Riak on the source node you updated
  5. Check whether Riak started.
  6. On the same source node, change ttaaefs_peerip to the IPv4 address of the same sink node.
  7. Restart Riak on the source node you updated.
  8. Check whether Riak started.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Use the two-cluster reproduction in the issue as the first check: set ttaaefs_peerip to an FQDN, restart the source node, then repeat with the sink node's IPv4 address. Trace startup handling of that setting and determine whether an FQDN should allow startup or produce an explicit logged configuration error instead of failing silently.

Written by the indexing model from the issue text.

Assessment

Domain
databases, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.