ports/116383: sqlite3 (from databases/sqlite3) segfault
Michael Ekstrand
michael at elehack.net
Sat Sep 15 22:30:02 UTC 2007
>Number: 116383
>Category: ports
>Synopsis: sqlite3 (from databases/sqlite3) segfault
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat Sep 15 22:30:01 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator: Michael Ekstrand
>Release: FreeBSD 6.2-RELEASE i386
>Organization:
>Environment:
System: FreeBSD ahijah.elehack.net 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Jan 12 10:40:27 UTC 2007 root at dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
>Description:
The sqlite3 crashes with a segmentation fault when either creating a new database or attempting to load a database copied from my Debian laptop. Sample transcript:
michaelel at ahijah /var/www> sqlite3 comments.db "CREATE TABLE comments (page, name, email, url, body);"
zsh: segmentation fault (core dumped) sqlite3 comments.db "CREATE TABLE comments (page, name, email, url, body);"
A backtrace on the core dump follows:
#0 0x280dbac0 in sqlite3Fts2InitHashTable ()
from /usr/local/lib/libsqlite3.so.8
#1 0x280da3d6 in sqlite3Fts2Init () from /usr/local/lib/libsqlite3.so.8
#2 0x280a61ef in openDatabase () from /usr/local/lib/libsqlite3.so.8
#3 0x0804a7e3 in open_db ()
#4 0x0804cba3 in main ()
Output of strace follows:
execve(0xbfbfe6a0, [0xbfbfeb88], [/* 0 vars */]) = 0
mmap(0, 3904, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x28078000
munmap(0x28078000, 3904) = 0
__sysctl([...], 0x28074b58, 0xbfbfe924, NULL, 0) = 0
mmap(0, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0x28078000
issetugid(0) = 0
open("/etc/libmap.conf", O_RDONLY) = -1 ENOENT (No such file or directory)
access("/usr/local/lib/libsqlite3.so.8", F_OK) = 0
open("/usr/local/lib/libsqlite3.so.8", O_RDONLY) = 3
fstat(3, {st_mode=0, st_size=0, ...}) = 0
read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\f\265\0"..., 4096) = 4096
mmap(0, 421888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x28080000
mprotect(0x280e4000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mprotect(0x280e4000, 4096, PROT_READ|PROT_EXEC) = 0
mmap(0x280e5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x64000) = 0x280e5000
close(3) = 0
access("/usr/local/lib/libreadline.so.6", F_OK) = -1 ENOENT (No such file or directory)
open("/var/run/ld-elf.so.hints", O_RDONLY) = 3
read(3, "_NOW\0LD_TRACE_LOADED_OBJECTS\0LD_"..., 128) = 128
lseek(3, 128, SEEK_SET) = 128
read(3, "/lib:/usr/lib:/usr/lib/compat:/u"..., 136) = 136
close(3) = 0
access("/lib/libreadline.so.6", F_OK) = 0
open("/lib/libreadline.so.6", O_RDONLY) = 3
fstat(3, {st_mode=0, st_size=0, ...}) = 0
read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\324\255"..., 4096) = 4096
mmap(0, 184320, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x280e7000
mprotect(0x2810e000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mprotect(0x2810e000, 4096, PROT_READ|PROT_EXEC) = 0
mmap(0x2810f000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x27000) = 0x2810f000
close(3) = 0
access("/usr/local/lib/libm.so.4", F_OK) = -1 ENOENT (No such file or directory)
access("/lib/libm.so.4", F_OK) = 0
open("/lib/libm.so.4", O_RDONLY) = 3
fstat(3, {st_mode=0, st_size=0, ...}) = 0
read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\24$\0\000"..., 4096) = 4096
mmap(0, 90112, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x28114000
mprotect(0x28128000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mprotect(0x28128000, 4096, PROT_READ|PROT_EXEC) = 0
mmap(0x28129000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x15000) = 0x28129000
close(3) = 0
access("/usr/local/lib/libc.so.6", F_OK) = -1 ENOENT (No such file or directory)
access("/lib/libc.so.6", F_OK) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
fstat(3, {st_mode=0, st_size=0, ...}) = 0
read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\352"..., 4096) = 4096
mmap(0, 937984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x2812a000
mprotect(0x281f2000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mprotect(0x281f2000, 4096, PROT_READ|PROT_EXEC) = 0
mmap(0x281f3000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xc9000) = 0x281f3000
mmap(0x281f9000, 90112, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0x281f9000
close(3) = 0
access("/lib/libncurses.so.6", F_OK) = 0
open("/lib/libncurses.so.6", O_RDONLY) = 3
fstat(3, {st_mode=0, st_size=0, ...}) = 0
read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\335\0"..., 4096) = 4096
mmap(0, 258048, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x2820f000
mprotect(0x28244000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mprotect(0x28244000, 4096, PROT_READ|PROT_EXEC) = 0
mmap(0x28245000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x35000) = 0x28245000
close(3) = 0
sysarch(0xa, 0xbfbfe9a0) = 0
mmap(0, 632, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2824e000
munmap(0x2824e000, 632) = 0
mmap(0, 5488, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2824e000
munmap(0x2824e000, 5488) = 0
mmap(0, 5296, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2824e000
munmap(0x2824e000, 5296) = 0
mmap(0, 1856, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2824e000
munmap(0x2824e000, 1856) = 0
mmap(0, 22792, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2824e000
munmap(0x2824e000, 22792) = 0
mmap(0, 4616, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2824e000
munmap(0x2824e000, 4616) = 0
sigprocmask(SIG_BLOCK, ~[ILL TRAP ABRT EMT FPE BUS SEGV SYS], []) = 0
sigprocmask(SIG_SETMASK, [], NULL) = 0
ioctl(0, TIOCGETA, {0x280575fc /* B??? */ (in)0x28057664 /* B??? */ (out) -opost -isig -icanon -echo ...}) = 0
syscall_416(0x2, 0xbfbfe140, 0xbfbfe120) = 0
access("v(v(,w(pw(w(", F_OK) = 0
readlink("/etc/malloc.conf", 0xbfbfe050, 63) = -1 ENOENT (No such file or directory)
issetugid(0x3a45673) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0x2824e000
break(0x8052000) = 0
break(0x8053000) = 0
break(0x8054000) = 0
break(0x8055000) = 0
break(0x8056000) = 0
break(0x8058000) = 0
__getcwd("/var/www", 5000) = 0
open("/var/www/comments.db", O_RDWR|O_CREAT, 0644) = 3
fcntl(3, F_GETFD) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fstat(3, {st_mode=0, st_size=0, ...}) = 0
lseek(3, 0, SEEK_SET) = 0
read(3, "", 100) = 0
--- SIGSEGV (Segmentation fault: 11) ---
--- SIGSEGV (Segmentation fault: 11) ---
>How-To-Repeat:
Enter the above command (see transcript) on the command line. Alternatively, attempt to start sqlite3 with an existing zero-length database.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list