[ZODB-Dev] bug with RelStorage's zodbconvert --clear when clearing a large DB with MySQL

Shane Hathaway shane at hathawaymix.org
Mon Jan 31 23:11:34 EST 2011


On 02/01/2011 12:19 AM, Chris Withers wrote:
> Hi Shane,
>
> This one's less serious if it is what I think it is:
>
> Traceback (most recent call last):
>     File "bin/zodbconvert", line 24, in<module>
>       relstorage.zodbconvert.main()
>     File
> "/var/buildout-eggs/RelStorage-1.4.0-py2.6.egg/relstorage/zodbconvert.py",
> line 89, in main
>       destination.zap_all()
>     File
> "/var/buildout-eggs/RelStorage-1.4.0-py2.6.egg/relstorage/storage.py",
> line 308, in zap_all
>       self._rollback_load_connection()
>     File
> "/var/buildout-eggs/RelStorage-1.4.0-py2.6.egg/relstorage/storage.py",
> line 217, in _rollback_load_connection
>       self._load_conn.rollback()
> _mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
>
> My guess is that the zap_all took so long that the server had gone away
> by the time the sql statement had be executed.

My guess is MySQL is configured to drop connections when they are idle. 
  That is a bad idea IMHO, so I think raising that exception is the 
right thing to do, not a bug.

> I also had a segfault trying to do the same conversion which I'm
> attributing to the MySQL server being restarted by an overeager DBA
> mid-converstion but still, that shouldn't cause a segfault, right?

I don't know why it would.

Shane


More information about the ZODB-Dev mailing list