On Fri, Apr 15, 2011 at 07:45:58AM -0400, Richard Hipp wrote:
> Can you recompile with all optimization turned off and let us know if that
> changes anything. If you are still crashing, perhaps the backtrace will
> provide better information.
I've added -O0 to the flags and removed -O2.
Now, sqlite3 just exits after the first entered line without creating the db.
#
/scratch/databases/sqlite3-3.7.6.1/work/sqlite-autoconf-3070601/.libs/sqlite3
new
SQLite version 3.7.6.1
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> pragma user_version = 1;
#
In gdb started in /tmp, this looks like this:
(gdb) c
Continuing.
SQLite version 3.7.6.1
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> pragma user_version = 1;
Breakpoint 9, robust_open (z=0x7f7ff7b68e28 "/tmp/new", f=514, m=420) at
sqlite3.c:24590
24590 do{ rc = osOpen(z,f,m); }while( rc<0 && errno==EINTR );
(gdb) l
24585 /*
24586 ** Retry open() calls that fail due to EINTR
24587 */
24588 static int robust_open(const char *z, int f, int m){
24589 int rc;
24590 do{ rc = osOpen(z,f,m); }while( rc<0 && errno==EINTR );
24591 return rc;
24592 }
24593
24594 /*
(gdb) s
open (path=0x7f7ff7b68e28 "/tmp/new", flags=514) at
/archive/cvs/src/lib/libpthread/pthread_cancelstub.c:367
367 /archive/cvs/src/lib/libpthread/pthread_cancelstub.c: No such file or
directory.
in /archive/cvs/src/lib/libpthread/pthread_cancelstub.c
(gdb) n
write (d=6295368, buf=0x7f7ff7b68e28, nbytes=<value optimized out>) at
/archive/cvs/src/lib/libpthread/pthread_cancelstub.c:566
566 in /archive/cvs/src/lib/libpthread/pthread_cancelstub.c
(gdb) n
Program exited normally.
/archive/cvs/src/lib/libpthread/pthread_cancelstub.c:367 is
int
open(const char *path, int flags, ...)
{
int retval;
pthread_t self;
va_list ap;
self = pthread__self();
TESTCANCEL(self);
va_start(ap, flags);
retval = _sys_open(path, flags, va_arg(ap, mode_t));
va_end(ap);
TESTCANCEL(self);
return retval;
}
/archive/cvs/src/lib/libpthread/pthread_cancelstub.c:566 is the second
TESTCANCEL in:
ssize_t
write(int d, const void *buf, size_t nbytes)
{
ssize_t retval;
pthread_t self;
self = pthread__self();
TESTCANCEL(self);
retval = _sys_write(d, buf, nbytes);
TESTCANCEL(self);
return retval;
}
Thomas
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users