Bug 182843 - net-im/jabber crashes when compiled with clang 3.3
Summary: net-im/jabber crashes when compiled with clang 3.3
Status: Closed Feedback Timeout
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-09 01:00 UTC by Alex
Modified: 2014-08-11 10:12 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alex 2013-10-09 01:00:00 UTC
Hi Guys,

Posted this to the freebsd-general mailing list. As I have heard nothing, I thought it would be appropriate to file a PR.

There seems to be an issue that has cropped up since upgrading from 9.1-RELEASE (amd64) to 9.2-RELEASE (amd64)), in that a port (net-im/jabber) crashes frequently with signal 10 errors frequently (bus error) when built with the version of Clang shipped in 9.2-RELEASE.

-----------
pid 1880 (jabberd14), uid 93: exited on signal 10
pid 8368 (jabberd14), uid 93: exited on signal 10
pid 8586 (jabberd14), uid 93: exited on signal 10
pid 9100 (jabberd14), uid 93: exited on signal 10
pid 9198 (jabberd14), uid 93: exited on signal 10
pid 9314 (jabberd14), uid 93: exited on signal 10
pid 24565 (jabberd14), uid 93: exited on signal 10
----------

I have recompiled this port without Clang (using the base gcc compiler) and it has not crashed once since (sig 10 bus error crashes are gone). Funnily enough, in FreeBSD 9.1-RELEASE, the same port compiled with Clang 3.1 did not crash ever. So it is a reasonable assumption that the issue has to be related to Clang 3.3.

I have the following in my /etc/make.conf (for clang building):

root@srv:~ # cat /etc/make.conf
NO_PROFILE=true
CC=clang
CXX=clang++
CPP=clang-cpp

Whilst building the port with the base compiler is a workaround, it's not a long term solution, since Clang will be the default Compiler in the not so distant future.

It appears there is no maintainer for this port?

Software= jabber-1.6.1.1_13,1
MAINTAINER=     ports@FreeBSD.org
COMMENT=        XMPP/Jabber server daemon

I assume the above email is just a generic email address for ports who do not have a maintainer? I suspect the issue to be compiler specific.

How-To-Repeat: Build the net-im/jabber port using clang. I have the following options enabled for the port 'config':

* ipv6
* MySQL

So some basic configuration so that the software will run.

Crashes can be observed anywhere from 5-10 minutes after starting the software or maybe even 2 hours later. There is no specific event in any log that seems to lead to the crash, it appears to be entirely random.
Comment 1 Alex 2013-10-09 02:24:26 UTC
Have run the program in gdb with debugging symbols:

---------------

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 804407400 (LWP 100136/jabberd14)]
0x0000000804a3ef6d in mod_privacy_end_session (m=0x8047b0e68, arg=0x0) 
at mod_privacy.cc:1522
1522        mod_privacy_free_current_list_definitions(m->s);


---------- bt --------------
(gdb) bt
#0  0x0000000804a3ef6d in mod_privacy_end_session (m=0x8047b0e68, 
arg=0x0) at mod_privacy.cc:1522
#1  0x0000000804a29ae3 in js_mapi_call2 (si=0x8044dd480, e=2, 
packet=0x0, user=0x8047f2140, s=0x8045c3800, serialization_node=0x0) at 
modules.cc:226
#2  0x0000000804a2995d in js_mapi_call (si=0x0, e=2, packet=0x0, 
user=0x8047f2140, s=0x8045c3800) at modules.cc:177
#3  0x0000000804a2b28c in _js_session_end (arg=0x8045c3800) at 
sessions.cc:625
#4  0x0000000800874dc5 in mtq_main (arg=0x80451b9a0) at mtq.cc:208
#5  0x0000000802a502fb in pth_spawn_trampoline () from 
/usr/local/lib/pth/libpth.so.20
#6  0x0000000803d91e49 in makecontext () from /lib/libc.so.7

