Preprocessor Macro:
           #if  defined (_AIX)

Looks like the MJ file is not getting created, sqlite 3.5.9 This is also 
reproducible via the command line: Possibly an issue with the journal mode code 
that was introduced.


SQLite version 3.5.9
Enter ".help" for instructions
sqlite> attach database '../db/ixp_15a6.db' as m;
sqlite> begin immediate;
sqlite> commit;
SQL error: disk I/O error

Truss output for "Begin immediate":
kread(0, 0xF036FAF0, 4096)      (sleeping...)
kread(0, 0xF036FAF0, 4096)                      = 17
kfcntl(3, 12, 0x2FF21168)                       = 0
kfcntl(3, 12, 0x2FF21168)                       = 0
kfcntl(3, 12, 0x2FF21168)                       = 0
access("/home/ixion/ix_propagator/data/db/ajax102/batch/bat_28.db-journal", 0) 
Err#2  ENOENT
fstatx(3, 0x2FF210D0, 128, 010)                 = 0
klseek(3, 0, 24, 0x00000000)                    = 0
kread(3, "\0\0\0\n\0\0\0\0\0\0\0\0".., 16)      = 16
kfcntl(3, 12, 0x2FF21388)                       = 0
open("/home/ixion/ix_propagator/data/db/ajax102/batch/bat_28.db-journal", 
O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE) = 5
open("/home/ixion/ix_propagator/data/db/ajax102/batch", O_RDONLY|O_LARGEFILE) = 
6
kfcntl(6, F_GETFD, 0x00000000)                  = 0
kfcntl(6, F_SETFD, 0x00000001)                  = 0
kfcntl(5, F_GETFD, 0x00000000)                  = 0
kfcntl(5, F_SETFD, 0x00000001)                  = 0
fstatx(5, 0x2FF211E0, 128, 010)                 = 0
klseek(5, 0, 0, 0x00000000)                     = 0
kwrite(5, " � �05 �   � c �\0\0\0\0".., 512) 
   = 512
kfcntl(4, 12, 0x2FF21168)                       = 0
kfcntl(4, 12, 0x2FF21168)                       = 0
kfcntl(4, 12, 0x2FF21168)                       = 0
access("/home/ixion/ix_propagator/data/db/ajax102/batch/../db/ixp_15a6.db-journal",
 0) Err#2  ENOENT
fstatx(4, 0x2FF210D0, 128, 010)                 = 0
klseek(4, 0, 24, 0x00000000)                    = 0
kread(4, "\0\0\0\t\0\0\0\0\0\0\0\0".., 16)      = 16
kfcntl(4, 12, 0x2FF21388)                       = 0
open("/home/ixion/ix_propagator/data/db/ajax102/batch/../db/ixp_15a6.db-journal",
 O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE) = 7
open("/home/ixion/ix_propagator/data/db/ajax102/batch/../db", 
O_RDONLY|O_LARGEFILE) = 8
kfcntl(8, F_GETFD, 0x00000000)                  = 0
kfcntl(8, F_SETFD, 0x00000001)                  = 0
kfcntl(7, F_GETFD, 0x00000000)                  = 0
kfcntl(7, F_SETFD, 0x00000001)                  = 0
fstatx(7, 0x2FF211E0, 128, 010)                 = 0
klseek(7, 0, 0, 0x00000000)                     = 0
kwrite(7, " � �05 �   � c �\0\0\0\0".., 512) 
   = 512
kfcntl(1, F_GETFL, 0x20002398)                  = 2
kwrite(1, 0xF0373B18, 8)                        = 8
kfcntl(1, F_GETFL, 0x20002398)                  = 2
kread(0, 0xF036FAF0, 4096)                      = 1
yield()                                         =
kread(0, 0xF036FAF0, 4096)      (sleeping...)


===================================    
Truss output for the commit:

 kread(0, 0xF036FAF0, 4096)      (sleeping...)
