Tim Peters added the comment:

This has nothing to do with the _values_ you're passing - it has to do with the 
length of the pickle string:

    def _send_bytes(self, buf):
        n = len(buf)
        # For wire compatibility with 3.2 and lower
        header = struct.pack("!i", n)  IT'S BLOWING UP HERE
        if n > 16384:
            ...
            self._send(header)
            self._send(buf)

where the traceback shows it's called here:

    self._send_bytes(ForkingPickler.dumps(obj))

Of course the less data you're passing, the smaller the pickle, and that's why 
it doesn't blow up if you pass subsets of the data.

I'd suggest rethinking how you're sharing data, as pushing two-gigabyte pickle 
strings around is bound to be the least efficient way possible even if it 
didn't blow up ;-)

----------
nosy: +tim.peters

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

Reply via email to