This will work around the problem by not calling the problematic vif_delete function that was breaking the kernel in the first place. Pedro, however, believes that the problem is similar to https://bugs.launchpad.net/juniperopenstack/+bug/1399603 and based on the vrouter module making assumptions that were true in previous gcc versions but are no longer true now.
The patch above will produce debug output instead of crashing the machine; we will report back on the debug output as soon as we get it.
We have now deployed the following patch supplied by Pedro:
diff --git a/dp-core/ vr_interface. c b/dp-core/ vr_interface. c vr_interface. c vr_interface. c add(vr_ interface_ req *req, bool need_response)
index f4a08e8..51fcd82 100644
--- a/dp-core/
+++ b/dp-core/
@@ -1407,7 +1407,9 @@ vr_interface_
ret = vif_drv_add(vif, req);
if (ret) {
- vif_delete(vif);
+ vr_printf(
+ "interface %s add (type %x, flags %x) failed with error: %d\n",
+ req->vifr_name, vif->vif_type, vif->vif_flags, ret);
vif = NULL;
}
This will work around the problem by not calling the problematic vif_delete function that was breaking the kernel in the first place. Pedro, however, believes that the problem is similar to https:/ /bugs.launchpad .net/juniperope nstack/ +bug/1399603 and based on the vrouter module making assumptions that were true in previous gcc versions but are no longer true now.
The patch above will produce debug output instead of crashing the machine; we will report back on the debug output as soon as we get it.