bug 7142: fix the race condition that multiple create vlan requests coming from mgt svr

status 7142: resolved fixed
This commit is contained in:
edison 2010-11-10 13:35:08 -08:00
parent 8af7b2473b
commit 6944979f94
2 changed files with 25 additions and 8 deletions

View File

@ -859,8 +859,14 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
boolean isDirectAttachedNetwork(String type) {
if ("untagged".equalsIgnoreCase(type))
return true;
else
else {
try {
Long vnetId = Long.valueOf(type);
} catch (NumberFormatException e) {
return true;
}
return false;
}
}
protected synchronized String startDomainRouter(StartRouterCommand cmd) {
@ -2231,7 +2237,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
return new MigrateAnswer(cmd, result == null, result, null);
}
private Answer execute(PrepareForMigrationCommand cmd) {
private synchronized Answer execute(PrepareForMigrationCommand cmd) {
final String vmName = cmd.getVmName();
String result = null;

23
scripts/vm/network/vnet/modifyvlan.sh Normal file → Executable file
View File

@ -22,8 +22,12 @@ addVlan() {
if [ $? -gt 0 ]
then
printf "Failed to create vlan $vlanId on pif: $pif."
return 1
# race condition that someone already creates the vlan
if [ ! -d /sys/class/net/$vlanDev ]
then
printf "Failed to create vlan $vlanId on pif: $pif."
return 1
fi
fi
fi
@ -40,8 +44,11 @@ addVlan() {
if [ $? -gt 0 ]
then
printf "Failed to create br: $vlanBr"
return 2
if [ ! -d /sys/class/net/$vlanBr ]
then
printf "Failed to create br: $vlanBr"
return 2
fi
fi
fi
@ -52,8 +59,12 @@ addVlan() {
brctl addif $vlanBr $vlanDev > /dev/null
if [ $? -gt 0 ]
then
printf "Failed to add vlan: $vlanDev to $vlanBr"
return 3
ls /sys/class/net/$vlanBr/brif/ |grep -w "$vlanDev" > /dev/null
if [ $? -gt 0 ]
then
printf "Failed to add vlan: $vlanDev to $vlanBr"
return 3
fi
fi
fi
# is vlanBr up?