linux-automation / lxa-iobus Goto Github PK
View Code? Open in Web Editor NEWLinux Automation IOBus server
Home Page: https://lxa-iobus.readthedocs.io/en/latest/
License: Apache License 2.0
Linux Automation IOBus server
Home Page: https://lxa-iobus.readthedocs.io/en/latest/
License: Apache License 2.0
LXAIOBus nodes tend to be left in "locate" mode making it impossible to locate a new node. The locator function must be turned off manually, either via the web interface or with the button on the LXAIOBus. Only after that, the locator mode is useful.
When activating the locator mode on a node, it should time out after a few minutes (10? 30?).
The TROUBLESHOOTING.rst file is no longer present in the repo.
We should remove the reference to it and replace it with a link to this URL:
https://lxa-iobus.readthedocs.io/en/latest/troubleshooting.html
I used pip install -e .[server]
to install only the server portion, however this does not lead to a usable web interface.
Executing the Makefile used [full]
which leads to a working server environment. Either [server]
should be removed or fixed to provide a working server.
Today I observed a hanging IOBus Server with 100% one core load:
Jun 12 14:38:49 rlabD-srv systemd[1]: Starting lxa-iobus.service - LXA iobus Server...
Jun 12 14:38:49 rlabD-srv systemd[1]: Started lxa-iobus.service - LXA iobus Server.
Jun 12 14:38:53 rlabD-srv lxa-iobus-server[1225]: starting server on http://*:8080/
Jun 14 08:38:47 rlabD-srv lxa-iobus-server[1225]: WARNING:lxa-iobus.network:lss_ping: node <LxaBusNode(address=00000507.00000002.00000003.00000002, node_id=1)> does not respond
Jun 14 08:39:19 rlabD-srv lxa-iobus-server[1225]: WARNING:lxa-iobus.network:lss_ping: node <LxaBusNode(address=00000507.00000002.00000003.00000005, node_id=2)> does not respond
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: ERROR:aiohttp-json-rpc.server:list.remove(x): x not in list
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: Traceback (most recent call last):
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 325, in _handle_rpc_msg
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: await self._ws_send_str(http_request, result)
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 278, in _ws_send_str
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: self.clients.remove(client)
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: ValueError: list.remove(x): x not in list
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: ERROR:asyncio:Task exception was never retrieved
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: future: <Task finished name='Task-1938381' coro=<JsonRpc._handle_rpc_msg() done, defined at /usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py:283> exception=Val>
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: Traceback (most recent call last):
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 325, in _handle_rpc_msg
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: await self._ws_send_str(http_request, result)
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 278, in _ws_send_str
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: self.clients.remove(client)
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: ValueError: list.remove(x): x not in list
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: During handling of the above exception, another exception occurred:
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: Traceback (most recent call last):
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 339, in _handle_rpc_msg
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: await self._ws_send_str(http_request, encode_error(
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 278, in _ws_send_str
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: self.clients.remove(client)
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: ValueError: list.remove(x): x not in list
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: ERROR:aiohttp-json-rpc.server:list.remove(x): x not in list
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: Traceback (most recent call last):
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 325, in _handle_rpc_msg
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: await self._ws_send_str(http_request, result)
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 278, in _ws_send_str
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: self.clients.remove(client)
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: ValueError: list.remove(x): x not in list
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: ERROR:asyncio:Task exception was never retrieved
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: future: <Task finished name='Task-1938382' coro=<JsonRpc._handle_rpc_msg() done, defined at /usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py:283> exception=Val>
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: Traceback (most recent call last):
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 325, in _handle_rpc_msg
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: await self._ws_send_str(http_request, result)
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 278, in _ws_send_str
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: self.clients.remove(client)
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: ValueError: list.remove(x): x not in list
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: During handling of the above exception, another exception occurred:
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: Traceback (most recent call last):
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 339, in _handle_rpc_msg
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: await self._ws_send_str(http_request, encode_error(
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: File "/usr/ptx-venvs/lxa-iobus/lib/python3.11/site-packages/aiohttp_json_rpc/rpc.py", line 278, in _ws_send_str
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: self.clients.remove(client)
Jun 17 06:24:30 rlabD-srv lxa-iobus-server[1225]: ValueError: list.remove(x): x not in list
This looks like some issue related to client handling?
There is a new SDO endpoint SERVER_TIMEOUT_SDO
(0x2d06
) that, when set to 1
enables a watchdog mode in the node firmware.
When enabled the node will reset its node_id
after not being pinged for some time, so that it can be re-discovered via LSS.
I would go about implementing this feature like this:
SDO
s from LxaNode::get_info()
into a separate method (maybe also cache the results)SDO
s early in the node discoverySERVER_TIMEOUT
for nodes that support it as early in the node discovery as possibleThe manuals assume a v0.1 release. We should create one.
If the first release is not named v0.1 the following documents need updating:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.