New issue 2268: _sqlite3.OperationalError: disk I/O error
https://bitbucket.org/pypy/pypy/issues/2268/_sqlite3operationalerror-disk-i-o-error

Valentin Lorentz:

When running my code on Travis CI, I get the following traceback:


```
#!python

Traceback (most recent call last):

  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/engine/base.py", 
line 1139, in _execute_context
    context)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/engine/default.py",
 line 450, in do_execute
    cursor.execute(statement, parameters)
  File "/opt/python/pypy3-2.4.0/lib_pypy/_sqlite3.py", line 915, in wrapper
    return func(self, *args, **kwargs)
  File "/opt/python/pypy3-2.4.0/lib_pypy/_sqlite3.py", line 1084, in execute
    return self.__execute(False, sql, [params])
  File "/opt/python/pypy3-2.4.0/lib_pypy/_sqlite3.py", line 1057, in __execute
    raise self.__connection._get_exception(ret)
_sqlite3.OperationalError: disk I/O error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/opt/python/pypy3-2.4.0/lib-python/3/threading.py", line 740, in 
_bootstrap_inner
    self.run()
  File "/opt/python/pypy3-2.4.0/lib-python/3/threading.py", line 693, in run
    self._target(*self._args, **self._kwargs)
  File "/home/travis/build/ProjetPP/PPP-Core/ppp_core/verbose_log.py", line 28, 
in log_answers
    conn = get_engine(url).connect()
  File "/home/travis/build/ProjetPP/PPP-Core/ppp_core/verbose_log.py", line 21, 
in get_engine
    metadata.create_all(engine)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/sql/schema.py", 
line 3695, in create_all
    tables=tables)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/engine/base.py", 
line 1856, in _run_visitor
    conn._run_visitor(visitorcallable, element, **kwargs)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/engine/base.py", 
line 1481, in _run_visitor
    **kwargs).traverse_single(element)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/sql/visitors.py", 
line 121, in traverse_single
    return meth(obj, **kw)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/sql/ddl.py", line 
730, in visit_metadata
    _is_metadata_operation=True)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/sql/visitors.py", 
line 121, in traverse_single
    return meth(obj, **kw)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/sql/ddl.py", line 
764, in visit_table
    include_foreign_key_constraints=include_foreign_key_constraints
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/engine/base.py", 
line 914, in execute
    return meth(self, multiparams, params)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/sql/ddl.py", line 
68, in _execute_on_connection
    return connection._execute_ddl(self, multiparams, params)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/engine/base.py", 
line 968, in _execute_ddl
    compiled
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/engine/base.py", 
line 1146, in _execute_context
    context)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/engine/base.py", 
line 1341, in _handle_dbapi_exception
    exc_info
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/util/compat.py", 
line 200, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/util/compat.py", 
line 183, in reraise
    raise value.with_traceback(tb)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/engine/base.py", 
line 1139, in _execute_context
    context)
  File 
"/home/travis/virtualenv/pypy3-2.4.0/site-packages/sqlalchemy/engine/default.py",
 line 450, in do_execute
    cursor.execute(statement, parameters)
  File "/opt/python/pypy3-2.4.0/lib_pypy/_sqlite3.py", line 915, in wrapper
    return func(self, *args, **kwargs)
  File "/opt/python/pypy3-2.4.0/lib_pypy/_sqlite3.py", line 1084, in execute
    return self.__execute(False, sql, [params])
  File "/opt/python/pypy3-2.4.0/lib_pypy/_sqlite3.py", line 1057, in __execute
    raise self.__connection._get_exception(ret)
sqlalchemy.exc.OperationalError: (_sqlite3.OperationalError) disk I/O error 
[SQL: '\nCREATE TABLE requests (\n\trequest_handling_start_time FLOAT, 
\n\trequest_handling_end_time FLOAT, \n\trequest_answers_json TEXT\n)\n\n']
```

I believe this code should be enough to reproduce the issue:

```
#!python

import sqlalchemy, tempfile
metadata = sqlalchemy.MetaData()
requests = sqlalchemy.Table('requests', metadata, 
sqlalchemy.Column('request_handling_start_time', sqlalchemy.Float), 
sqlalchemy.Column('request_handling_end_time', sqlalchemy.Float), 
sqlalchemy.Column('request_answers_json', sqlalchemy.Text))
with tempfile.NamedTemporaryFile('w+') as fd:
 uri = 'sqlite:///%s' % fd.name
 engine = sqlalchemy.create_engine(uri)
 metadata.create_all(engine)
```

However, I am not able to reproduce it outside Travis.



_______________________________________________
pypy-issue mailing list
pypy-issue@python.org
https://mail.python.org/mailman/listinfo/pypy-issue

Reply via email to