On Wed, Apr 23, 2014 at 03:39:21PM -0400, Richard Hipp wrote: > On Wed, Apr 23, 2014 at 3:34 PM, Steve Wills <[email protected]> wrote: > > > On Wed, Apr 23, 2014 at 02:06:33PM -0400, Richard Hipp wrote: > > > On Wed, Apr 23, 2014 at 12:20 AM, Steve Wills <[email protected]> > > wrote: > > > I think http://www.sqlite.org/src/info/1bbb4be1a25 addresses your > > problem. > > > That change is in all 3.8.* versions of SQLite. > > > > I am using 3.8.4.3 and was still seeing issues until I set > > HAVE_POSIX_FALLOCATE=0 in configure. > > > > In 3.8.4.3, posix_fallocate() is only called as a hint to the filesystem > that the database is about to grow to the indicated size. (Many > filesystems appreciate this hint as it helps them to avoid fragmentation.) > Any error returned from posix_fallocate() is ignored. > > So what problem are you seeing, exactly? Is the fact that > posix_fallocate() is being called at all causing some kind of problem for > ZFS?
I am deploying OpenStack Swift which uses sqlite via python. I was getting an exception like this: "<130>container-updater: UNCAUGHT EXCEPTION #012Traceback (most recent call last): #012 File "/usr/local/bin/swift-container-updater", line 23, in <module> #012 run_daemon(ContainerUpdater, conf_file, **options) #012 File "/usr/local/lib/python2.7/site-packages/swift/common/daemon.py", line 110, in run_daemon #012 klass(conf).run(once=once, **kwargs) #012 File "/usr/local/lib/python2.7/site-packages/swift/common/daemon.py", line 57, in run #012 self.run_forever(**kwargs) #012 File "/usr/local/lib/python2.7/site-packages/swift/container/updater.py", line 143, in run_forever #012 self.container_sweep(path) #012 File "/usr/local/lib/python2.7/site-packages/swift/container/updater.py", line 198, in container_sweep #012 self.process_container(os.path.join(root, file)) #012 File "/usr/local/lib/python2.7/site-packages/swift/container/updater.py", line 238, in process_container #012 info['bytes_used']) #012 File "/usr/local/lib/python2.7/site-packages/swift/container/backend.py", line 355, in reported #012 ''', (put_timestamp, delete_timestamp, object_count, bytes_used)) #012 File "/usr/local/lib/python2.7/site-packages/swift/common/db.py", line 126, in execute #012 self.timeout, self.db_file, lambda: sqlite3.Cursor.execute( #012 File "/usr/local/lib/python2.7/site-packages/swift/common/db.py", line 64, in _db_timeout #012 return call() #012 File "/usr/local/lib/python2.7/site-packages/swift/common/db.py", line 127, in <lambda> #012 self, *args, **kwargs)) #012OperationalError: disk I/O error\0" (Slightly mangled, apologies, this is from ktrace output) Setting HAVE_POSIX_FALLOCATE=0 in configure eliminated the issue. I wish I could give more detail, sorry. Steve _______________________________________________ sqlite-users mailing list [email protected] http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