----------- bt full --------------
(gdb) bt full
#0  0x0000000804a3ef6d in mod_privacy_end_session (m=0x8047b0e68, 
arg=0x0) at mod_privacy.cc:1522
No locals.
#1  0x0000000804a29ae3 in js_mapi_call2 (si=0x8044dd480, e=2, 
packet=0x0, user=0x8047f2140, s=0x8045c3800, serialization_node=0x0) at 
modules.cc:226
         l = 0x8045c3cb8
         m = {si = 0x8044dd480, packet = 0x0, e = 2, user = 0x8047f2140, 
s = 0x8045c3800, serialization_node = 0x0, additional_result = 0x0}
#2  0x0000000804a2995d in js_mapi_call (si=0x0, e=2, packet=0x0, 
user=0x8047f2140, s=0x8045c3800) at modules.cc:177
No locals.
#3  0x0000000804a2b28c in _js_session_end (arg=0x8045c3800) at 
sessions.cc:625
         s = 0x8045c3800
#4  0x0000000800874dc5 in mtq_main (arg=0x80451b9a0) at mtq.cc:208
         t = 0x80451b9a0
         mpevt = 0x80454f830
         c = 0x8045c4570
#5  0x0000000802a502fb in pth_spawn_trampoline () from 
/usr/local/lib/pth/libpth.so.20
No symbol table info available.
#6  0x0000000803d91e49 in makecontext () from /lib/libc.so.7
No symbol table info available.
#7  0x0000000000000000 in ?? ()
No symbol table info available.

------------- info registers ---------------

(gdb) info registers
rax            0x0      0
rbx            0x0      0
rcx            0x8047f34c0      34435183808
rdx            0x0      0
rsi            0x0      0
rdi            0x804a4f33d      34437657405
rbp            0x8047b0e40      0x8047b0e40
rsp            0x8047b0e20      0x8047b0e20
r8             0x8045c3800      34432890880
r9             0x0      0
r10            0x2601   9729
r11            0x80472ac48      34434362440
r12            0x8047a1000      34434846720
r13            0x804407c00      34431073280
r14            0x80441d9a0      34431162784
r15            0x8047b1000      34434912256
rip            0x804a3ef6d      0x804a3ef6d 
<mod_privacy_end_session(mapi_struct*, void*)+29>
eflags         0x10202  66050
cs             0x43     67
ss             0x3b     59
ds             0x0      0
es             0x0      0
fs             0x0      0
gs             0x0      0

----------- disassembly --------------

(gdb) disass mod_privacy_end_session
Dump of assembler code for function 
_ZL23mod_privacy_end_sessionP11mapi_structPv:
0x0000000804a3ef50 <_ZL23mod_privacy_end_sessionP11mapi_structPv+0>:    
push   %rbp
0x0000000804a3ef51 <_ZL23mod_privacy_end_sessionP11mapi_structPv+1>:    
mov    %rsp,%rbp
0x0000000804a3ef54 <_ZL23mod_privacy_end_sessionP11mapi_structPv+4>:    
sub    $0x20,%rsp
0x0000000804a3ef58 <_ZL23mod_privacy_end_sessionP11mapi_structPv+8>:    
mov    %rdi,-0x10(%rbp)
0x0000000804a3ef5c <_ZL23mod_privacy_end_sessionP11mapi_structPv+12>:   
mov    %rsi,-0x18(%rbp)
0x0000000804a3ef60 <_ZL23mod_privacy_end_sessionP11mapi_structPv+16>:   
mov    -0x10(%rbp),%rsi
0x0000000804a3ef64 <_ZL23mod_privacy_end_sessionP11mapi_structPv+20>:   
mov    0x20(%rsi),%rdi
0x0000000804a3ef68 <_ZL23mod_privacy_end_sessionP11mapi_structPv+24>:   
callq  0x804a3dc20 
<_ZL41mod_privacy_free_current_list_definitionsP14session_struct>
0x0000000804a3ef6d <_ZL23mod_privacy_end_sessionP11mapi_structPv+29>:   
ud2a
End of assembler dump.
(gdb)

Hope this helps someone!
Comment 2 Mark Linimon freebsd_committer freebsd_triage 2013-10-15 05:07:31 UTC
Responsible Changed
From-To: freebsd-amd64->freebsd-ports-bugs

make this a ports PR.make this a ports PR.make this a ports PR.
Comment 3 John Marino freebsd_committer freebsd_triage 2014-07-11 14:15:49 UTC
This port is not maintained.  However, it is building everywhere ( http://portsmon.freebsd.org/portoverview.py?category=net-im&portname=jabber )


Does this issue still occur or has it solved itself?
Comment 4 John Marino freebsd_committer freebsd_triage 2014-08-11 10:12:40 UTC
Silence is golden, closing.