diff --git a/debian/changelog b/debian/changelog index efce372..bf946ca 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +pypy (2.2.1+dfsg-1ubuntu0.1) trusty; urgency=medium + + * Cherry-pick a patch (jit-crash-1669) to fix a JIT crash. (LP: #1368418) + + -- Stefano Rivera Fri, 28 Nov 2014 18:34:13 -0800 + pypy (2.2.1+dfsg-1) unstable; urgency=low * New upstream bugfix release. diff --git a/debian/patches/jit-crash-1669 b/debian/patches/jit-crash-1669 new file mode 100644 index 0000000..e169fcb --- /dev/null +++ b/debian/patches/jit-crash-1669 @@ -0,0 +1,35 @@ +Description: Fix JIT crash + KeyError was only caught in one of the accesses to cache +Author: Armin Rigo +Origin: upstream, https://bitbucket.org/pypy/pypy/commits/5ca1994 +Bug-Upstream: https://bitbucket.org/pypy/pypy/issue/1669 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/pypy/+bug/1368418 + +--- a/rpython/jit/metainterp/heapcache.py ++++ b/rpython/jit/metainterp/heapcache.py +@@ -159,17 +159,17 @@ + descr, + ) + elif cache is not None: +- if argboxes[2] in self.new_boxes: +- try: +- idx_cache = cache[dststart + i] +- except KeyError: +- pass +- else: ++ try: ++ idx_cache = cache[dststart + i] ++ except KeyError: ++ pass ++ else: ++ if argboxes[2] in self.new_boxes: + for frombox in idx_cache.keys(): + if not self.is_unescaped(frombox): + del idx_cache[frombox] +- else: +- cache[dststart + i].clear() ++ else: ++ idx_cache.clear() + return + elif ( + argboxes[2] in self.new_boxes and diff --git a/debian/patches/series b/debian/patches/series index 1e9ef03..97fdab5 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -13,6 +13,7 @@ test_termios so_reuseport # from python2.7 +jit-crash-1669 ctypes-arm distutils-link locale-module