[OpenSER-Users] SIGILL when starting openser
Christian Koch
chri.koch.vier at googlemail.com
Mon Apr 28 11:42:14 CEST 2008
Hi Bogdan,
I tried replacing the rand() function in that line, but afterwards I got
a core file at another line. Still with SIGILL.
But I think I've found a solution: In "Makefile.defs", for i386 with gcc
3.x I removed the following line (line 592):
-march=$(CPU_TYPE)
CPU_TYPE would be set to "prescott" in that case, but the manpage of gcc
states prescott is "Improved version of Intel Pentium4 CPU...". My
machine is a Pentium III, so it doesn't understand the P4 code generated
by gcc. I recompiled openser without "-march" and it seems everything
works fine now.
I think the Makefile still needs to be fixed for the other architectures
and gcc versions.
Regards,
Christian
Bogdan-Andrei Iancu schrieb:
> Hi Christian,
>
> The line the trace refer at is:
>
> sec_rand[i] = 32 + (int)(95.0 * rand() / (RAND_MAX + 1.0));
>
> I suspect the rand() function, as there were some previous reports
> about it....:(
>
> Could you try alter the code and replace the rand() with some number
> just to see if it won't crash?
>
> Regards,
> Bogdan
>
>
> Christian Koch wrote:
>> Hi Bogdan,
>>
>> when logging to syslog these are the last lines I get:
>>
>> Apr 23 16:12:02 192 /usr/local/sbin/openser[12817]:
>> DBG:core:init_mod: registering stats for usrloc
>> Apr 23 16:12:02 192 /usr/local/sbin/openser[12817]:
>> DBG:core:init_mod: register MI for usrloc
>> Apr 23 16:12:02 192 /usr/local/sbin/openser[12817]:
>> DBG:core:init_mod: initializing module registrar
>> Apr 23 16:12:02 192 /usr/local/sbin/openser[12817]:
>> INFO:registrar:mod_init: initializing...
>> Apr 23 16:12:02 192 /usr/local/sbin/openser[12817]:
>> DBG:core:find_cmd_export_t: found <load_sl>(0) in module sl
>> [/usr/local/lib/openser/modules/]
>> Apr 23 16:12:02 192 /usr/local/sbin/openser[12817]:
>> DBG:core:find_cmd_export_t: found <ul_bind_usrloc>(1) in module
>> usrloc [/usr/local/lib/openser/modules/]
>> Apr 23 16:12:02 192 /usr/local/sbin/openser[12817]:
>> DBG:core:init_mod: registering stats for registrar
>> Apr 23 16:12:02 192 /usr/local/sbin/openser[12817]:
>> DBG:core:init_mod: initializing module auth
>> Apr 23 16:12:02 192 /usr/local/sbin/openser[12817]:
>> INFO:auth:mod_init: initializing...
>> Apr 23 16:12:02 192 /usr/local/sbin/openser[12817]:
>> DBG:core:find_cmd_export_t: found <load_sl>(0) in module sl
>> [/usr/local/lib/openser/modules/]
>>
>> All other messages I get are either DBG or INFO, no errors. But now I
>> tried something different. I've set "fork=no", and now I'm getting a
>> corefile. Backtrace of gdb is:
>>
>> (gdb) bt
>> #0 0x0012ff8f in mod_init () at auth_mod.c:200
>> #1 0x080ab61e in init_mod (m=0x8165048) at sr_module.c:461
>> #2 0x080ab3f5 in init_mod (m=0x81650e8) at sr_module.c:456
>> #3 0x080ab3f5 in init_mod (m=0x8165188) at sr_module.c:456
>> #4 0x080ab3f5 in init_mod (m=0x8165228) at sr_module.c:456
>> #5 0x080ab3f5 in init_mod (m=0x81652c8) at sr_module.c:456
>> #6 0x080ab3f5 in init_mod (m=0x8165368) at sr_module.c:456
>> #7 0x080ab3f5 in init_mod (m=0x8165408) at sr_module.c:456
>> #8 0x080ab3f5 in init_mod (m=0x81654a8) at sr_module.c:456
>> #9 0x080ab3f5 in init_mod (m=0x8165548) at sr_module.c:456
>> #10 0x080ab3f5 in init_mod (m=0x8165618) at sr_module.c:456
>> #11 0x080ab3f5 in init_mod (m=0x81656b8) at sr_module.c:456
>> #12 0x080684a7 in main (argc=1, argv=0xbff668b4) at main.c:1355
>> (gdb)
>>
>> Looks like calling init_mod() recursively. I didn't study the openser
>> code, but this backtrace looks strange to me.
>> If anybody is interested in the whole corefile, please mail me
>> directly. I don't want to post such a large file to the list.
>>
>> Thanks a lot for your help,
>> Christian
>>
>>
>>
>>
>> Bogdan-Andrei Iancu schrieb:
>>
>>> Hi Christian,
>>>
>>> Any logs from openser during startup? if not, try to enable debug
>>> (debug=6) and see where is stops.
>>>
>>> Regards,
>>> Bogdan
>>>
>>> Christian Koch wrote:
>>>
>>>> Hi,
>>>>
>>>> when starting openser 1.3.1 it doesn't really start, but stops
>>>> after processing a SIGILL. When perfoming
>>>>
>>>> strace -f /usr/local/sbin/openser
>>>>
>>>> I get the following output (these are only the last few lines):
>>>>
>>>> time([1208951399]) = 1208951399
>>>> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837,
>>>> ...}) = 0
>>>> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837,
>>>> ...}) = 0
>>>> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837,
>>>> ...}) = 0
>>>> send(3, "<143>Apr 23 13:49:59 /usr/local/"..., 147,
>>>> MSG_NOSIGNAL) = 147
>>>> --- SIGILL (Illegal instruction) @ 0 (0) ---
>>>> Process 12746 detached
>>>>
>>>>
>>>> I've compiled openser from source on the same machine. When
>>>> starting openser with -V everything works just fine. Output:
>>>>
>>>> version: openser 1.3.1-notls (i386/linux)
>>>> flags: STATS: Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, USE_MCAST,
>>>> SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
>>>> ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN
>>>> 16, MAX_URI_SIZE 1024, BUF_SIZE 65535
>>>> poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
>>>> svnrevision: unknown
>>>> @(#) $Id: main.c 3590 2008-01-28 17:46:56Z bogdan_iancu $
>>>> main.c compiled on 10:47:24 Apr 23 2008 with gcc 3.4.5
>>>>
>>>>
>>>>
>>>> So I guessed the problem could occur inside a module. I removed
>>>> auth.so and auth_db.so from my config file, but openser still
>>>> doesn't start. But, it doesn't receive a SIGILL anymore, but
>>>> SIGTERM. Output from strace:
>>>>
>>>> time([1208951661]) = 1208951661
>>>> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837,
>>>> ...}) = 0
>>>> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837,
>>>> ...}) = 0
>>>> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837,
>>>> ...}) = 0
>>>> send(3, "<139>Apr 23 13:54:21 /usr/local/"..., 103,
>>>> MSG_NOSIGNAL) = 103
>>>> kill(0, SIGTERM) = 0
>>>> --- SIGTERM (Terminated) @ 0 (0) ---
>>>> sigreturn() = ? (mask now [])
>>>> time([1208951661]) = 1208951661
>>>> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837,
>>>> ...}) = 0
>>>>
>>>> [...]
>>>>
>>>> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837,
>>>> ...}) = 0
>>>> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837,
>>>> ...}) = 0
>>>> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837,
>>>> ...}) = 0
>>>> send(3, "<143>Apr 23 13:54:21 /usr/local/"..., 113,
>>>> MSG_NOSIGNAL) = 113
>>>> munmap(0xb5f58000, 33554432) = 0
>>>> exit_group(-1) = ?
>>>> Process 12752 detached
>>>>
>>>> Any ideas how to fix this problem?
>>>>
>>>> Thx,
>>>> Christian
>>>>
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at lists.openser.org
>>>> http://lists.openser.org/cgi-bin/mailman/listinfo/users
>>>>
>>>>
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.openser.org
>> http://lists.openser.org/cgi-bin/mailman/listinfo/users
>>
>>
>
More information about the sr-users
mailing list