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

Reply via email to