Index: src/os_unix.c ================================================================== --- src/os_unix.c +++ src/os_unix.c @@ -1037,10 +1037,15 @@ sqlite3OsEnterMutex(); pLock = id->pLock; assert( pLock->cnt!=0 ); if( id->locktype>SHARED_LOCK ){ assert( pLock->locktype==id->locktype ); + lock.l_type = F_RDLCK; + lock.l_whence = SEEK_SET; + lock.l_start = SHARED_FIRST; + lock.l_len = SHARED_SIZE; + fcntl(id->h, F_SETLK, &lock); lock.l_type = F_UNLCK; lock.l_whence = SEEK_SET; lock.l_start = PENDING_BYTE; lock.l_len = 2L; assert( PENDING_BYTE+1==RESERVED_BYTE ); fcntl(id->h, F_SETLK, &lock);