-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 6/28/2014 1:24 PM, HeadshotX wrote:
> On 6/27/2014 5:56 PM, Alexander Strobel wrote:
>> Problem: I am getting the following error message when I try to 
>> open a repo wich lies in a shared folder of Oracles VirtualBox: 
>> [somelocaldir]$ fossil open ../geelaunch.fossil SQLITE_IOERR: 
>> os_unix.c:29821: (22) 
>> fsync(/media/sf_Projects/geelaunch_working/../geelaunch.fossil-mjC43B7293F)
>>
>> 
- - Invalid argument fossil: disk I/O error: {COMMIT}
> 
> Is there any chance that it will work like I tried it first?

SQLite is quite strict with the filesystem, and it needs it to work as
advertised, for example with syncing and file locking.  VirtualBox is
just not there yet.  Go bug them.  Give them a tiny test case, a
sequence of commands to create a repository and try to open it.

Actually, I just reproduced it here using Oracle VirtualBox 4.3.12
r93733 running on 64-bit Windows 7 (Pro, as if that matters).  Just
include this email in your report.  Here's the sequence:

1. Download Fossil version 1.29 to the host desktop.
2. Unpack the archive to get fossil.exe.
3. Start cmd.exe, cd to desktop, and run "fossil new crash.fossil".
4. Start a guest OS (using Slackware64 14.1) in VirtualBox.
5. Install Fossil in the guest OS using any method.
6. Mount the desktop via a VirtualBox share, e.g. to /mnt.
7. Run "fossil open /mnt/crash.fossil".

Error message is:

SQLITE_IOERR: os_unix.c:29821: (22)
fsync(/mnt/crash.fossil-mj698EA9932) - Invalid argument
fossil: disk I/O error: {COMMIT}

(line number may vary since I'm using Fossil 2e51be8ec2 in the guest)

Here's the failing function.  The error is printed on line 29821, which
says unixLogError(SQLITE_IOERR_DELETE, "fsync", zPath).  Perhaps you
could try recompiling Fossil with SQLITE_DISABLE_DIRSYNC, though I'm
sure you will have other problems, e.g. database corruption.

/*
** Delete the file at zPath. If the dirSync argument is true, fsync()
** the directory after deleting the file.
*/
static int unixDelete(
  sqlite3_vfs *NotUsed,     /* VFS containing this as the xDelete
method */
  const char *zPath,        /* Name of file to be deleted */
  int dirSync               /* If true, fsync() directory after
deleting file */
){
  int rc = SQLITE_OK;
  UNUSED_PARAMETER(NotUsed);
  SimulateIOError(return SQLITE_IOERR_DELETE);
  if( osUnlink(zPath)==(-1) ){
    if( errno==ENOENT ){
      rc = SQLITE_IOERR_DELETE_NOENT;
    }else{
      rc = unixLogError(SQLITE_IOERR_DELETE, "unlink", zPath);
    }
    return rc;
  }
#ifndef SQLITE_DISABLE_DIRSYNC
  if( (dirSync & 1)!=0 ){
    int fd;
    rc = osOpenDirectory(zPath, &fd);
    if( rc==SQLITE_OK ){
#if OS_VXWORKS
      if( fsync(fd)==-1 )
#else
      if( fsync(fd) )
#endif
      {
        rc = unixLogError(SQLITE_IOERR_DIR_FSYNC, "fsync", zPath);
      }
      robust_close(0, fd, __LINE__);
    }else if( rc==SQLITE_CANTOPEN ){
      rc = SQLITE_OK;
    }
  }
#endif
  return rc;
}

- -- 
Andy Goth | <andrew.m.goth/at/gmail/dot/com>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJTrw9vAAoJELtYwrrr47Y4zBYH/33YGML0DtTSaVnNsaatW3el
zjnFj8CwjYmsxlV9mrmbbw0gS/se0eHr/aMPF1XygS6oCZWEDwBsHaplvLldbkJB
XTJHbAbFUNizD4xaM3sKb28nexNjLQ4fp/Ks0dn9IdHU7u5N3ObWTucz0QFBeoEA
FLDz4hGnhZFD4BBstlllOYXzttL/MbnNH/6qDzGarOK+WzlVJoTjNmkOBRJCWMs7
17NH0W4YOcG2j2KM2U8QSDo1QkX3wO+UDiB9crNQRzc1HU+D9puNrbUPYqt/fMws
zwOwOSlMlVoxCQikqYaH1Qs6CgEOI+ftQ1FJD4/c7cgiI2PB7GYAQ+quryYj8jk=
=lfYj
-----END PGP SIGNATURE-----
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to