aiotc
aiotc copied to clipboard
obj manager, id:3, get lowest slave failed !!!
hi,@debugger999,When I test gat1400 protocol with postman,The following error occurred:
ERR : FILE -> work.cpp, LINE -> 216, mqOpen, mq open 172.17.0.2:5672 failed obj manager, id:3, get lowest slave failed
the postman info:
http://172.17.0.2:11706/system/init { "masterIp": "172.17.0.2", "msgOutParams": [ { "type": "mq", "host": "172.17.0.2", "port": 5672, "userName": "guest", "passWord": "guest", "exchange": "aiotc.exchange.message", "routingKey": "" } ],
"gat1400Params": {
"localGatHostIp": "34010000002000000001",
"localGatServerId": "32020200002000000002",
"localGatPort": 7100,
"platform": [
{
"id": "32020200002000000001",
"ip": "172.17.0.2",
"port": 7200,
"username": "admin",
"password": "admin",
"extra": {
"manufactor": "hik"
}
}
]
}
}
http://172.17.0.2:11706/obj/add/gat1400 { "name":"test", "type":"camera", "id":3, "data":{ "subType":"gat1400", "deviceId": "32020200002000000003", "mode": 0, "slaveIp": "172.17.2.0", "platformId": "32020200002000000001" } }
http://172.17.0.2:11706/system/slave/add { "slaveIp":"172.17.0.2", "restPort":11762, "streamPort":11764, "internetIp": "8.8.8.8" }
关于“mq open 172.17.0.2:5672 failed”,应该是你没有初始化rabiitmq服务器导致,这个不影响测试,只是无法通过mq接收抓拍信息。 关于“get lowest slave failed”,我的理解,可能是没有严格按照"https://debugger999.github.io/2020/06/29/js-version/"中的步骤,漏了“添加slave”这一步。 仅作参考。
我刚刚又做了测试的,还是报 “get lowest slave failed“错误,终端打印印象如下:
WARRING : FILE -> work.cpp, LINE -> 194, mqOpen, please system init first DEBUG : FILE -> rest.cpp, LINE -> 287, request_cb, pid:2118, /system/init:{ "masterIp": "172.17.0.2", "msgOutParams": [ { "type": "mq", "host": "172.17.0.2", "port": 5672, "userName": "guest", "passWord": "guest", "exchange": "aiotc.exchange.message", "routingKey": "" } ],
"gat1400Params": {
"localGatHostIp": "34010000002000000001",
"localGatServerId": "32020200002000000002",
"localGatPort": 7100,
"platform": [
{
"id": "32020200002000000001",
"ip": "172.17.0.2",
"port": 7200,
"username": "admin",
"password": "admin",
"extra": {
"manufactor": "hik"
}
}
]
}
}
delet failed, original.msgOutParams.type, No suitable servers found (serverSelectionTryOnce set): [connection refused calling ismaster on '192.168.0.99:27017']
ERR : FILE -> db.cpp, LINE -> 273, dbWrite, insert failed, {"original":{
"masterIp": "172.17.0.2",
"msgOutParams": [
{
"type": "mq",
"host": "172.17.0.2",
"port": 5672,
"userName": "guest",
"passWord": "guest",
"exchange": "aiotc.exchange.message",
"routingKey": ""
}
],
"gat1400Params": {
"localGatHostIp": "34010000002000000001",
"localGatServerId": "32020200002000000002",
"localGatPort": 7100,
"platform": [
{
"id": "32020200002000000001",
"ip": "172.17.0.2",
"port": 7200,
"username": "admin",
"password": "admin",
"extra": {
"manufactor": "hik"
}
}
]
}
} }, No servers yet eligible for rescan
DEBUG : FILE -> rest.cpp, LINE -> 287, request_cb, pid:2118, /system/slave/add:{
"slaveIp":"172.17.0.2",
"restPort":11762,
"streamPort":11764
delet failed, original.slaveIp, No suitable servers found (serverSelectionTryOnce set): [connection refused calling ismaster on '192.168.0.99:27017']
ERR : FILE -> db.cpp, LINE -> 273, dbWrite, insert failed, {"original":{
"slaveIp":"172.17.0.2",
"restPort":11762,
"streamPort":11764
}}, No servers yet eligible for rescan
DEBUG : FILE -> rest.cpp, LINE -> 287, request_cb, pid:2118, /obj/add/gat1400:{
"name":"test",
"type":"camera",
"id":3,
"data":{
"subType":"gat1400",
"deviceId": "32020200002000000003",
"mode": 0,
"slaveIp": "172.17.0.2",
"platformId": "32020200002000000001"
}
}
obj manager, id:3, get lowest slave failed
delet failed, original.id, No suitable servers found (serverSelectionTryOnce set): [connection refused calling ismaster on '192.168.0.99:27017']
ERR : FILE -> db.cpp, LINE -> 273, dbWrite, insert failed, {"original":{
"name":"test",
"type":"camera",
"id":3,
"data":{
"subType":"gat1400",
"deviceId": "32020200002000000003",
"mode": 0,
"slaveIp": "172.17.0.2",
"platformId": "32020200002000000001"
}
}}, No servers yet eligible for rescan
obj manager, id:3, get lowest slave failed obj manager, id:3, get lowest slave failed obj manager, id:3, get lowest slave failed obj manager, id:3, get lowest slave failed obj manager, id:3, get lowest slave failed obj manager, id:3, get lowest slave failed
从你的信息,没有看到“添加slave”命令
DEBUG : FILE -> rest.cpp, LINE -> 287, request_cb, pid:2118, /system/slave/add:{ "slaveIp":"172.17.0.2", "restPort":11762, "streamPort":11764 delet failed, original.slaveIp, No suitable servers found (serverSelectionTryOnce set): [connection refused calling ismaster on '192.168.0.99:27017'] ERR : FILE -> db.cpp, LINE -> 273, dbWrite, insert failed, {"original":{ "slaveIp":"172.17.0.2", "restPort":11762, "streamPort":11764
}}, No servers yet eligible for rescan
这个就是的吧?
http://172.17.0.2:11706/system/slave/add { "slaveIp":"172.17.0.2", "restPort":11762, "streamPort":11764
} 这个是我用postman 发的,初始化完了后,就发的增加slave设备这条命令
我觉得,你需要在函数_getlowestLoadSlave里面加几条调试信息,看哪个条件导致的异常。参考如下: static int _getlowestLoadSlave(node_common *p, void *arg) { slaveParam **ppLowestSlave = (slaveParam **)arg; slaveParam *pSlaveParam = (slaveParam *)p->name;
printf("##test, %d, %d,%d,%d,%d\n", __LINE__,
pSlaveParam->online, pSlaveParam->systemInit, pSlaveParam->load,
pSlaveLast->load);
if(*ppLowestSlave == NULL) {
printf("##test, %d\n", __LINE__);
if(pSlaveParam->online && pSlaveParam->systemInit && pSlaveParam->load < SLAVE_LOAD_MAX) {
printf("##test, %d\n", __LINE__);
*ppLowestSlave = pSlaveParam;
}
}
else {
slaveParam *pSlaveLast = *ppLowestSlave;
printf("##test, %d\n", __LINE__);
if(pSlaveParam->load < pSlaveLast->load && pSlaveParam->online && pSlaveParam->systemInit) {
printf("##test, %d\n", __LINE__);
*ppLowestSlave = pSlaveParam;
}
}
printf("##test, %d\n", __LINE__);
return 0;
}