我在Apache服务器上处理随机段错误。 它发生在我的高负载服务器上,而它从未发生在低负载服务器上。
我有一个Core Dump并使用了GDB。事实是,我无法弄清楚gdb信息出了什么问题。我想这是堆栈的问题,但我无法通过增加ThreadStackSize来解决它。有人能帮助我吗?
这是核心转储文件中bt full的结果:
(gdb) bt full
#0 0x00007f3999130e75 in pthread_join () from /lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#1 0x00007f3999373772 in apr_thread_join () from /usr/lib/libapr-1.so.0
No symbol table info available.
#2 0x00007f3999c32f4e in join_workers (listener=0x7f398fc29ac0, threads=threads@entry=0x7f399dd5b4d0)
at worker.c:1104
worker_os_thread = 0x7f398fc296f8
i = 4
rv = <optimized out>
thread_rv = 0
#3 0x00007f3999c332a0 in child_main (child_num_arg=child_num_arg@entry=4) at worker.c:1287
threads = 0x7f399dd5b4d0
rv = <optimized out>
ts = 0x7f398fc29128
thread_attr = 0x7f398fc29148
start_thread_id = 0x7f398fc291a8
#4 0x00007f3999c5f7a9 in make_child (s=0x7f3999be8818, slot=<optimized out>) at worker.c:1341
pid = 0
#5 0x00007f3999c6005d in perform_idle_server_maintenance () at worker.c:1560
j = <optimized out>
free_slots = {3, 4, 2, 8, 3, 0, -1715671832, 0, -9876048, 32767, -1724501777, 32569, 0, 0, -1692282864,
32569, 2, 0, 0, 2, 0, 0, 0, 0, -1715544024, 32569, -1692282864, 32569, -9875984, 32767, -1724499750,
32569}
total_non_dead = <optimized out>
active_thread_count = <optimized out>
idle_thread_count = <optimized out>
free_length = <optimized out>
i = <optimized out>
ps = <optimized out>
totally_free_length = <optimized out>
last_non_dead = <optimized out>
#6 server_main_loop (remaining_children_to_start=0) at worker.c:1663
status = 0
pid = {pid = -1, in = 0x7f3995c9c89d, out = 0x7f3999bee028, err = 0x7f39993627ae}
i = <optimized out>
child_slot = <optimized out>
exitwhy = APR_PROC_EXIT
processed_status = <optimized out>
#7 ap_mpm_run (_pconf=_pconf@entry=0x7f3999bee028, plog=<optimized out>, s=s@entry=0x7f3999be8818)
at worker.c:1765
remaining_children_to_start = 0
rv = <optimized out>
#8 0x00007f3999c33ee6 in main (argc=3, argv=0x7fffff694fb8) at main.c:755
c = 0 '\000'
configtestonly = 0
confname = 0x7f3999c623ba "apache2.conf"
def_server_root = 0x7f3999c623ad "/etc/apache2"
temp_error_log = <optimized out>
error = <optimized out>
process = 0x7f3999bf7118
server_conf = 0x7f3999be8818
pglobal = <optimized out>
pconf = 0x7f3999bee028
plog = 0x7f3999bba028
ptemp = 0x7f3999be6028
pcommands = 0x7f3999bec028
opt = 0x7f3999bec118
感谢你的帮助
答案 0 :(得分:0)
我终于找到了答案。
由mod_perl调用c库引起的段错误。我无法找出为什么它只在高负荷下发生。
我使用fastcgi来处理请求,我没有任何其他段错误。