swoole / swoole-src

🚀 Coroutine-based concurrency library for PHP
https://www.swoole.com
Apache License 2.0
18.48k stars 3.16k forks source link

[ubuntu14.04:php7.0.8:swoole1.8.7:http_server] event worker periodically crash: worker#xxx abnormal exit, status=0, signal=11 #756

Closed ufosaga closed 8 years ago

ufosaga commented 8 years ago

system information:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.4 LTS
Release:        14.04
Codename:       trusty

php7 information:

$ php7 -v        
PHP 7.0.8 (cli) (built: Jul  6 2016 09:42:48) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.8, Copyright (c) 1999-2016, by Zend Technologies

swoole information:

$ php7 --ri swoole
swoole
swoole support => enabled
Version => 1.8.7
Author => tianfeng.han[email: mikan.tenny@gmail.com]
epoll => enabled
eventfd => enabled
timerfd => enabled
signalfd => enabled
cpu affinity => enabled
spinlock => enabled
rwlock => enabled
async redis client => enabled
async http/websocket client => enabled
Linux Native AIO => enabled
pcre => enabled
zlib => enabled
mutex_timedlock => enabled
pthread_barrier => enabled
Directive => Local Value => Master Value
swoole.aio_thread_num => 2 => 2
swoole.display_errors => On => On
swoole.use_namespace => Off => Off
swoole.message_queue_key => 0 => 0
swoole.unixsock_buffer_size => 8388608 => 8388608

Call stack trace:

gdb --core core-php7-9744-1467884917 /usr/local/php7/bin/php                                           
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/local/php7/bin/php...done.

