Hello community, here is the log from the commit of package python-ryu for openSUSE:Factory checked in at 2019-05-17 23:43:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-ryu (Old) and /work/SRC/openSUSE:Factory/.python-ryu.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ryu" Fri May 17 23:43:35 2019 rev:4 rq:703560 version:4.32 Changes: -------- --- /work/SRC/openSUSE:Factory/python-ryu/python-ryu.changes 2019-05-07 23:19:35.357000625 +0200 +++ /work/SRC/openSUSE:Factory/.python-ryu.new.5148/python-ryu.changes 2019-05-17 23:43:37.269897723 +0200 @@ -1,0 +2,6 @@ +Thu May 16 20:58:54 UTC 2019 - Hardik Italia <[email protected]> + +- Version update to 4.32 + * app/ofctl: fix possible deadlock + +------------------------------------------------------------------- Old: ---- ryu-4.31.tar.gz New: ---- ryu-4.32.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-ryu.spec ++++++ --- /var/tmp/diff_new_pack.E4Wfff/_old 2019-05-17 23:43:38.009897317 +0200 +++ /var/tmp/diff_new_pack.E4Wfff/_new 2019-05-17 23:43:38.013897315 +0200 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-ryu -Version: 4.31 +Version: 4.32 Release: 0 Summary: Component-based Software-defined Networking Framework License: Apache-2.0 ++++++ ryu-4.31.tar.gz -> ryu-4.32.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/ChangeLog new/ryu-4.32/ChangeLog --- old/ryu-4.31/ChangeLog 2019-04-01 14:48:45.000000000 +0200 +++ new/ryu-4.32/ChangeLog 2019-05-07 15:13:08.000000000 +0200 @@ -1,6 +1,8 @@ CHANGES ======= +* Ryu 4.32 +* app/ofctl: fix possible deadlock * Ryu 4.31 * Choose the highest TLS version * Ryu 4.30 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/PKG-INFO new/ryu-4.32/PKG-INFO --- old/ryu-4.31/PKG-INFO 2019-04-01 14:48:47.000000000 +0200 +++ new/ryu-4.32/PKG-INFO 2019-05-07 15:13:10.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: ryu -Version: 4.31 +Version: 4.32 Summary: Component-based Software-defined Networking Framework Home-page: http://osrg.github.io/ryu/ Author: Ryu project team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/ryu/__init__.py new/ryu-4.32/ryu/__init__.py --- old/ryu-4.31/ryu/__init__.py 2019-04-01 14:41:06.000000000 +0200 +++ new/ryu-4.32/ryu/__init__.py 2019-05-07 15:12:52.000000000 +0200 @@ -14,5 +14,5 @@ # limitations under the License. -version_info = (4, 31) +version_info = (4, 32) version = '.'.join(map(str, version_info)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/ryu/app/ofctl/service.py new/ryu-4.32/ryu/app/ofctl/service.py --- old/ryu-4.31/ryu/app/ofctl/service.py 2018-09-26 08:34:16.000000000 +0200 +++ new/ryu-4.32/ryu/app/ofctl/service.py 2019-04-09 13:27:31.000000000 +0200 @@ -64,6 +64,22 @@ self.unobserve_event(ev_cls) self.logger.debug('ofctl: stop observing %s', ev_cls) + def _cancel(self, info, barrier_xid, exception): + xid = info.barriers.pop(barrier_xid) + req = info.xids.pop(xid) + msg = req.msg + datapath = msg.datapath + parser = datapath.ofproto_parser + is_barrier = isinstance(msg, parser.OFPBarrierRequest) + + info.results.pop(xid) + + if not is_barrier and req.reply_cls is not None: + self._unobserve_msg(req.reply_cls) + + self.logger.error('failed to send message <%s>', req.msg) + self.reply_to_request(req, event.Reply(exception=exception)) + @staticmethod def _is_error(msg): return (ofp_event.ofp_msg_to_ev_cls(type(msg)) == @@ -81,6 +97,9 @@ self._switches[id] = new_info if old_info: old_info.datapath.close() + for xid in list(old_info.barriers): + self._cancel( + old_info, xid, exception.InvalidDatapath(result=id)) @set_ev_cls(ofp_event.EventOFPStateChange, DEAD_DISPATCHER) def _handle_dead(self, ev): @@ -96,6 +115,8 @@ if info.datapath is datapath: self.logger.debug('forget info %s', info) self._switches.pop(id) + for xid in list(info.barriers): + self._cancel(info, xid, exception.InvalidDatapath(result=id)) @set_ev_cls(event.GetDatapathRequest, MAIN_DISPATCHER) def _handle_get_datapath(self, req): @@ -131,15 +152,6 @@ si.xids[xid] = req si.barriers[barrier_xid] = xid - def _cancel(barrier_xid, exc): - xid = si.barriers.pop(barrier_xid) - si.results.pop(xid) - si.xids.pop(xid) - if not is_barrier and req.reply_cls is not None: - self._unobserve_msg(req.reply_cls) - self.logger.error('failed to send message <%s>', msg) - self.reply_to_request(req, event.Reply(exception=exc)) - if is_barrier: barrier = msg datapath.set_xid(barrier) @@ -152,12 +164,14 @@ datapath.set_xid(barrier) _store_xid(msg.xid, barrier.xid) if not datapath.send_msg(msg): - return _cancel(barrier.xid, - exception.InvalidDatapath(result=datapath.id)) + return self._cancel( + si, barrier.xid, + exception.InvalidDatapath(result=datapath.id)) if not datapath.send_msg(barrier): - return _cancel(barrier.xid, - exception.InvalidDatapath(result=datapath.id)) + return self._cancel( + si, barrier.xid, + exception.InvalidDatapath(result=datapath.id)) @set_ev_cls(ofp_event.EventOFPBarrierReply, MAIN_DISPATCHER) def _handle_barrier(self, ev): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/ryu.egg-info/PKG-INFO new/ryu-4.32/ryu.egg-info/PKG-INFO --- old/ryu-4.31/ryu.egg-info/PKG-INFO 2019-04-01 14:48:45.000000000 +0200 +++ new/ryu-4.32/ryu.egg-info/PKG-INFO 2019-05-07 15:13:08.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: ryu -Version: 4.31 +Version: 4.32 Summary: Component-based Software-defined Networking Framework Home-page: http://osrg.github.io/ryu/ Author: Ryu project team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/ryu.egg-info/pbr.json new/ryu-4.32/ryu.egg-info/pbr.json --- old/ryu-4.31/ryu.egg-info/pbr.json 2019-04-01 14:48:45.000000000 +0200 +++ new/ryu-4.32/ryu.egg-info/pbr.json 2019-05-07 15:13:08.000000000 +0200 @@ -1 +1 @@ -{"git_version": "050bfbc", "is_release": false} \ No newline at end of file +{"git_version": "6456711", "is_release": false} \ No newline at end of file
