The following issue has been SUBMITTED.
======================================================================
http://dbmail.org/mantis/view.php?id=994
======================================================================
Reported By: LordVan
Assigned To:
======================================================================
Project: DBMail
Issue ID: 994
Category: Command-Line programs (dbmail-users, dbmail-util)
Reproducibility: have not tried
Severity: crash
Priority: normal
Status: new
target:
======================================================================
Date Submitted: 04-Dec-12 00:23 CET
Last Modified: 04-Dec-12 00:23 CET
======================================================================
Summary: dbmail-util segfaults without proper error message
when library_directory is set incorrectly
Description:
dbmail-util segfaults without proper error message when library_directory
is set incorrectly.
While setting up dbmail 3.0.2 on a seperate machine to test update from
2.2.17 before doing it on production I forgot to fix my library_path and
then when dbmail_util started just segfaulting I was wondering for a while
what was going on.
strace revealed the problem then:
recvfrom(3, "C\0\0\0\10SET\0Z\0\0\0\5I", 16384, 0, NULL, NULL) = 15
write(1, "Opening connection to authentica"..., 40Opening connection to
authentication... ) = 40
write(1, "\n", 1
) = 1
stat("libauth_sql.so", 0x7fff3ce90300) = -1 ENOENT (No such file or
directory)
stat("libauth_sql.so.so", 0x7fff3ce90300) = -1 ENOENT (No such file or
directory)
stat("libauth_sql.so.la", 0x7fff3ce90300) = -1 ENOENT (No such file or
directory)
futex(0x7f3b755650e0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/etc/ld.so.cache", O_RDONLY) = 8
fstat(8, {st_mode=S_IFREG|0644, st_size=352645, ...}) = 0
mmap(NULL, 352645, PROT_READ, MAP_PRIVATE, 8, 0) = 0x7f3b78cf7000
close(8) = 0
open("/lib64/tls/x86_64/libauth_sql.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat("/lib64/tls/x86_64", 0x7fff3ce8fa90) = -1 ENOENT (No such file or
directory)
open("/lib64/tls/libauth_sql.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat("/lib64/tls", 0x7fff3ce8fa90) = -1 ENOENT (No such file or
directory)
open("/lib64/x86_64/libauth_sql.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat("/lib64/x86_64", 0x7fff3ce8fa90) = -1 ENOENT (No such file or
directory)
open("/lib64/libauth_sql.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat("/lib64", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
open("/usr/lib64/tls/x86_64/libauth_sql.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat("/usr/lib64/tls/x86_64", 0x7fff3ce8fa90) = -1 ENOENT (No such file or
directory)
open("/usr/lib64/tls/libauth_sql.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat("/usr/lib64/tls", 0x7fff3ce8fa90) = -1 ENOENT (No such file or
directory)
open("/usr/lib64/x86_64/libauth_sql.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat("/usr/lib64/x86_64", 0x7fff3ce8fa90) = -1 ENOENT (No such file or
directory)
open("/usr/lib64/libauth_sql.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat("/usr/lib64", {st_mode=S_IFDIR|0755, st_size=274432, ...}) = 0
munmap(0x7f3b78cf7000, 352645) = 0
stat("libauth_sql.so", 0x7fff3ce90300) = -1 ENOENT (No such file or
directory)
stat("libauth_sql.so.so", 0x7fff3ce90300) = -1 ENOENT (No such file or
directory)
stat("libauth_sql.so.la", 0x7fff3ce90300) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 8
fstat(8, {st_mode=S_IFREG|0644, st_size=352645, ...}) = 0
mmap(NULL, 352645, PROT_READ, MAP_PRIVATE, 8, 0) = 0x7f3b78cf7000
close(8) = 0
open("/lib64/libauth_sql.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib64/libauth_sql.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
munmap(0x7f3b78cf7000, 352645) = 0
--- {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xffffffff}
(Segmentation fault) ---
+++ killed by SIGSEGV +++
Speicherzugriffsfehler
While it is fine to fail it should probably just spit out some error about
not finding the libraries instead of a segfault - I recon someone who is
not used to debugging programs would not find this that quickly).
on a sidenote: the dbmail-daemons also fail with a - not very helpful
message in dbmail.err (default logging level):
Dec 03 23:23:57 Desktop64X3 dbmail-lmtpd[16023]: [0x1e58a40]
EMERGENCY:[db] check_table_exists(+803): 3.x database incompatible - single
instance header storage missing.
Dec 03 23:23:57 Desktop64X3 dbmail-imapd[16038]: [0x1c53a40]
EMERGENCY:[db] check_table_exists(+803): 3.x database incompatible - single
instance header storage missing.
Dec 03 23:23:57 Desktop64X3 dbmail-pop3d[16051]: [0xa1da40] EMERGENCY:[db]
check_table_exists(+803): 3.x database incompatible - single instance
header storage missing.
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
04-Dec-12 00:23 LordVan New Issue
======================================================================
_______________________________________________
Dbmail-dev mailing list
[email protected]
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev