Giter Site home page Giter Site logo

freeeyes / pss Goto Github PK

View Code? Open in Web Editor NEW
240.0 49.0 139.0 43.92 MB

This is a based plug-in framework that provides cross-platform IO and logically separated plug-in services.

License: Apache License 2.0

C++ 81.66% C 17.28% HTML 0.19% Shell 0.01% Makefile 0.47% Lua 0.24% Batchfile 0.03% CMake 0.09% Objective-C 0.02%
server tcp udp module frame-service game-server game

pss's Introduction

English | 简体中文

Current stable version: v2.1.0

pss

This is a based plug-in framework that provides cross-platform IO and logically separated plug-in services.

Build Status License GitHub version Quality Gate Platform

OverView

this is a server framework. Support the way developers use plug-ins ( so or dll library).
develop logical services for related TCP and UDP. This service framework is based on ace and can be compiled and run adaptively under windows and Linux.

the purpose of this service framework is to peel off the relationship between network io and logical developers as much as possible, so that the logical developers are more focused on their own business, and the network io is fully implemented by the configuration file.

operation and maintenance manager can through the auxiliary management tools, to obtain the framework operation status, work thread, data flow status, connection status and other information.
auxiliary operation and maintenance management, troubleshooting.

in addition, developers can also be completely out of the framework, using the tools around the framework, pressure test their logic module, so as to minimize the possible problems before online.

before using the framework, you can use the framework to provide small tools, pressure test performance indicators of the current framework, as a basis for whether to adopt.

example has a special test case, can provide a developer reference.

the goal of this framework is not just a network io plug-in interface, but a complete set of development process, as far as possible to reduce the developer 's pay.

specification development process ( currently available on the SVN framework testing tools, specific functions please refer to other instructions MD )

hope to be able to step by step with you to improve the system, really do a valuable framework. My goal is, you use cool, is to succeed. And I hope you like it more and more.

pss frame flow chart

Provides several piezometric data ( TCP pass tool available from PSS open source kit )

Author & Thanks: 凹凸man,w1w,乔戈,Bobo,弄香花满衣,崔,kz,瑞奇

QQ group: 260862613

pss's People

Contributors

freeeyes avatar liuchao412 avatar lrqsf1982 avatar nickyang4github avatar tangkai1590 avatar zhaokaixs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pss's Issues

Win10 VS2017 Debug模式 Win32、x64编译插件Login失败

Loin的默认工程配置不正确,Debug模式下,无论Win32还是x64都会提示找不到文件的情况,另外编译过程中提示basecommand.cpp(175): error C2664: “bool IClientManager::SendData(int,char *&,int,bool)”: 无法将参数 2 从“char [200]”转换为“char *&”

建议能增加cpu绑定功能

问题描述(question)
建议能增加cpu绑定功能

操作系统环境(OS Environment):
ACE版本环境(ACE Version):
PSS配置文件信息(PSS configure XML file content): 默认
逻辑过程描述(Logic plugin describe): 默认
问题描述(Question describe):默认
堆栈信息(Stack information): 默认
期待结果(Expected results): 默认

框架加载插件流程更新须考虑兼容旧的插件加载方式

我方在把代码迁移到新框架上来时,出现了无法连接第三方服务的现象。原因是因为在ClientReConnectManager.cpp文件中CClientReConnectManager::ConnectTcpInit这个函数先于CClientReConnectManager::Init函数被调用了

在连接远程的时候,不能在LoadModule()进行,要在InitModule()进行。
这个我下周抽时间改一下,兼容你的老模式,在LoadModule()进行,要在InitModule() 都可以进行。

有关win7下压测达到1万6左右就开始连接失败卡死的问题

测试环境

win7旗舰版with sp1。使用vs2013编译,ACE使用的3.0版本。

问题描述

使用PassTcp.exe,使用默认的配置(长连接,不断发送),开启10个(或者100个)线程压测,连接数到达16367左右的时候,就开始卡住,接下来的连接全部失败了。
qq 20150923134908
这个问题从始至终只有我这边最好复现,并且我同事的机器上也能复现,而群里其他人员似乎都没那么好复现。

问题解决

@freeyes不断的排查代码,甚至精简到就只剩一个空框架,前后经过了一个多星期的时间,最后在@freeyes 的理论推断以及@羊顿v臊子 的帮助下,排查出是windows注册表项设置的问题,注册表路径是HKEY_LOCAL_MACHINE \System \CurrentControlSet \services \Tcpip \Parameters],这下面有一系列的TCP连接设置,经过对比,我的系统里缺少TcpTimedWaitDelay这一项,在手动增加上这一项设置值为30(十进制)后,问题得到解决。TcpTimedWaitDelay这一项的含义是,TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间。

事实上,当出现连接失败,卡住的时候,在命令行执行netstat -an -p tcp | find "127.0.0.1" | find /c "10002来查看10002端口被占用的情况,发现一开始和卡住时连接成功数一模一样,而稍后慢慢的会减少,这就从理论上推断是这个端口上的连接数连接达到饱和,需要等待一段时间释放一些才行。

鸣谢

在此感谢@freeyes 的不断调试,以及PSS技术群里相关人员的配合。
2015年9月23日

Epoll模式错误

main.xml中改成Epoll模式,执行PurenessScopeServer。提示如下:
[ 10:16:18.672993|140657353844512][CServerManager::Init()]... i=[0].
ACE_Dev_Poll_Reactor::open failed inside ACE_Dev_Poll_Reactor::CTOR: No such file or directory
[ 10:16:18.673788|140657353844512][CAceReactorManager::AddNewReactor]New [0] ReactorTxype = [4] nThreadCount = [1]. pAceReactor=[0x789030]
[ 10:16:18.673824|140657353844512][CServerManager::Init]AddNewReactor REACTOR_CLIENTDEFINE = Reactor_DEV_POLL.
[ 10:16:18.673850|140657353844512][CServerManager::Init()]... i=[1].
ACE_Dev_Poll_Reactor::open failed inside ACE_Dev_Poll_Reactor::CTOR: No such file or directory
[ 10:16:18.674584|140657353844512][CAceReactorManager::AddNewReactor]New [1] ReactorTxype = [4] nThreadCount = [1]. pAceReactor=[0x789560]
[ 10:16:18.674618|140657353844512][CServerManager::Init]AddNewReactor REACTOR_CLIENTDEFINE = Reactor_DEV_POLL.
[ 10:16:18.674643|140657353844512][CServerManager::Init()]... i=[2].
ACE_Dev_Poll_Reactor::open failed inside ACE_Dev_Poll_Reactor::CTOR: No such file or directory
[ 10:16:18.675030|140657353844512][CAceReactorManager::AddNewReactor]New [2] ReactorTxype = [4] nThreadCount = [1]. pAceReactor=[0x789b00]
[ 10:16:18.675060|140657353844512][CServerManager::Init]AddNewReactor REACTOR_CLIENTDEFINE = Reactor_DEV_POLL.
[ 10:16:18.675084|140657353844512][CServerManager::Init()]... i=[3].
ACE_Dev_Poll_Reactor::open failed inside ACE_Dev_Poll_Reactor::CTOR: No such file or directory
[ 10:16:18.675470|140657353844512][CAceReactorManager::AddNewReactor]New [3] ReactorTxype = [4] nThreadCount = [1]. pAceReactor=[0x78a090]
[ 10:16:18.675500|140657353844512][CServerManager::Init]AddNewReactor REACTOR_CLIENTDEFINE = Reactor_DEV_POLL.
[ 10:16:18.675523|140657353844512][CServerManager::Init()]... i=[4].
ACE_Dev_Poll_Reactor::open failed inside ACE_Dev_Poll_Reactor::CTOR: No such file or directory
[ 10:16:18.675899|140657353844512][CAceReactorManager::AddNewReactor]New [4] ReactorTxype = [4] nThreadCount = [1]. pAceReactor=[0x78a620]
[ 10:16:18.675928|140657353844512][CServerManager::Init]AddNewReactor REACTOR_CLIENTDEFINE = Reactor_DEV_POLL.
[ 10:16:18.675952|140657353844512][CServerManager::Init()]... i=[5].
ACE_Dev_Poll_Reactor::open failed inside ACE_Dev_Poll_Reactor::CTOR: No such file or directory
[ 10:16:18.676326|140657353844512][CAceReactorManager::AddNewReactor]New [5] ReactorTxype = [4] nThreadCount = [1]. pAceReactor=[0x78abb0]
[ 10:16:18.676356|140657353844512][CServerManager::Init]AddNewReactor REACTOR_CLIENTDEFINE = Reactor_DEV_POLL.
......................
[ 10:16:19.988129|140657353844512][CServerManager::Start]Begin.
Segmentation fault (core dumped)
我用的是ACE6.3.0版本,按照说明文档已经把/etc/security/limits.conf文件各项设置6000,并已经重启系统生效。用的TCPtest例子测试的。
用select,poll模式都测试了,正常运行,只有epoll出现问题。
请帮忙看下这是什么问题导致的,谢谢

[CMakePacket::PutMessageBlock] pMessage is NULL.报这个错

`
[2021-04-01 13:49:05.494131 8105|139743337641728][/root/PSS-master/purenessscopeserver/FrameCore/Common/MakePacket.cpp,35][CMakePacket::PutMessageBlock] pMessage is NULL.
[2021-04-01 13:49:05.494155 8105|139743337641728][/root/PSS-master/purenessscopeserver/FrameCore/Common/BaseHander.cpp,227][Send_MakePacket_Queue] ConnectID = 142, PACKET_CONNECT is error.
[2021-04-01 13:49:06.211020 8105|139743329249024][/root/PSS-master/purenessscopeserver/FrameCore/Common/MakePacket.cpp,35][CMakePacket::PutMessageBlock] pMessage is NULL.
[2021-04-01 13:49:06.211048 8105|139743329249024][/root/PSS-master/purenessscopeserver/FrameCore/Common/BaseHander.cpp,227][Send_MakePacket_Queue] ConnectID = 1573, PACKET_CONNECT is error.
[2021-04-01 13:49:06.606714 8105|139743329249024][/root/PSS-master/purenessscopeserver/FrameCore/Common/MakePacket.cpp,35][CMakePacket::PutMessageBlock] pMessage is NULL.
[2021-04-01 13:49:06.606742 8105|139743329249024][/root/PSS-master/purenessscopeserver/FrameCore/Common/BaseHander.cpp,227][Send_MakePacket_Queue] ConnectID = 1585, PACKET_CONNECT is error.
[2021-04-01 13:49:06.693802 8105|139743337641728][/root/PSS-master/purenessscopeserver/FrameCore/Common/MakePacket.cpp,35][CMakePacket::PutMessageBlock] pMessage is NULL.
[2021-04-01 13:49:06.693826 8105|139743337641728][/root/PSS-master/purenessscopeserver/FrameCore/Common/BaseHander.cpp,227][Send_MakePacket_Queue] ConnectID = 1443, PACKET_CONNECT is error.
[2021-04-01 13:49:06.844952 8105|139743337641728][/root/PSS-master/purenessscopeserver/FrameCore/Common/MakePacket.cpp,35][CMakePacket::PutMessageBlock] pMessage is NULL.
[2021-04-01 13:49:06.844977 8105|139743337641728][/root/PSS-master/purenessscopeserver/FrameCore/Common/BaseHander.cpp,227][Send_MakePacket_Queue] ConnectID = 1440, PACKET_CONNECT is error.

`
报这个错是啥问题呢 ?

计时器重构 接口功能

1.间隔时间(每过多少秒)执行1次,计时器结束执行一次。 参数未知

3.间隔时间(每过多少秒)执行1次,执行总共多少次。参数未知

2.设置时间,时间到后执行一次函数。参数未知

参数个数与内容,考虑void*或是变参模板

ERROR: Invalid type: gnuace (执行runlinuxmpc.sh脚本报错)

问题描述:
安装好ACE,设置好环境变量后,进入PSS的../Linux_Bin目录,按说明文档,运行runlinuxmpc.sh命令,执行时报错,错误日志如下:
Using .../newpay/ACE_wrappers/bin/MakeProjectCreator/config/MPC.cfg
CIAO_ROOT was used in the configuration file, but was not defined.
DANCE_ROOT was used in the configuration file, but was not defined.
ERROR: Invalid type: gnuace
mwc.pl v3.9.63
......
后面的省略!!

时间轮盘问题

问题描述(question)

过期的连接通过tick来清理,没有重置blockID为INVAILD_BLOCKID。当m_pBlockIDList所有位置都占用后,索表m_htIndexList无法成功添加BlockID,但是对应BlockID的容器已经 添加成功了连接对象,就会出现一个现象就是过一个时间轮盘周期,就会断开一次连接。客户端连接上来的连接会经常周期性断开。

操作系统环境(OS Environment):

centos 7.0

ACE版本环境(ACE Version):

ACE版本是6.4

PSS配置文件信息(PSS configure XML file content):

## 逻辑过程描述(Logic plugin describe): ## 问题描述(Question describe): ## 堆栈信息(Stack information): ## 期待结果(Expected results):

源码中忘记增加超时时间

在LogManager.cpp第257行忘记添加超时时间了,请修正。

xtime = ACE_OS::gettimeofday();应为
xtime = ACE_OS::gettimeofday() + 超时时间;

关于服务器通讯的问题

  1. ClientProConnectManager.cpp中 CClientProConnectManager::Close(int nServerID, EM_s2s ems2s),m_objClientTCPList删除的时候是否要加锁

  2. ClientProConnectManager.cpp中CClientProConnectManager::Connect 中异步才需要 AddClientMessage,而且没有地方DelClientMessage

  3. ClientInfo,Client和ClientMessage调用问题:

    • CClientProConnectManager::Close时刚好执行handle_timeout,则可能ClientInfo已经free,但是handle_timeout中仍会调用;
    • Client read过程中,外部调用close,则ClienetMessage可能free,导致Client中调用ClientMessage异常

建议把邮件告警部分剥离开,在插件中实现。

问题描述(question)

PSS引入了libcurl,导致编译需要curl才行。建议把邮件告警部分剥离开,在插件中实现,这样pss编译还是只需要ace即可,不加邮件告警插件就不发邮件告警,如果有邮件告警插件,可以在插件中实现邮件告警。

操作系统环境(OS Environment):

ACE版本环境(ACE Version):

PSS配置文件信息(PSS configure XML file content):

逻辑过程描述(Logic plugin describe):

问题描述(Question describe):

堆栈信息(Stack information):

期待结果(Expected results):

关于linux下crash的问题

我们的服务器程序在linux下,crash非常频繁,请问有比较好的调试方案么?我们想做一些逻辑测试,请问有比较合适的方案或模拟客户端框架么?

Windows 10 x64测试bug及可优化问题总结

问题描述(question)

1.SendData参数:要用const char *变量,因为是const char * &参数类型,不可用->GetData();
2.PostMessage:使用同上
3._findfirst _findnext c级别的遍历目录,在64位下可能会出现崩溃,尤其是工程编码如果是UNICODE必出
4.dll导出接口不可以用 stl,容易导致崩溃(debug)。最好修改为:Alloc Free这种类型的接口

操作系统环境(OS Environment):

Windows 10 x64

ACE版本环境(ACE Version):

6.5.3

PSS配置文件信息(PSS configure XML file content): 默认

逻辑过程描述(Logic plugin describe): 默认

问题描述(Question describe):默认

堆栈信息(Stack information): 默认

期待结果(Expected results): 默认

计时器TMFServce

1.需要更改AddMessage函数的返回值,从Int变更为枚举类型。
2.需要更改AddMessage函数的Messagepos参数为无符号的64位整型。
3.需要增加windows下的time.xml的激活字段。保持与linux下同步。

插件加载失败导致的释放资源失败

问题描述(question)

操作系统环境(OS Environment): win10 x64

ACE版本环境(ACE Version): 6.4.0

PSS配置文件信息(PSS configure XML file content):

逻辑过程描述(Logic plugin describe):

逻辑dll 找不到或者 缺少依赖库,导致PSS加载逻辑DLL失败。 释放资源出错

问题描述(Question describe):

堆栈信息(Stack information):

期待结果(Expected results):

关于日志

怎么对日志进行分级输出,又比如 我想把 error debug info 分文件这个可以吗

支持多个PackParaser

希望框架能增加针对不同监听端口配置不同的PacketParaser的能力。每个监听端口可以自由的绑定不同的包解析,让pss框架能够对通信协议这块处理完全开放,不再有同一个pss服务器的包头包体模式要求所有通信协议的包头字节数一样的隐性规则。
虽然可以用数据流模式可以解决这个问题,但是用流模式要考虑处理粘包,切包,包数据缓存等问题,把问题复杂化了。

AEC定时器崩溃

版本用的是v1.1.0
aec定时器使用是崩溃了,ace使用的是这个
typedef ACE_Thread_Timer_Queue_Adapter<ACE_Timer_Wheel> ActiveTimer;

崩溃bt:
(gdb) bt #0 ACE_Message_Block::base (this=0x0) at /mnt/ACE_wrappers/ace/Message_Block.inl:362 #1 ACE_Message_Block::wr_ptr (this=0x0) at /mnt/ACE_wrappers/ace/Message_Block.inl:362 #2 Tcp_Common_Send_Message_Error (u4ConnectID=u4ConnectID@entry=149, u2CommandID=u2CommandID@entry=10242, blDelete=blDelete@entry=true, pBuffPacket=pBuffPacket@entry=0x7f648de76508) at /root/PSS-master/purenessscopeserver/FrameCore/Common/BaseHander.cpp:167 #3 0x000055d1de2b223f in CConnectManager::SendMessage (this=<optimized out>, u4ConnectID=149, pBuffPacket=0x7f648de76508, u2CommandID=<optimized out>, u1SendState=<optimized out>, u1SendType=<optimized out>, tvSendBegin=..., blDelete=true, nMessageID=1) at /root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp:1777 #4 0x000055d1de2b241c in CConnectManager::Dispose_Queue (this=this@entry=0x55d1e081f9e0) at /root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp:2210 #5 0x000055d1de2b2638 in CConnectManager::svc (this=0x55d1e081f9e0) at /root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp:1964 #6 0x00007f648eeba3ad in ACE_Task_Base::svc_run (args=0x55d1e081f9e0) at /mnt/ACE_wrappers/ace/Task.cpp:290 #7 0x00007f648eebb2b6 in ACE_Thread_Adapter::invoke_i (this=<optimized out>) at /mnt/ACE_wrappers/ace/Thread_Adapter.cpp:161 #8 0x00007f648eebb1bb in ACE_Thread_Adapter::invoke (this=0x55d1e15b20f0) at /mnt/ACE_wrappers/ace/Thread_Adapter.cpp:96 #9 0x00007f648e9dbfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486 #10 0x00007f648e90c4cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

最后打印的日志:
[2021-04-11 03:35:23.824601 13897|140069511866112][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](215)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:24.007771 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:24.811328 13897|140069788251904][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ReTTyClientManager.cpp,175][CReTTyClientManager::handle_timeout](100)Run. [2021-04-11 03:35:24.871037 13897|140069779859200][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1914][CConnectManager::TimeWheel_Timeout_Callback]Timeout Count(0). [2021-04-11 03:35:25.438519 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](255)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:25.812291 13897|140069788251904][/root/PSS-master/purenessscopeserver/example-Module/MSServer/MSServer.cpp,176][GetModuleState] u4ErrorID=0. [2021-04-11 03:35:28.879882 13897|140069520258816][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](10)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:28.895995 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:28.920217 13897|140069520258816][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](10)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:28.936107 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:29.000243 13897|140069520258816][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](10)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:29.009980 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:29.017943 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:29.040734 13897|140069520258816][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](10)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:29.059332 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:30.439048 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](255)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:30.696336 13897|140069520258816][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](10)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:30.715174 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:31.101212 13897|140069520258816][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](10)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:31.117979 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:31.141638 13897|140069520258816][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](10)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:31.158226 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:31.158678 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:31.181224 13897|140069520258816][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](10)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:31.543966 13897|140069520258816][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](10)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:31.564622 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:31.564671 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:31.583509 13897|140069520258816][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](10)Cmd(0x2802).sCommand(0x420c). [2021-04-11 03:35:34.011848 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:35.439586 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](255)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:39.012089 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:40.440109 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](255)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:44.012334 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:45.440387 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](255)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:49.013242 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](150)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:50.440930 13897|140069528651520][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](255)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:53.141282 13897|140069511866112][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](215)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:53.141356 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1775][CConnectManager::SendMessage] ConnectID[2] is not find, PacketSize=161.[2021-04-11 03:35:53.141398 13897|140069503473408][../../purenessscopeserver/Common/ObjectPoolManager.h,142][CObjectPoolManager::Delete]szPacketID=2297(0x8de74900). [2021-04-11 03:35:53.141411 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1775][CConnectManager::SendMessage] ConnectID[173] is not find, PacketSize=161.[2021-04-11 03:35:53.141425 13897|140069503473408][../../purenessscopeserver/Common/ObjectPoolManager.h,142][CObjectPoolManager::Delete]szPacketID=2298(0x8de74b28). [2021-04-11 03:35:53.141435 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1775][CConnectManager::SendMessage] ConnectID[149] is not find, PacketSize=161.[2021-04-11 03:35:53.141448 13897|140069503473408][../../purenessscopeserver/Common/ObjectPoolManager.h,142][CObjectPoolManager::Delete]szPacketID=2299(0x8de74d50). [2021-04-11 03:35:53.141459 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1775][CConnectManager::SendMessage] ConnectID[45] is not find, PacketSize=161.[2021-04-11 03:35:53.141476 13897|140069503473408][../../purenessscopeserver/Common/ObjectPoolManager.h,142][CObjectPoolManager::Delete]szPacketID=2300(0x8de74f78). [2021-04-11 03:35:53.141494 13897|140069511866112][/root/PSS-master/purenessscopeserver/FrameCore/Message/MessageService.cpp,447][CMessageService::DoMessage] pClientCommandList no find. [2021-04-11 03:35:53.141508 13897|140069511866112][/root/PSS-master/purenessscopeserver/FrameCore/Message/MessageService.cpp,447][CMessageService::DoMessage] pClientCommandList no find. [2021-04-11 03:35:53.141519 13897|140069511866112][/root/PSS-master/purenessscopeserver/FrameCore/Message/MessageService.cpp,447][CMessageService::DoMessage] pClientCommandList no find. [2021-04-11 03:35:53.141535 13897|140069528651520][/root/PSS-master/purenessscopeserver/FrameCore/Message/MessageService.cpp,447][CMessageService::DoMessage] pClientCommandList no find. [2021-04-11 03:35:53.141588 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1775][CConnectManager::SendMessage] ConnectID[90] is not find, PacketSize=161.[2021-04-11 03:35:53.141600 13897|140069503473408][../../purenessscopeserver/Common/ObjectPoolManager.h,142][CObjectPoolManager::Delete]szPacketID=2302(0x8de753c8). [2021-04-11 03:35:53.141607 13897|140069528651520][/root/PSS-master/purenessscopeserver/FrameCore/Message/MessageService.cpp,447][CMessageService::DoMessage] pClientCommandList no find. [2021-04-11 03:35:53.141639 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1775][CConnectManager::SendMessage] ConnectID[211] is not find, PacketSize=161.[2021-04-11 03:35:53.141653 13897|140069503473408][../../purenessscopeserver/Common/ObjectPoolManager.h,142][CObjectPoolManager::Delete]szPacketID=2304(0x8de75818). [2021-04-11 03:35:53.141658 13897|140069520258816][/root/PSS-master/purenessscopeserver/FrameCore/Message/MessageService.cpp,447][CMessageService::DoMessage] pClientCommandList no find. [2021-04-11 03:35:53.141680 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1775][CConnectManager::SendMessage] ConnectID[194] is not find, PacketSize=161.[2021-04-11 03:35:53.141694 13897|140069503473408][../../purenessscopeserver/Common/ObjectPoolManager.h,142][CObjectPoolManager::Delete]szPacketID=2306(0x8de75c68). [2021-04-11 03:35:53.141726 13897|140069511866112][/root/PSS-master/purenessscopeserver/FrameCore/Message/MessageService.cpp,447][CMessageService::DoMessage] pClientCommandList no find. [2021-04-11 03:35:53.141910 13897|140069511866112][/root/PSS-master/purenessscopeserver/example-Module/MSServer/BaseCommand.cpp,210][CBaseCommand::Do_Device_Work](215)Cmd(0x2802).sCommand(0x2873). [2021-04-11 03:35:53.141908 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1775][CConnectManager::SendMessage] ConnectID[192] is not find, PacketSize=161.[2021-04-11 03:35:53.141956 13897|140069503473408][../../purenessscopeserver/Common/ObjectPoolManager.h,142][CObjectPoolManager::Delete]szPacketID=2309(0x8de762e0). [2021-04-11 03:35:53.141972 13897|140069528651520][/root/PSS-master/purenessscopeserver/FrameCore/Message/MessageService.cpp,447][CMessageService::DoMessage] pClientCommandList no find. [2021-04-11 03:35:53.141993 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1775][CConnectManager::SendMessage] ConnectID[2] is not find, PacketSize=161.[2021-04-11 03:35:53.142050 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1775][CConnectManager::SendMessage] ConnectID[173] is not find, PacketSize=322.[2021-04-11 03:35:53.142069 13897|140069503473408][../../purenessscopeserver/Common/ObjectPoolManager.h,142][CObjectPoolManager::Delete]szPacketID=2310(0x8de76508). [2021-04-11 03:35:53.142080 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Reactor/ConnectHandler.cpp,1775][CConnectManager::SendMessage] ConnectID[149] is not find, PacketSize=0.[2021-04-11 03:35:53.142091 13897|140069503473408][/root/PSS-master/purenessscopeserver/FrameCore/Common/MessageBlockManager.cpp,26][CMessageBlockManager::Create]Size=0.

定时器BUG

问题描述(question)

TimeThread定时器问题
1、反复测试定时器线程在Add单个定时器正常无误
2、多个定时器之后,定时器镜像m_TimerAssemble的索引逻辑错误,崩溃错误

具体如下:
当我配置1秒,2秒,3秒3个定时器,按照逻辑,最小公倍数为6秒,6秒为一个大周期,m_TimerAssemble 6秒内(一个公倍周期内)共有6个一级子定时执行镜像子集,在遍历时函数CTimerInfoList::Get_Next_Assemble()内部判断逻辑如下
if (m_nCurrTimerIndex == GetCurrTimerCount() - 1)
{
m_nCurrTimerIndex = 0;
}
else
{
m_nCurrTimerIndex++;
}
GetCurrTimerCount()取的是定时器数量,不是执行镜像集数量,因而前后不对应报错,修复后应该无误

操作系统环境(OS Environment):

WIN7

ACE版本环境(ACE Version):

6.4.0

PSS配置文件信息(PSS configure XML file content):

逻辑过程描述(Logic plugin describe):

问题描述(Question describe):

堆栈信息(Stack information):

期待结果(Expected results):

接收和发送数据时对EAGAIN,EINTR,EWOULDBLOCK

问题描述(question)

现在只处理了EAGAIN错误,没有对EINTR错误进行处理,建议加上EINTR的错误处理,至于EWOULDBLOCK错误,好像是windows才有。

操作系统环境(OS Environment):

ACE版本环境(ACE Version):

PSS配置文件信息(PSS configure XML file content):

逻辑过程描述(Logic plugin describe):

问题描述(Question describe):

堆栈信息(Stack information):

期待结果(Expected results):

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.