Django "MemoryError" or "lost synchronization with server", when accessing table with hstore

Viewed 1157

This happens when i'm using the django admin. Following are the 2 attached models -

class Grapes(models.Model):
    gmodel = HStoreField()
    gfile = models.FileField()
    guser = HStoreField()
    posx = HStoreField()
    stats = HStoreField()
    create_time = models.DateTimeField(auto_now_add=True)

class Farm(models.Model):
    acc = models.OneToOneField(Parent)
    grapes_id = models.OneToOneField('someapp.Grapes', null=True)
    field_one = models.PositiveIntegerField(default=0)
    field_two = models.PositiveIntegerField(default=0)
    field_three = models.PositiveIntegerField()
    update_time = models.DateTimeField(auto_now=True)

Whenever i try to access an object of Farm in the admin panel, it returns from the following 2 errors -

1. Memory Error

(Could not get exception message)

Traceback:
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\core\handlers\base.py" in get_response
  164.                 response = response.render()
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\response.py" in render
  158.             self.content = self.rendered_content
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\response.py" in rendered_content
  135.         content = template.render(context, self._request)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\backends\django.py" in render
  74.         return self.template.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  210.                     return self._render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\test\utils.py" in instrumented_test_render
  96.     return self.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\loader_tags.py" in render
  135.         return compiled_parent._render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\test\utils.py" in instrumented_test_render
  96.     return self.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\loader_tags.py" in render
  135.         return compiled_parent._render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\test\utils.py" in instrumented_test_render
  96.     return self.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\loader_tags.py" in render
  65.                 result = block.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\loader_tags.py" in render
  65.                 result = block.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\defaulttags.py" in render
  217.                             nodelist.append(node.render(context))
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\loader_tags.py" in render
  159.                 return template.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  212.                 return self._render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\test\utils.py" in instrumented_test_render
  96.     return self.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\defaulttags.py" in render
  217.                             nodelist.append(node.render(context))
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\defaulttags.py" in render
  217.                             nodelist.append(node.render(context))
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\defaulttags.py" in render
  329.                 return nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\defaulttags.py" in render
  329.                 return nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render
  92.             output = force_text(output)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\utils\encoding.py" in force_text
  92.                 s = six.text_type(s)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\utils\html.py" in <lambda>
  390.         klass.__unicode__ = lambda self: mark_safe(klass_unicode(self))
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\forms\forms.py" in __str__
  537.         return self.as_widget()
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\forms\forms.py" in as_widget
  593.         return force_text(widget.render(name, self.value(), attrs=attrs))
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\contrib\admin\widgets.py" in render
  292.             'widget': self.widget.render(name, value, *args, **kwargs),
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\forms\widgets.py" in render
  513.         options = self.render_options(choices, [value])
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\forms\widgets.py" in render_options
  539.         for option_value, option_label in chain(self.choices, choices):
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\forms\models.py" in __iter__
  1107.             for obj in queryset:
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\db\models\query.py" in iterator
  254.         for row in compiler.results_iter(results):
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\db\models\sql\compiler.py" in results_iter
  797.         for rows in results:
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\db\models\sql\compiler.py" in cursor_iter
  1152.                          sentinel):
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\db\models\sql\compiler.py" in <lambda>
  1151.         for rows in iter((lambda: cursor.fetchmany(GET_ITERATOR_CHUNK_SIZE)),
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\db\utils.py" in inner
  105.                 return func(*args, **kwargs)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\psycopg2\extras.py" in parse_unicode
  706.         return self.parse(s, cur)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\psycopg2\extras.py" in parse
  690.             rv[k] = v

Exception Type: MemoryError at /db/app/farm/6/
Exception Value: 

2. Database Error

lost synchronization with server: got message type "D", length 50394230

Traceback:
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\core\handlers\base.py" in get_response
  164.                 response = response.render()
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\response.py" in render
  158.             self.content = self.rendered_content
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\response.py" in rendered_content
  135.         content = template.render(context, self._request)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\backends\django.py" in render
  74.         return self.template.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  210.                     return self._render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\test\utils.py" in instrumented_test_render
  96.     return self.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\loader_tags.py" in render
  135.         return compiled_parent._render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\test\utils.py" in instrumented_test_render
  96.     return self.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\loader_tags.py" in render
  135.         return compiled_parent._render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\test\utils.py" in instrumented_test_render
  96.     return self.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\loader_tags.py" in render
  65.                 result = block.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\loader_tags.py" in render
  65.                 result = block.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\defaulttags.py" in render
  217.                             nodelist.append(node.render(context))
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\loader_tags.py" in render
  159.                 return template.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  212.                 return self._render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\test\utils.py" in instrumented_test_render
  96.     return self.nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\defaulttags.py" in render
  217.                             nodelist.append(node.render(context))
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\defaulttags.py" in render
  217.                             nodelist.append(node.render(context))
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\defaulttags.py" in render
  329.                 return nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\defaulttags.py" in render
  329.                 return nodelist.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\base.py" in render
  905.                 bit = self.render_node(node, context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render_node
  79.             return node.render(context)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\template\debug.py" in render
  92.             output = force_text(output)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\utils\encoding.py" in force_text
  92.                 s = six.text_type(s)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\utils\html.py" in <lambda>
  390.         klass.__unicode__ = lambda self: mark_safe(klass_unicode(self))
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\forms\forms.py" in __str__
  537.         return self.as_widget()
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\forms\forms.py" in as_widget
  593.         return force_text(widget.render(name, self.value(), attrs=attrs))
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\contrib\admin\widgets.py" in render
  292.             'widget': self.widget.render(name, value, *args, **kwargs),
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\forms\widgets.py" in render
  513.         options = self.render_options(choices, [value])
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\forms\widgets.py" in render_options
  539.         for option_value, option_label in chain(self.choices, choices):
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\forms\models.py" in __iter__
  1107.             for obj in queryset:
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\db\models\query.py" in iterator
  238.         results = compiler.execute_sql()
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql
  840.             cursor.execute(sql, params)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\debug_toolbar\panels\sql\tracking.py" in execute
  159.         return self._record(self.cursor.execute, sql, params)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\debug_toolbar\panels\sql\tracking.py" in _record
  101.             return method(sql, params)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\db\backends\utils.py" in execute
  79.             return super(CursorDebugWrapper, self).execute(sql, params)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\db\backends\utils.py" in execute
  64.                 return self.cursor.execute(sql, params)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\db\utils.py" in __exit__
  98.                 six.reraise(dj_exc_type, dj_exc_value, traceback)
File "D:\MOOPOI~1\Projects\Vidzert\Webiste\VIDZER~1\lib\site-packages\django\db\backends\utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

Exception Type: DatabaseError at /db/app/farm/7/
Exception Value: lost synchronization with server: got message type "D", length 50394230

or sometimes (rare) it just displays -

A server error occurred.  Please contact the administrator.

But when i directly access the Grapes object in the admin, it works fine. The only workaround I've found is to make grapes_id in Farm model a readonly field in the admin.

It surely doesn't depend on the size of Hstorefield on an individual object. I've tried a variation from 1000 to 2.5 million keys.

I'm using postgresql 9.4, django 1.8.9 and python 2.7.11 32bit on win7 64bit.

0 Answers
Related