On AIX, you might want to open the files using  O_DSYNC flag: (see)
http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/basetrf1/open.htm#HDRA1509805

Test results:
Opening for rdonly
kwrite(1, 0xF0373B18, 19)                       = 19
open("/home/ixion/T", O_RDONLY|O_LARGEFILE)     = 3
fsync(3)                                        Err#9  EBADF
close(3)                                        = 0

Opening for rdw
kwrite(1, 0xF0373B18, 16)                       = 16
open("/home/ixion/T", O_RDWR|O_LARGEFILE)       Err#21 EISDIR
close(-1)                                       Err#9  EBADF
kfcntl(1, F_GETFL, 0x20000BC8)                  = 2
kfcntl(2, F_GETFL, 0xF0373B18)                  = 2

Dan,
If you want any other quick tests cases run, let me know and I'll put them 
together.

Thanks,
Ken



Ken <[EMAIL PROTECTED]> wrote: Dan,
I'll test this with a quick bit of C code and get back to you with the truss 
output.

Good catch Roger!  ( and thanks)

Thanks,
Ken


Dan  wrote: 
On Jul 15, 2008, at 9:00 AM, Roger Binns wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Ken wrote:
>
>> open("/home/ixion/ix_propagator/data/db/ajax102/batch", O_RDONLY| 
>> O_LARGEFILE) = 10
>> kfcntl(10, F_GETFD, 0x00000000)                 = 0
>> kfcntl(10, F_SETFD, 0x00000001)                 = 0
>> fsync(10)                                       Err#9  EBADF
>
> My best guess is that the call is rejected is because the directory  
> was
> not opened for writing.
> http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/ 
> basetrf1/fsync.htm
>
> In the error code section:
>
> EBADF  The FileDescriptor parameter is not a valid file descriptor  
> open
> for writing.
>
> (I doubt there is an modern UNIX that does allow opening  
> directories for
> write though).

Ah... Quite possibly. In os_unix.c directories are opened with:

   fd = open(zDirname, O_RDONLY|O_BINARY, 0);


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users



Ken <[EMAIL PROTECTED]> wrote: Dan,
I'll test this with a quick bit of C code and get back to you with the truss 
output.

Good catch Roger!  ( and thanks)

Thanks,
Ken


Dan  wrote: 
On Jul 15, 2008, at 9:00 AM, Roger Binns wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Ken wrote:
>
>> open("/home/ixion/ix_propagator/data/db/ajax102/batch", O_RDONLY| 
>> O_LARGEFILE) = 10
>> kfcntl(10, F_GETFD, 0x00000000)                 = 0
>> kfcntl(10, F_SETFD, 0x00000001)                 = 0
>> fsync(10)                                       Err#9  EBADF
>
> My best guess is that the call is rejected is because the directory  
> was
> not opened for writing.
> http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/ 
> basetrf1/fsync.htm
>
> In the error code section:
>
> EBADF  The FileDescriptor parameter is not a valid file descriptor  
> open
> for writing.
>
> (I doubt there is an modern UNIX that does allow opening  
> directories for
> write though).

Ah... Quite possibly. In os_unix.c directories are opened with:

   fd = open(zDirname, O_RDONLY|O_BINARY, 0);


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to