This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
daniel gerrit-no-reply at lists.osmocom.orgdaniel has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/python/osmo-python-tests/+/14545 )
Change subject: osmo_trap2cgi.py: Don't recurse in ctrl_client()
......................................................................
osmo_trap2cgi.py: Don't recurse in ctrl_client()
Use a loop instead. Without it the script will eventually crash with a
RecursionError.
File "/usr/bin/osmo_trap2cgi.py", line 211, in conn_client
await ctrl_client(proxy, reader, writer)
File "/usr/bin/osmo_trap2cgi.py", line 202, in ctrl_client
proxy.dispatch(wr, data)
[...]
File "/usr/bin/osmo_trap2cgi.py", line 202, in ctrl_client
proxy.dispatch(wr, data)
File "/usr/bin/osmo_trap2cgi.py", line 201, in ctrl_client
[...]
RecursionError: maximum recursion depth exceeded in comparison
Change-Id: Ic909e371771f3056cb87e18793fd4225ffb90a2c
Related: SYS#4399
---
M scripts/osmo_trap2cgi.py
1 file changed, 18 insertions(+), 15 deletions(-)
Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, approved
diff --git a/scripts/osmo_trap2cgi.py b/scripts/osmo_trap2cgi.py
index ad66e7b..ca73fa8 100755
--- a/scripts/osmo_trap2cgi.py
+++ b/scripts/osmo_trap2cgi.py
@@ -22,7 +22,7 @@
*/
"""
-__version__ = "0.0.1" # bump this on every non-trivial change
+__version__ = "0.0.2" # bump this on every non-trivial change
from functools import partial
import configparser, argparse, time, os, asyncio, aiohttp
@@ -190,29 +190,32 @@
return await reader.readexactly(num_bytes)
except asyncio.IncompleteReadError:
proxy.log.info('Failed to read %d bytes reconnecting to %s:%d...', num_bytes, proxy.ctrl_addr, proxy.ctrl_port)
- await conn_client(proxy)
+ raise
async def ctrl_client(proxy, rd, wr):
"""
- Recursively read CTRL stream and handle selected messages.
+ Read CTRL stream and handle selected messages.
"""
- header = await recon_reader(proxy, rd, 4)
- data = await recon_reader(proxy, rd, get_ctrl_len(proxy, header))
- proxy.dispatch(wr, data)
- await ctrl_client(proxy, rd, wr)
+ while True:
+ header = await recon_reader(proxy, rd, 4)
+ data = await recon_reader(proxy, rd, get_ctrl_len(proxy, header))
+ proxy.dispatch(wr, data)
async def conn_client(proxy):
"""
(Re)establish connection with CTRL server and pass Reader/Writer to CTRL handler.
"""
- try:
- reader, writer = await asyncio.open_connection(proxy.ctrl_addr, proxy.ctrl_port)
- proxy.log.info('Connected to %s:%d', proxy.ctrl_addr, proxy.ctrl_port)
- await ctrl_client(proxy, reader, writer)
- except OSError as e:
- proxy.log.info('%s: %d seconds delayed retrying...', e, proxy.timeout)
- await asyncio.sleep(proxy.timeout)
- await conn_client(proxy)
+ while True:
+ try:
+ reader, writer = await asyncio.open_connection(proxy.ctrl_addr, proxy.ctrl_port)
+ proxy.log.info('Connected to %s:%d', proxy.ctrl_addr, proxy.ctrl_port)
+ await ctrl_client(proxy, reader, writer)
+ except OSError as e:
+ proxy.log.info('%s: %d seconds delayed retrying...', e, proxy.timeout)
+ await asyncio.sleep(proxy.timeout)
+ except asyncio.IncompleteReadError:
+ pass
+ proxy.log.info('Reconnecting...')
if __name__ == '__main__':
--
To view, visit https://gerrit.osmocom.org/c/python/osmo-python-tests/+/14545
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: python/osmo-python-tests
Gerrit-Branch: master
Gerrit-Change-Id: Ic909e371771f3056cb87e18793fd4225ffb90a2c
Gerrit-Change-Number: 14545
Gerrit-PatchSet: 3
Gerrit-Owner: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: msuraev <suraev at alumni.ntnu.no>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190626/fe2808f8/attachment.htm>