kread(0, 0xF036FAF0, 4096)                      = 8
access("/home/ixion/ix_propagator/data/db/ajax102/batch/bat_28.db-mj7DF9F4DF", 
0) Err#2  ENOENT
open("/home/ixion/ix_propagator/data/db/ajax102/batch/bat_28.db-mj7DF9F4DF", 
O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE) = 9
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
kfcntl(9, F_GETFD, 0x00000000)                  = 0
kfcntl(9, F_SETFD, 0x00000001)                  = 0
fstatx(9, 0x2FF21170, 128, 010)                 = 0
klseek(9, 0, 0, 0x00000000)                     = 0
kwrite(9, " / h o m e / i x i o n /".., 66)     = 66
klseek(9, 0, 66, 0x00000000)                    = 0
kwrite(9, " / h o m e / i x i o n /".., 74)     = 74
fsync(9)                                        = 0
fsync(10)                                       Err#9  EBADF
close(10)                                       = 0
close(9)                                        = 0
unlink("/home/ixion/ix_propagator/data/db/ajax102/batch/bat_28.db-mj7DF9F4DF") 
= 0
open("/home/ixion/ix_propagator/data/db/ajax102/batch", O_RDONLY|O_LARGEFILE) = 
9
kfcntl(9, F_GETFD, 0x00000000)                  = 0
kfcntl(9, F_SETFD, 0x00000001)                  = 0
fsync(9)                                        Err#9  EBADF
close(9)                                        = 0
close(6)                                        = 0
close(5)                                        = 0
unlink("/home/ixion/ix_propagator/data/db/ajax102/batch/bat_28.db-journal") = 0
kfcntl(3, 12, 0x2FF211F0)                       = 0
kfcntl(3, 12, 0x2FF211F0)                       = 0
kfcntl(3, 12, 0x2FF210F0)                       = 0
close(8)                                        = 0
close(7)                                        = 0
unlink("/home/ixion/ix_propagator/data/db/ajax102/batch/../db/ixp_15a6.db-journal")
 = 0
kfcntl(4, 12, 0x2FF211F0)                       = 0
kfcntl(4, 12, 0x2FF211F0)                       = 0
kfcntl(4, 12, 0x2FF210F0)                       = 0
kwrite(1, 0xF0373B18, 26)                       = 26
kfcntl(1, F_GETFL, 0x20002398)                  = 2
kwrite(1, 0xF0373B18, 8)                        = 8
kfcntl(1, F_GETFL, 0x20002398)                  = 2
kread(0, 0xF036FAF0, 4096)                      = 1



"D. Richard Hipp" <[EMAIL PROTECTED]> wrote: 
On Jul 14, 2008, at 1:31 PM, Ken wrote:

> sqlite 3.5.9 and AIX 5.3
>
> Upon commit  of a main DB with an attached DB sqlite returns (1290)  
> 0x50A   SQLITE_IOERR_DIR_FSYNC
>
>
> what would cause this? Any ideas on how to resolve?


SQLite is attempting to fsync() a directory after unlinking the master  
journal file from that directory.  Apparently AIX does not like you to  
call fsync() on a directory.  Can you provide us more information on  
the capabilities and limitations of AIX in the area of fsync() so that  
we can try to figure out what it expects?  Perhaps also provide us  
with a C preprocessor macro that we can use to conditionally compile  
for AIX.


D. Richard Hipp
[EMAIL PROTECTED]






"D. Richard Hipp" <[EMAIL PROTECTED]> wrote: 
On Jul 14, 2008, at 1:31 PM, Ken wrote:

> sqlite 3.5.9 and AIX 5.3
>
> Upon commit  of a main DB with an attached DB sqlite returns (1290)  
> 0x50A   SQLITE_IOERR_DIR_FSYNC
>
>
> what would cause this? Any ideas on how to resolve?


SQLite is attempting to fsync() a directory after unlinking the master  
journal file from that directory.  Apparently AIX does not like you to  
call fsync() on a directory.  Can you provide us more information on  
the capabilities and limitations of AIX in the area of fsync() so that  
we can try to figure out what it expects?  Perhaps also provide us  
with a C preprocessor macro that we can use to conditionally compile  
for AIX.


D. Richard Hipp
[EMAIL PROTECTED]







"D. Richard Hipp" <[EMAIL PROTECTED]> wrote: 
On Jul 14, 2008, at 1:31 PM, Ken wrote:

> sqlite 3.5.9 and AIX 5.3
>
> Upon commit  of a main DB with an attached DB sqlite returns (1290)  
> 0x50A   SQLITE_IOERR_DIR_FSYNC
>
>
> what would cause this? Any ideas on how to resolve?


SQLite is attempting to fsync() a directory after unlinking the master  
journal file from that directory.  Apparently AIX does not like you to  
call fsync() on a directory.  Can you provide us more information on  
the capabilities and limitations of AIX in the area of fsync() so that  
we can try to figure out what it expects?  Perhaps also provide us  
with a C preprocessor macro that we can use to conditionally compile  
for AIX.


D. Richard Hipp
[EMAIL PROTECTED]




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

Reply via email to