Skip to content

network-scripts: ifup-local is never run for bridge member interfaces #296

@davide125

Description

@davide125

ifup-eth currently calls exit 0 when setting up a bridge member interface, which leads to ifup-local never being run. We're currently working around this in our environment with this /sbin/ifup-pre-local script.

#!/bin/bash

. /etc/init.d/functions

cd /etc/sysconfig/network-scripts
. ./network-functions

[ -f ../network ] && . ../network

CONFIG=${1}

need_config "${CONFIG}"

source_config

# If we're not setting up a bridge member interface, exit now
[ -z "${BRIDGE}" -a -z "${OVS_BRIDGE}" ] && exit 0

# This will run ifup-eth, then ifup-local, but then /sbin/ifup (our caller)
# will RE-RUN ifup-eth. This seems to be ok in practice, as most of the things
# ifup-eth does are idempotent. Note that we have to do this because ifup-eth
# will 'exit 0' in the middle when setting up a bridge member interface, thus
# preventing ifup-local from even being called.
OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-${DEVICETYPE}"

if [ ! -x ${OTHERSCRIPT} ]; then
  OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-eth"
fi

${OTHERSCRIPT} ${CONFIG} $2

if [ -x /sbin/ifup-local ]; then
  /sbin/ifup-local ${DEVICE}
fi

# give it some time to settle
sleep 2

exit 0

Note: this is a long standing bug, dating back to at least 2014, but I'd forgotten to file it until now.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions