单机守护启动正常 但是过几天以后莫名奇妙的假死了 日志显示SendBufferToWorker fail

陌生

 
onWorkerStart 只在这个地方加了两个定时器

# strace -ttp 16327strace: Process 16327 attached
19:48:34.299833 select(7, , , , {92, 246878}) = 1 (in , left {74, 993026})
19:48:51.554064 recvfrom(6, "\0\0\0\10ping", 65535, 0, NULL, NULL) = 8
19:48:51.554310 select(7, , , , {100, 0}) = 1 (in , left {75, 23492})
19:49:16.530954 recvfrom(6, "\0\0\0005a:2:{s:3:\"cmd\";s:3:\"get\";s:3"..., 65535, 0, NULL, NULL) = 53
19:49:16.531085 sendto(6, "\0\0\0\na:0:{}", 10, 0, NULL, 0) = 10
19:49:16.531339 select(7, , , , {100, 0}) = 1 (in , left {99, 999896})
19:49:16.531571 recvfrom(6, "\0\0\0007a:2:{s:3:\"cmd\";s:3:\"get\";s:3"..., 65535, 0, NULL, NULL) = 55
19:49:16.531725 sendto(6, "\0\0\0\na:0:{}", 10, 0, NULL, 0) = 10
19:49:16.531927 select(7, , , , {100, 0}) = 1 (in , left {99, 999997})
19:49:16.532070 recvfrom(6, "\0\0\0Ba:2:{s:3:\"cmd\";s:3:\"get\";s:3"..., 65535, 0, NULL, NULL) = 66
19:49:16.532201 sendto(6, "\0\0\0\10i:0;", 8, 0, NULL, 0) = 8
19:49:16.532378 select(7, , , , {100, 0}) = 1 (in , left {99, 999997})
19:49:16.532472 recvfrom(6, "\0\0\0@a:2:{s:3:\"cmd\";s:3:\"get\";s:3"..., 65535, 0, NULL, NULL) = 64
19:49:16.532597 sendto(6, "\0\0\0\10i:1;", 8, 0, NULL, 0) = 8
19:49:16.533351 select(7, , , , {100, 0}) = 1 (in , left {99, 979448})
19:49:16.554093 recvfrom(6, "\0\0\0\10ping", 65535, 0, NULL, NULL) = 8
19:49:16.554277 select(7, , , , {100, 0}
php     16327 root    0u   CHR              136,1       0t0       4 /dev/pts/1
php     16327 root    1u   CHR              136,1       0t0       4 /dev/pts/1
php     16327 root    2u   CHR              136,1       0t0       4 /dev/pts/1
php     16327 root    3u  unix 0xffff88433b51f000       0t0 2459367 socket
php     16327 root    4u  IPv4            2459355       0t0     TCP 127.0.0.1:2207 (LISTEN)
php     16327 root    5u  unix 0xffff88433b51e800       0t0 2459368 socket
php     16327 root    6u  IPv4            2459369       0t0     TCP 127.0.0.1:2207->172.27.16.14:59486 (ESTABLISHED)
1963 1 0
1个回答

walkor

从截图结果看进程是正常的。
SendBufferToWorker fail 参考 手册定位
http://doc2.workerman.net/send-buffer-to-worker-fail.html
有可能是onWorkerStart里定时器里面业务逻辑运行缓慢影响了businessWorker与gateway建立连接逻辑导致。
 
业务有问题的时候运行 status看是否有busy进程,根据手册
http://doc.workerman.net/debug/busy-process.html
定位
 

年代过于久远,无法发表回答
🔝