Last modified: 2014-07-22 15:49:55 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T69823, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 67823 - Max recursion limit hit
Max recursion limit hit
Status: RESOLVED FIXED
Product: Analytics
Classification: Unclassified
Wikimetrics (Other open bugs)
unspecified
All All
: Unprioritized normal
: ---
Assigned To: Nobody - You can work on this!
u=Kevin c=EEVS p=0 s=2014-07-10
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2014-07-10 19:53 UTC by Dan Andreescu
Modified: 2014-07-22 15:49 UTC (History)
7 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments

Description Dan Andreescu 2014-07-10 19:53:04 UTC
When running recurrent reports, if more than a certain number of reports at the same time, we hit a bug in pickle which causes python to throw an error about the maximum recursion limit.  This can be hacked around with the very ugly:

sys.setrecursionlimit(10000)

Or it can be fixed by moving away from pickle serialization.  I recommend the latter, but we can fall back to the former and find a decent value to pass there.
Comment 1 Kevin Leduc 2014-07-10 20:03:16 UTC
Let's do the quick fix now (setrecursionlimit)

and

log a new bug to move away from pickle serialization so we can do that later.
Comment 2 Kevin Leduc 2014-07-10 20:38:55 UTC
What are we trying to pickle anyway?

I read the documentation on Pickling ( https://docs.python.org/2/library/pickle.html#what-can-be-pickled-and-unpickled ) and it left me wondering if we were trying to pickle objects with recursive references, or really big objects.  Seems odd that we'd be doing this.
Comment 3 Dan Andreescu 2014-07-10 21:07:28 UTC
This is the link to the pickle issue.  It's because we're using a chain of group of tasks (to allow us to throttle how many run in parallel):

https://github.com/celery/celery/issues/1078
Comment 4 Dan Andreescu 2014-07-14 20:26:12 UTC
#hornetsnest
Comment 5 Gerrit Notification Bot 2014-07-14 22:04:34 UTC
Change 146297 had a related patch set uploaded by Milimetric:
Avoid pickle max recursion while serializing chain

https://gerrit.wikimedia.org/r/146297
Comment 6 Gerrit Notification Bot 2014-07-21 20:34:24 UTC
Change 146297 merged by jenkins-bot:
Avoid pickle max recursion while serializing chain

https://gerrit.wikimedia.org/r/146297

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links