warning: core file may not match specified executable file.
[New LWP 9744]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `gwsvrd_evt_worke'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  zend_mm_alloc_small (size=<optimized out>, bin_num=<optimized out>, heap=<optimized out>) at /home/thomas/dev/osp/php-7.0.8/Zend/zend_alloc.c:1295
1295                    heap->free_slot[bin_num] = p->next_free_slot;
(gdb) bt
#0  zend_mm_alloc_small (size=<optimized out>, bin_num=<optimized out>, heap=<optimized out>) at /home/thomas/dev/osp/php-7.0.8/Zend/zend_alloc.c:1295
#1  zend_mm_alloc_heap (size=<optimized out>, heap=<optimized out>) at /home/thomas/dev/osp/php-7.0.8/Zend/zend_alloc.c:1366
#2  _emalloc (size=0, size@entry=2) at /home/thomas/dev/osp/php-7.0.8/Zend/zend_alloc.c:2450
#3  0x00000000006d406b in _estrndup (s=0x7fadb40ca2eb "0", length=length@entry=1) at /home/thomas/dev/osp/php-7.0.8/Zend/zend_alloc.c:2573
#4  0x00000000006a67d4 in php_default_treat_data (arg=3, str=<optimized out>, destArray=<optimized out>) at /home/thomas/dev/osp/php-7.0.8/main/php_variables.c:463
#5  0x00007fadb2ffd94b in http_request_on_body (parser=0x7fadb426a5c0, at=0x7fadb40af86c "pid=account2&ptype=0&stype=7&pwd=password2&version=400", length=54)
    at /home/thomas/dev/osp/swoole-src-1.8.7-stable/swoole_http_server.c:778
#6  0x00007fadb304c295 in php_http_parser_execute (parser=0x7fadb426a5c0, settings=0x7fadb3264720 <http_parser_settings>, 
    data=0x7fadb40af718 "POST /login HTTP/1.1\r\nHost: 120.55.113.145:7703\r\nContent-Type:application/x-www-form-urlencoded\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko)"..., len=394) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/thirdparty/php_http_parser.c:1436
#7  0x00007fadb2ffe081 in http_onReceive (serv=0x12a9160, req=0x7fff08037780) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/swoole_http_server.c:913
#8  0x00007fadb304016c in swWorker_onTask (factory=0x12a9590, task=0x7fff08037780) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/src/network/Worker.c:193
#9  0x00007fadb3041fd5 in swWorker_onPipeReceive (reactor=0x12f1100, event=0x7fff08039810) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/src/network/Worker.c:549
#10 0x00007fadb302c3b7 in swReactorEpoll_wait (reactor=0x12f1100, timeo=0x0) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/src/reactor/ReactorEpoll.c:258
#11 0x00007fadb3041cce in swWorker_loop (factory=0x12a9590, worker_id=0) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/src/network/Worker.c:496
#12 0x00007fadb303f605 in swManager_spawn_worker (factory=0x12a9590, worker_id=0) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/src/network/Manager.c:679
#13 0x00007fadb303ef11 in swManager_loop_sync (factory=0x12a9590) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/src/network/Manager.c:539
#14 0x00007fadb303d8fc in swManager_start (factory=0x12a9590) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/src/network/Manager.c:183
#15 0x00007fadb3026e47 in swFactoryProcess_start (factory=0x12a9590) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/src/factory/FactoryProcess.c:86
#16 0x00007fadb302f9b0 in swServer_start (serv=0x12a9160) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/src/network/Server.c:645
#17 0x00007fadb3000fa0 in zim_swoole_http_server_start (execute_data=0x7fadb4013250, return_value=0x7fadb4013240) at /home/thomas/dev/osp/swoole-src-1.8.7-stable/swoole_http_server.c:1379
#18 0x000000000076f24b in ZEND_DO_FCALL_SPEC_HANDLER () at /home/thomas/dev/osp/php-7.0.8/Zend/zend_vm_execute.h:842
#19 0x00000000007316eb in execute_ex (ex=<optimized out>) at /home/thomas/dev/osp/php-7.0.8/Zend/zend_vm_execute.h:414
#20 0x000000000077aa97 in zend_execute (op_array=0x7fadb4083000, op_array@entry=0x7fadb40894c0, return_value=return_value@entry=0x7fadb40131d0) at /home/thomas/dev/osp/php-7.0.8/Zend/zend_vm_execute.h:458
#21 0x00000000006f51f4 in zend_execute_scripts (type=type@entry=8, retval=0x7fadb40131d0, retval@entry=0x0, file_count=file_count@entry=3) at /home/thomas/dev/osp/php-7.0.8/Zend/zend.c:1427
#22 0x00000000006992b8 in php_execute_script (primary_file=primary_file@entry=0x7fff0803c070) at /home/thomas/dev/osp/php-7.0.8/main/main.c:2494
#23 0x000000000077c668 in do_cli (argc=2, argv=0x1113100) at /home/thomas/dev/osp/php-7.0.8/sapi/cli/php_cli.c:974
#24 0x00000000004380b0 in main (argc=2, argv=0x1113100) at /home/thomas/dev/osp/php-7.0.8/sapi/cli/php_cli.c:1344
(gdb) f 0
#0  zend_mm_alloc_small (size=<optimized out>, bin_num=<optimized out>, heap=<optimized out>) at /home/thomas/dev/osp/php-7.0.8/Zend/zend_alloc.c:1295
1295                    heap->free_slot[bin_num] = p->next_free_slot;
(gdb) f 1
#1  zend_mm_alloc_heap (size=<optimized out>, heap=<optimized out>) at /home/thomas/dev/osp/php-7.0.8/Zend/zend_alloc.c:1366
1366                    ptr = zend_mm_alloc_small(heap, size, ZEND_MM_SMALL_SIZE_TO_BIN(size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
(gdb) f 2
#2  _emalloc (size=0, size@entry=2) at /home/thomas/dev/osp/php-7.0.8/Zend/zend_alloc.c:2450
2450            return zend_mm_alloc_heap(AG(mm_heap), size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
(gdb) 
matyhtf commented 8 years ago

fixed. see https://github.com/swoole/swoole-src/issues/768