報(bào)錯(cuò)內(nèi)容:
worker[WenJuanTest:1651545] exit with status 139
worker[WenJuanTest:1651545] exit with status 139
worker[WenJuanTest:1651545] exit with status 139
報(bào)錯(cuò)
一些信息
php 擴(kuò)展
http://wtbis.cn/search?keyword=exit+with+status+139
php的bug 或者 某個(gè)php擴(kuò)展bug,或者是用了一個(gè)什么特殊的用法觸發(fā)了php的bug
一旦遇到 就必須 重啟 restart 才能解決
用laravel的orm的位置 容易報(bào)這樣的錯(cuò)
這時(shí)候 業(yè)務(wù)頁面 會出現(xiàn) 502 - nginx
求大神分析 ~~
[{WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV && WCOREDUMP(s)}], WSTOPPED, NULL) = 1705592
15:32:24.671550 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_DUMPED, si_pid=1705592, si_uid=0, si_status=SIGSEGV, si_utime=3, si_stime=0} ---
15:32:24.671702 getpid() = 1697111
15:32:24.671791 openat(AT_FDCWD, "/www/fastwenjuan_test/runtime/logs/workerman.log", O_WRONLY|O_CREAT|O_APPEND, 0666) = 7
15:32:24.671895 fstat(7, {st_mode=S_IFREG|0600, st_size=29562389, ...}) = 0
15:32:24.671974 lseek(7, 0, SEEK_CUR) = 0
15:32:24.672044 lseek(7, 0, SEEK_CUR) = 0
15:32:24.672138 flock(7, LOCK_EX) = 0
15:32:24.672214 write(7, "2022-05-23 15:32:24 pid:1697111 "..., 81) = 81
15:32:24.672304 close(7) = 0
15:32:24.672393 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fd610346410) = 1709712
15:32:24.673907 wait4(-1,
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6379 0.0.0.0: LISTEN 2694/redis-server 1
tcp 0 0 0.0.0.0:80 0.0.0.0: LISTEN 1980/nginx: master
tcp 0 0 0.0.0.0:8786 0.0.0.0: LISTEN 2720/WorkerMan: mas
tcp 0 0 0.0.0.0:8787 0.0.0.0: LISTEN 2700/WorkerMan: mas
tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN 1845/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0: LISTEN 1980/nginx: master
tcp6 0 0 :::3306 ::: LISTEN 2538/mysqld
udp 0 0 127.0.0.1:323 0.0.0.0: 857/chronyd
udp6 0 0 ::1:323 :::* 857/chronyd
pstree -p
─php(2720)─┬─php(2721)
│ ├─php(2722)
│ ├─php(2723)
│ ├─php(2724)
│ ├─php(2725)
│ ├─php(2726)
│ ├─php(2727)
│ ├─php(2729)
│ ├─php(2730)
│ ├─php(2732)
│ ├─php(2734)
│ ├─php(2735)
│ ├─php(2736)
│ ├─php(2737)
│ ├─php(2738)
│ ├─php(2739)
│ └─php(2740)
php start.php status 看所有子進(jìn)程pid,找一個(gè)wenjuantest進(jìn)程的pid,或者多開一些終端,把每個(gè)wenjuantest進(jìn)程的pid進(jìn)程的pid都執(zhí)行strace,等進(jìn)程退出
0x1a10850, 32, 23269) = -1 EINTR (Interrupted system call)
16:17:02.242368 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_USER, si_pid=24412, si_uid=0} ---
16:17:02.242426 write(9, "\n", 1) = 1
16:17:02.242534 rt_sigreturn({mask=[]}) = -1 EINTR (Interrupted system call)
16:17:02.242626 epoll_wait(7, [{EPOLLIN, {u32=8, u64=8}}], 32, 19165) = 1
16:17:02.242709 read(8, "\n", 1024) = 1
16:17:02.242779 read(8, 0x7f9818604340, 1024) = -1 EAGAIN (Resource temporarily unavailable)
16:17:02.242892 getpid() = 24413
16:17:02.242985 getpid() = 24413
16:17:02.243061 epoll_ctl(7, EPOLL_CTL_DEL, 6, 0x7ffdc55dd06c) = 0
16:17:02.243142 close(6) = 0
16:17:02.243336 close(15) = 0
16:17:02.243617 openat(AT_FDCWD, "/www/log/php.log", O_WRONLY|O_CREAT|O_APPEND, 0644) = 6
16:17:02.243723 write(6, "[23-May-2022 16:17:02 Asia/Shang"..., 218) = 218
16:17:02.243814 close(6) = 0
16:17:02.243895 write(1, "\nFatal error: Uncaught TypeError"..., 177) = 177
16:17:02.244021 close(11) = 0
16:17:02.244136 close(2) = 0
16:17:02.244205 close(1) = 0
16:17:02.244285 close(0) = 0
16:17:02.244363 rt_sigaction(SIGINT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f981c6c5400}, NULL, 8) = 0
16:17:02.244508 rt_sigaction(SIGQUIT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f981c6c5400}, NULL, 8) = 0
16:17:02.244613 rt_sigaction(SIGHUP, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f981c6c5400}, NULL, 8) = 0
16:17:02.244726 rt_sigaction(SIGTSTP, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f981c6c5400}, NULL, 8) = 0
16:17:02.244916 rt_sigaction(SIGUSR1, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f981c6c5400}, NULL, 8) = 0
16:17:02.245038 rt_sigaction(SIGUSR2, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f981c6c5400}, NULL, 8) = 0
16:17:02.245123 rt_sigaction(SIGABRT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f981c6c5400}, NULL, 8) = 0
16:17:02.245244 rt_sigaction(SIGIO, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f981c6c5400}, NULL, 8) = 0
16:17:02.245401 sendto(12, "\1\0\0\0\1", 5, MSG_DONTWAIT, NULL, 0) = 5
16:17:02.245539 close(12) = 0
16:17:02.245707 sendto(10, "\1\0\0\0\1", 5, MSG_DONTWAIT, NULL, 0) = 5
16:17:02.245866 close(10) = 0
16:17:02.245969 epoll_ctl(7, EPOLL_CTL_DEL, 8, 0x7ffdc55dea4c) = 0
16:17:02.246041 close(8) = 0
16:17:02.246112 close(9) = 0
16:17:02.246177 close(7) = 0
16:17:02.246247 sendto(13, "\1\0\0\0\1", 5, MSG_DONTWAIT, NULL, 0) = 5
16:17:02.246397 close(13) = 0
16:17:02.246614 fcntl(3, F_SETLK, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, l_len=0}) = 0
16:17:02.246780 munmap(0x7f9816c00000, 2097152) = 0
16:17:02.247095 munmap(0x7f9818121000, 2794632) = 0
16:17:02.247390 munmap(0x7f9818a30000, 2274632) = 0
16:17:02.247521 munmap(0x7f9818829000, 2121744) = 0
16:17:02.247619 munmap(0x7f9818605000, 2240904) = 0
16:17:02.247696 munmap(0x7f98183cc000, 2328408) = 0
16:17:02.248599 munmap(0x7f982309d000, 196608) = 0
16:17:02.249752 close(5) = 0
16:17:02.249870 exit_group(1) = ?
16:17:02.252169 +++ exited with 1 +++
16:17:02.243617 openat(AT_FDCWD, "/www/log/php.log", O_WRONLY|O_CREAT|O_APPEND, 0644) = 6
16:17:02.243723 write(6, "[23-May-2022 16:17:02 Asia/Shang"..., 218) = 218
16:17:02.243814 close(6) = 0
16:17:02.243895 write(1, "\nFatal error: Uncaught TypeError"..., 177) = 177
php向 /www/log/php.log
寫了日志,看起來是一個(gè)Fatal error
,看下日志
其實(shí)還沒解決 我已經(jīng)蒙了 我現(xiàn)在的解決方案是 發(fā)現(xiàn)報(bào)錯(cuò) 就自動(dòng)重啟 并用郵箱通知自己 不知道該如何是好了
https://test2022-5-23.oss-cn-hangzhou.aliyuncs.com/111.png
https://test2022-5-23.oss-cn-hangzhou.aliyuncs.com/222.jpg
我在使用中還發(fā)現(xiàn)了一個(gè)新問題 就是 如果長時(shí)間不訪問頁面 頁面的第一次訪問需要近20秒 只要第一次頁面訪問成功 第二次 第三次 就快了 我開始以為是網(wǎng)絡(luò)或是瀏覽器的問題 結(jié)果換了也是一樣 我在服務(wù)器 用curl本地訪問 也是一樣
沒解決的話繼續(xù)strace wenjuantest 進(jìn)程,還是先把swoole擴(kuò)展屏蔽掉,排除(null)()干擾。上次你strace的結(jié)果看起來是執(zhí)行了reload,沒有等到exit 139發(fā)生。strace wenjuantest 進(jìn)程,直到這個(gè)進(jìn)程報(bào)錯(cuò)退出。