Message10443

Author zyasoft
Recipients asalabaev, helix84, public.marvin, zyasoft
Date 2015-11-09.17:48:05
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1447091286.44.0.837371157931.issue2392@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2015-11-09 17:48:06zyasoftsetmessageid: <1447091286.44.0.837371157931.issue2392@psf.upfronthosting.co.za>
2015-11-09 17:48:06zyasoftsetrecipients: + zyasoft, public.marvin, helix84, asalabaev
2015-11-09 17:48:06zyasoftlinkissue2392 messages
2015-11-09 17:48:05zyasoftcreate