MemoryError when using imaplib fetch
Please help me, I am getting MemoryError when trying to fetch a specific email. This is the error message:
python(23838,0x1888c00) malloc: *** vm_allocate(size=3309568) failed (error code=3)
python(23838,0x1888c00) malloc: *** error: can't allocate region
python(23838,0x1888c00) malloc: *** set a breakpoint in szone_error to debug
Exception in thread Thread-1:Traceback (most recent开发者_StackOverflow中文版 call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/threading.py", line 442, in __bootstrap
self.run()
File "/Volumes/SvnDevDisk/branches/HaversackProject_Version_0.2/plugins/GaMailClientPlugin/python/imap/imap_reader.py", line 25, in run
self.readMailbox(eachMailbox)
File "/Volumes/SvnDevDisk/branches/HaversackProject_Version_0.2/plugins/GaMailClientPlugin/python/imap/imap_reader.py", line 58, in readMailbox
resp, content = _mailConnection.fetch(num, '(RFC822 FLAGS)')
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 417, in fetch
typ, dat = self._simple_command(name, message_set, message_parts)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 1004, in _simple_command
return self._command_complete(name, self._command(name, *args))
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 830, in _command_complete
typ, data = self._get_tagged_response(tag)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 935, in _get_tagged_response
self._get_response()
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 896, in _get_response
data = self.read(size)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 231, in read
return self.file.read(size)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/socket.py", line 301, in read
data = self._sock.recv(recv_size)
MemoryError
And here is my code:
resp, content = _mailConnection.fetch(num, '(RFC822 FLAGS)')
I am using python 2.3.5
Thanks in advance!
A MemoryError usually indicates that your system ran out of free memory. Perhaps your Python script is keeping references to all messages it's seen and the total sum of them is too big to fit in memory?
http://bugs.python.org/issue1092502
The suggested fix there by a_lauer seems to have fixed my problem.
精彩评论