Message10443
Artem, this is definitely not spamming - it's extremely helpful in pinning down the issue. So we know the following:
* This problem happens on both 2.5.3 and 2.7.0. So this rules out the changes in PySystemState lifecycle to prevent non GC-able class loaders (#2321) as being the root cause. (But it is still possible that this change makes the problem surface more frequently.)
* We see this in occurring in simple regular expressions.
* Reloads of class code trigger this problem. It is possibly related to the PyServlet implementation.
* The advice on the Grinder docs (http://grinder.sourceforge.net/faq.html#re-problems) is very interesting to me. It is certainly unusual to use imports like this at a thread level. I even discuss this in the Jython book as a significant source of performance degradation due to Python's module import lock. (http://www.jython.org/jythonbook/en/1.0/Concurrency.html#module-import-lock) Is it possible that the `import re` ensures a strong reference to the SRE engine, and how it interacts with servlet (and thus class) reloading?
Jython users can certainly use Java's built-in regex support (http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html), but it's not possible for us to use as the basis of Jython's re engine, because of somewhat different semantics. There is an outstanding bug (#2408) to redo the SRE port, but purely for performance issues. |
|
Date |
User |
Action |
Args |
2015-11-09 17:48:06 | zyasoft | set | messageid: <1447091286.44.0.837371157931.issue2392@psf.upfronthosting.co.za> |
2015-11-09 17:48:06 | zyasoft | set | recipients:
+ zyasoft, public.marvin, helix84, asalabaev |
2015-11-09 17:48:06 | zyasoft | link | issue2392 messages |
2015-11-09 17:48:05 | zyasoft | create | |
|