-----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