Activity log for bug #1529326

Date Who What changed Old value New value Message
2015-12-26 06:32:16 Li Ma bug added bug
2015-12-26 06:51:52 Li Ma description Here is the problem: A network is created and written in neutron DB. At the meantime, Etcd cannot get the corresponding key 'lswitch', which causes unable to create subnet for this network. The log file says that Etcd was disconnected at the network creation. AFAIK, if the operation on Etcd fails, the DB transaction should also be rollbacked at the neutron DB side to prevent from updating DB records. The related code in dragonflow/neutron/plugin.py: def create_network(self, context, network): with context.session.begin(subtransactions=True): result = super(DFPlugin, self).create_network(context, network) self._process_l3_create(context, result, network['network']) return self.create_network_nb_api(result) Here is the problem: A network is created and written in neutron DB. At the meantime, Etcd cannot get the corresponding key 'lswitch', which causes unable to create subnet for this network. The log file says that Etcd was disconnected at the network creation. AFAIK, if the operation on Etcd fails, the DB transaction should also be rollbacked at the neutron DB side to prevent from updating DB records. This causes inconsistency of DB backkends. The related code in dragonflow/neutron/plugin.py: def create_network(self, context, network):         with context.session.begin(subtransactions=True):             result = super(DFPlugin, self).create_network(context,                                                           network)             self._process_l3_create(context, result, network['network'])         return self.create_network_nb_api(result)
2015-12-26 06:52:00 Li Ma description Here is the problem: A network is created and written in neutron DB. At the meantime, Etcd cannot get the corresponding key 'lswitch', which causes unable to create subnet for this network. The log file says that Etcd was disconnected at the network creation. AFAIK, if the operation on Etcd fails, the DB transaction should also be rollbacked at the neutron DB side to prevent from updating DB records. This causes inconsistency of DB backkends. The related code in dragonflow/neutron/plugin.py: def create_network(self, context, network):         with context.session.begin(subtransactions=True):             result = super(DFPlugin, self).create_network(context,                                                           network)             self._process_l3_create(context, result, network['network'])         return self.create_network_nb_api(result) Here is the problem: A network is created and written in neutron DB. At the meantime, Etcd cannot get the corresponding key 'lswitch', which causes unable to create subnet for this network. The log file says that Etcd was disconnected at the network creation. AFAIK, if the operation on Etcd fails, the DB transaction should also be rollbacked at the neutron DB side to prevent from updating DB records. This causes inconsistency of DB backends. The related code in dragonflow/neutron/plugin.py: def create_network(self, context, network):         with context.session.begin(subtransactions=True):             result = super(DFPlugin, self).create_network(context,                                                           network)             self._process_l3_create(context, result, network['network'])         return self.create_network_nb_api(result)
2015-12-26 06:52:36 Li Ma dragonflow: assignee Li Ma (nick-ma-z)
2015-12-28 09:41:20 Li Ma dragonflow: assignee Li Ma (nick-ma-z)
2015-12-29 07:53:55 Gal Sagie dragonflow: importance Undecided High
2015-12-30 03:33:44 Li Ma dragonflow: assignee Li Ma (nick-ma-z)
2015-12-30 09:30:53 OpenStack Infra dragonflow: status New In Progress
2016-03-16 15:27:57 OpenStack Infra dragonflow: status In Progress Fix Released