New submission from saaj:

I was chaning an implementation of the function that is passed to json.dumps to 
extend serializable types. By a mistake (**return** instead of **raise**) it 
turned into, which at its minum can be expressed as::

  def d(obj):
    return TypeError(repr(obj))

  json.dumps(1j, default = d) 

After a few moments by laptop froze, though after a minute I could open shell 
in separate session, and top command showed that python interpretter is 
consuming about 4GiB of memory and 50% of 4 logical cores. 

Worst about it it doesn't end with any exception, it just keeps running. 
Without ``repr`` it ends up with somewhat expected ``RuntimeError: maximum 
recursion depth exceeded while getting the str of an object``.

The same behaviour is on python3, where it just consumes memory with less speed.

OS:
Linux Mint 15 Olivia
Linux 3.8.0-31-generic #46-Ubuntu SMP Tue Sep 10 20:03:44 UTC 2013 x86_64

Packages are last available:
python  2.7.4-0ubuntu1
python3 3.3.1-0ubuntu1

P.S. Sorry for confirming on console at python.org.

----------
components: Library (Lib)
messages: 216071
nosy: saaj
priority: normal
severity: normal
status: open
title: Memory bomb by incorrect custom serializer to json.dumps
versions: Python 2.7, Python 3.3

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue21213>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to