Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#10288 closed Patch - Bug Fix (Won't Fix)

FE Won't Connect to BE in 0.25pre if bindv6only = 1

Reported by: Bill Meek <keemllib@…> Owned by: beirdo
Priority: minor Milestone: unknown
Component: MythTV - General Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

If a user upgrades to 0.25{pre}, and their distribution sets bindv6only = 1, their frontends (combined or remote) will not connect to their backend.

1st, thanks to Ian Clark (mrrooster) and Erich (mepisrocks) for their help in diagnosing this. Their Debian and Mepis systems (respectively) were failing and had bindb6only = 1.

Users can check their system by typing:

sysctl -a 2>/dev/null | grep bindv6only

To duplicate:

On a master backend:
Run 0.25pre
Verify that IPv4 addresses are set for the ...ServerIPs
Add /etc/sysctl.d/mythtv-bind-test.conf
Put: net.ipv6.bindv6only = 1 in that file
Reboot
Start a mythfrontend running

The FE will get the "Could not connect to the master backend server." pop up.

Solution 1 (probably correct, easily overlooked):

Users / Distributions should not set bindv6only = 1. Note: #9820, #9840 and #10165 as well as posts on the -users list say this is already a problem.

Most likely solved by searching for bindv6only in files under /etc/sysctl.d and removing it, commenting it out or setting it to 0.

Solution 2 (delay the problem):

Tested under v0.25pre-4146-g633370e.

The attached patch will prevent binding to IPv6 as long as the user hasn't configured any IPv6 routable addresses on their system. It does this by ignoring Host (::1) and Link Local (fe80::) addresses that are automatically configured by the system.

If/when a user adds a Global IPv6 address, the FE will not connect if bindv6only = 1.

Solution 3 (bindv6only check/error message)

Included in the patch (in the #ifdef at the end) is a test of the bindv6only setting. I used the /proc/sys interface only because in the ubuntu man pages it says sysctl(2) may go away.

Attachments (1)

ignore-and-check-v6only.patch (1.9 KB) - added by Bill Meek <keemllib@…> 8 years ago.

Download all attachments as: .zip

Change History (6)

Changed 8 years ago by Bill Meek <keemllib@…>

comment:1 Changed 8 years ago by Raymond Wagner

Status: newinfoneeded_new
Type: Patch - FeaturePatch - Bug Fix

Did you intend to post this to #10259?

comment:2 in reply to:  1 Changed 8 years ago by Bill Meek <llibkeem@…>

Replying to wagnerrp:

No (unfortunately,) this won't help that. I had picked Feature because MythTV isn't doing anything wrong. Mark's schedule prompted me to get this out in hopes of preventing problems for some folks upgrading to 0.25.

comment:3 Changed 8 years ago by beirdo

Owner: set to beirdo
Status: infoneeded_newassigned

comment:4 Changed 8 years ago by beirdo

Resolution: Won't Fix
Status: assignedclosed

I would like to posit that this is a setup issue. If you set it to ipv6-only, you had better make sure that all IPs for the master backend (and the local backend setup on every backend) are set to the IPv6 address.

I don't like the idea of preventing binding on any IPv6 configured address. It is perfectly acceptable to use the FE80:: addresses for the communication between frontend and backend.

comment:5 Changed 8 years ago by Raymond Wagner

Alter various listen servers to bind to discrete addresses.

Refs #10288

Branch: master
Changeset: 37385baff83eea77116d13e22be96b74cfde2cec

Note: See TracTickets for help on using tickets.