On 04/24/2013 04:41 PM, Richard Hipp wrote: > On Wed, Apr 24, 2013 at 10:28 AM, Sašo Kiselkov <skiselkov...@gmail.com>wrote: > >> On 04/24/2013 03:57 PM, Richard Hipp wrote: >>> On Wed, Apr 24, 2013 at 8:28 AM, Sašo Kiselkov <skiselkov...@gmail.com >>> wrote: >>> >>>> I'm running into I/O errors when trying to access a sqlite3 database >>>> which is using WAL from my app. While using journal_mode=delete, >>>> everything is fine, but as soon as I switch over to journal_mode=wal, I >>>> just get a load of I/O errors on any query, regardless if it is a SELECT >>>> or UPDATE/INSERT. >>>> >>> >>> >>> Can you please turn on error logging (as described at >>> http://www.sqlite.org/draft/errlog.html) and let us know more details >> about >>> the I/O error you are seeing? >> >> Here's my error log: >> >> #4874: os_unix.c:27116: (22) fallocate(/root/test/idx/block.db-shm) - >> Invalid argument >> > > So apparently, the call to fallocate() on the file > /root/test/idx/block.db-shm is failing with errno==22. Do you have any > idea why that might be? > > Can you tell me exactly which version of SQLite you are using so that I can > figure out what line 27116 says? Or maybe look at line 27116 of sqlite3.c > yourself and let us know which line of code the error is occurring on?
I'm running sqlite-autoconf-3071602, here's the relevant bits of code from sqlite3.c: if( sStat.st_size<nByte ){ /* The requested memory region does not exist. If bExtend is set to ** false, exit early. *pp will be set to NULL and SQLITE_OK returned. ** ** Alternatively, if bExtend is true, use ftruncate() to allocate ** the requested memory region. */ if( !bExtend ) goto shmpage_out; #if defined(HAVE_POSIX_FALLOCATE) && HAVE_POSIX_FALLOCATE if( osFallocate(pShmNode->h, sStat.st_size, nByte)!=0 ){ rc = unixLogError(SQLITE_IOERR_SHMSIZE, "fallocate", pShmNode->zFilename); goto shmpage_out; } #else if( robust_ftruncate(pShmNode->h, nByte) ){ rc = unixLogError(SQLITE_IOERR_SHMSIZE, "ftruncate", pShmNode->zFilename); goto shmpage_out; } #endif } Cheers, -- Saso _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users