but it fail with message: 2019-09-12T09:54:12.136Z [ERROR] Uncaught exception; pid=1329 exceptionName="Error" exceptionMessage="Task name not recognized" exceptionStack="Error: Task name not recognized\n at nextRpc (/opt/genieacs/dist/bin/genieacs-cwmp:2:122374)\n at process._tickCallback (internal/process/next_tick.js:68:7)" 2019-09-12T09:54:12.151Z [ERROR] Worker died; pid=1329 exitCode=0
Same errors when I execute my command: curl -i 'http://192.168.12.32:7557/devices/F48CEB-Router-QXNN1J1006025/tasks?timeout=3000&connection_request' -X POST --data '{ "name": "getParameterValues", "parameterNames": ["InternetGatewayDevice.LANDevice.1.WLANConfiguration"] }'
If it’s important I use docker image drumsergio/genieacs:1.2.0
Question: I’m doing something wrong or the problem is rather on the GenieACS side
2020-05-25T19:35:51.550Z [ERROR] Uncaught exception; pid=79 exceptionName=“Error” exceptionMessage=“Task name not recognized” exceptionStack=“Error: Task name not recognized\n at nextRpc (/opt/genieacs/dist/bin/genieacs-cwmp:2:126385)\n at process._tickCallback (internal/process/next_tick.js:68:7)”
2020-05-25T19:35:51.616Z [ERROR] Worker died; pid=79 exitCode=0
2020-05-25T19:35:52.012Z [INFO] Worker listening; pid=2771 address=“0.0.0.0” port=7547
For me, this happens due to bad format messages when using the NBI interface through Postman for example. The problem is deterministic if you use a space in “name” parameter for example, as you can see below:
This is enough to get the “Worker Died” problem and this can cause other problems since this message is queued and never expires. All other messages that is queued after this one will not be processed and all the messages stays in the queue forever. Genieacs-cwmp process keeps dying and restarting due to this exception and never treats the other messages after this one.
Is there any fix for this? Is this a known problem?
Yes, I know, the question I wanted to get to is more about the resilience of the process. The idea is to show the consequences of the problem. If the user misspells and send message in bad format, the GenieACS process will generate exceptions and can enter in a loop process of start/stop process. That can compromise the handling of the next messages in the queue. (This is one case of how to generate this exception, off course it can be other ways of causing the same problem).