[Dovecot] Dovecot on Solaris 10 Segmentation Fault
Thomas
lists at buschor.ch
Wed Jan 22 17:21:49 EET 2014
Hello,
make check on Solaris 10 throws a segmentation fault.
The error is independent of the compiler (SunStudio/GCC) and processor
architecture (SPARC/x86) and 32 or 64 bit binary.
Dovecot Version: 2.2.10
OS: Solaris 10/SPARC & x86
SunStudion Compiler
cc: Sun C 5.10 SunOS_sparc Patch 141861-10 2012/11/07
GCC
gcc version 3.4.3 (csl-sol210-3_4-branch+sol_rpath)
The error occurs first in: src/lib-http/test-http-url
Line 317/318:
test_out(t_strdup_printf("url->user = %s", urlp->user),
urlp->user == urlt->user);
(if commenting out these lines, then it segfaults just in the next test)
%make check
<--- cut out lot of good output --->
http date invalid [42]: parse Sun Nov 6 08:49:37 0000 ............... : ok
http date invalid [42] ............................................... : ok
0 / 150 tests failed
http url valid [0]: http_url_parse(http://localhost) ................. : ok
http url valid [0]: url->host_name = localhost ....................... : ok
http url valid [0]: url->port = (unspecified) ........................ : ok
http url valid [0]: url->host_ip = (unspecified) ..................... : ok
/bin/bash: line 1: 28764 Segmentation Fault (core dumped) ./$bin
gmake[2]: *** [check-test] Error 1
gmake[2]: Leaving directory `/data/obj/dovecot-2.2.10/src/lib-http'
gmake[1]: *** [check-recursive] Error 1
gmake[1]: Leaving directory `/data/obj/dovecot-2.2.10/src'
gmake: *** [check-recursive] Error 1
% pstack /var/core/core.test-http-url.28764
core '/var/core/core.test-http-url.28764' of 28764: ./test-http-url
ff122d50 strlen (3365e, ffbff6fc, ffbfecf9, 0, 0, 0) + 50
ff191c3c vsnprintf (4a638, 10e, 33650, ffbff6f8, 7ffffc00, 2400) + 6c
0002be0c t_strdup_printf (4a638, 2340, 48118, 2e, 48110, e) + 6c
0001635c ???????? (0, 0, 47800, 335c4, 80000000, 40000000)
0001924c test_run (fffd3268, 2cc00, ffbff94c, 2380, 2000, 47e94) + 6c
00016008 _start (0, 0, 0, 0, 0, 0) + 108
% dbx test-http-url /var/core/core.test-http-url.28884
(dbx) examine
0xff122d5c: strlen+0x005c: 0x98132101
(dbx) regs
current frame: [1]
g0-g1 0x00000000 0x00000000 0x00000000 0x0004a638
g2-g3 0x00000000 0x0004a3bc 0x00000000 0x0004a3b8
g4-g5 0x00000000 0x0004a3c8 0x00000000 0x00000270
g6-g7 0x00000000 0x00000000 0x00000000 0xff272a00
o0-o1 0x00000000 0x00000000 0x00000000 0xfffffaf0
o2-o3 0x00000000 0x00000000 0x00000000 0xffbff798
o4-o5 0x00000000 0x00000000 0x00000000 0x0000002b
o6-o7 0x00000000 0xffbfe920 0x00000000 0xff18f498
l0-l1 0x00000000 0x00000073 0x00000000 0x00000000
l2-l3 0x00000000 0x00000000 0x00000000 0x00001000
l4-l5 0x00000000 0x00000000 0x00000000 0x00000000
l6-l7 0x00000000 0xff236c99 0x00000000 0x00000000
i0-i1 0x00000000 0x0003365e 0x00000000 0xffbff8dc
i2-i3 0x00000000 0xffbfeed9 0x00000000 0x00000000
i4-i5 0x00000000 0x00000000 0x00000000 0x00000000
i6-i7 0x00000000 0xffbff7b0 0x00000000 0xff191c3c
y 0x00000000 0x00000000
ccr 0x00000000 0xfe401005
pc 0x00000000 0xff122d50:strlen+0x50 ld [%o2], %o1
npc 0x00000000 0xff122d54:strlen+0x54 sethi %hi(0x1010000), %o4
(dbx) dis 0xff122d3c
0xff122d3c: strlen+0x003c: be,pn %icc,strlen+0xcc ! 0xff122dcc
0xff122d40: strlen+0x0040: btst 255, %o1
0xff122d44: strlen+0x0044: be,pn %icc,strlen+0xcc ! 0xff122dcc
0xff122d48: strlen+0x0048: inc %o2
0xff122d4c: strlen+0x004c: inc %o2
0xff122d50: strlen+0x0050: ld [%o2], %o1
0xff122d54: strlen+0x0054: sethi %hi(0x1010000), %o4
0xff122d58: strlen+0x0058: sethi %hi(0x80808000), %o5
0xff122d5c: strlen+0x005c: bset 257, %o4
0xff122d60: strlen+0x0060: bset 128, %o5
% truss -f ./test-http-url
<--- cut out the beginning of output --->
28884: open("/platform/SUNW,SPARC-Enterprise-T5220/lib/libc_psr.so.1",
O_RDONLY) = 3
28884: mmap(0x00010000, 9244, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFF0E0000
28884: munmap(0xFF0E2000, 1052) = 0
28884: close(3) = 0
28884: getpid() = 28884 [28883]
28884: brk(0x0004A3A8) = 0
28884: brk(0x000543A8) = 0
28884: sysinfo(SI_HOSTNAME, "badile", 255) = 7
28884: getpid() = 28884 [28883]
28884: ioctl(1, TCGETA, 0xFFBFF664) = 0
28884: fstat64(1, 0xFFBFF580) = 0
http url valid [0]28884: write(1, " h t t p u r l v a l"..,
18) = 18
: http_url_parse(http://localhost)28884: write(1, " : h t t p _
u r l _ p".., 34) = 34
................. : ok
28884: write(1, " . . . . . . . . . . .".., 24) = 24
http url valid [0]28884: write(1, " h t t p u r l v a l"..,
18) = 18
: url->host_name = localhost28884: write(1, " : u r l - > h o s t
_".., 28) = 28
....................... : ok
28884: write(1, " . . . . . . . . . . .".., 30) = 30
http url valid [0]28884: write(1, " h t t p u r l v a l"..,
18) = 18
: url->port = (unspecified)28884: write(1, " : u r l - > p o r t
".., 27) = 27
........................ : ok
28884: write(1, " . . . . . . . . . . .".., 31) = 31
http url valid [0]28884: write(1, " h t t p u r l v a l"..,
18) = 18
: url->host_ip = (unspecified)28884: write(1, " : u r l - > h o s t
_".., 30) = 30
..................... : ok
28884: write(1, " . . . . . . . . . . .".., 28) = 28
28884: Incurred fault #6, FLTBOUNDS %pc = 0xFF122D50
28884: siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
28884: Received signal #11, SIGSEGV [default]
28884: siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
% apptrace -f ./test-http-url
<--- cut out the beginning of output --->
28897:-> test-http-url -> libc.so.1:int fputs(const char * = 0x33618
"url->host_ip = (unspecified)", FILE * = 0xfef2759c)
: url->host_ip = (unspecified) 28897:<- test-http-url ->
libc.so.1:fputs() = 0x1c
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x20, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x20
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0x2e, FILE * =
0xfef2759c)
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0x2e
28897:-> test-http-url -> libc.so.1:size_t fwrite(const void * =
0x33e28, size_t = 0x1, size_t = 0x3, FILE * = 0xfef2759c)
28897:<- test-http-url -> libc.so.1:fwrite() = 0x3
28897:-> test-http-url -> libc.so.1:size_t fwrite(const void * =
0x33e2c, size_t = 0x1, size_t = 0x2, FILE * = 0xfef2759c)
28897:<- test-http-url -> libc.so.1:fwrite() = 0x2
28897:-> test-http-url -> libc.so.1:int __flsbuf(int = 0xa, FILE * =
0xfef2759c)
..................... : ok
28897:<- test-http-url -> libc.so.1:__flsbuf() = 0xa
28897:-> test-http-url -> libc.so.1:int vsnprintf(char * = 0x4a638 "",
size_t = 0x10e, const char * = 0x33650 "url->user = %s", va_list =
0xffbff998)
apptrace: ./test-http-url: Segmentation Fault(Core dump)
Any help about this?
Cheers
Thomas
More information about the dovecot
mailing list