Comment 5 for bug 1399577

Revision history for this message
Martin Gerhard Loschwitz (martin-loschwitz) wrote :

We have now deployed the following patch supplied by Pedro:

diff --git a/dp-core/vr_interface.c b/dp-core/vr_interface.c
index f4a08e8..51fcd82 100644
--- a/dp-core/vr_interface.c
+++ b/dp-core/vr_interface.c
@@ -1407,7 +1407,9 @@ vr_interface_add(vr_interface_req *req, bool need_response)

     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/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.