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