[pypy-commit] extradoc extradoc: updates

arigo pypy.commits at gmail.com
Sun Sep 18 15:05:56 EDT 2016


Author: Armin Rigo <arigo at tunes.org>
Branch: extradoc
Changeset: r5705:c602273d9953
Date: 2016-09-18 21:05 +0200
http://bitbucket.org/pypy/extradoc/changeset/c602273d9953/

Log:	updates

diff --git a/planning/py3.5/cpython-crashers.rst b/planning/py3.5/cpython-crashers.rst
--- a/planning/py3.5/cpython-crashers.rst
+++ b/planning/py3.5/cpython-crashers.rst
@@ -23,6 +23,15 @@
   threads concurrently.  It will make two stat objects and leak one of
   them.
 
+* _PyGen_yf() checks the opcode at [f_lasti + 1], which is the next
+  opcode that will run when we resume the generator: either YIELD or
+  YIELD_FROM.  But that is only true if the generator is not currently
+  running.  If it is (which probably doesn't occur in reasonable Python
+  code but can be constructed manually), then this checks for example
+  the byte/word that describes the argument of the currently running
+  opcode.  If we're very unlucky this byte has the value 72, which is
+  YIELD_FROM.  Total nonsense and crashes follow.
+
 
 Other bugs
 ----------
@@ -57,3 +66,7 @@
   invoked.  This can confuse coverage tools and profilers.  For example,
   in a stack ``f1()->f2()->f3()``, vmprof would show f3() as usually
   called via f2() from f1() but occasionally called directly from f1().
+
+* ceval.c: GET_AITER: calls _PyCoro_GetAwaitableIter(), which might
+  get an exception from calling the user-defined __await__() or checking
+  what it returns; such an exception is completely eaten.


More information about the pypy-commit mailing list