I've run into a strange bug (that may be related to #13) sometimes reproducible by the following test case:
import ravel
import asyncio
async def main():
async def func():
bus = ravel.system_bus()
bus.attach_asyncio()
manager = await bus['org.bluez']['/'].get_async_interface('org.freedesktop.DBus.ObjectManager')
asyncio.create_task(manager.GetManagedObjects())
# Not creating func causes only a "asyncio.base_futures.InvalidStateError: invalid state"
await func()
# Any large module works (e.g. aiohttp)
import numpy
if __name__ == '__main__':
asyncio.run(main())
It specifically needs Python 3.7.1 for asyncio.create_task and asyncio.run and triggers about 50% of the time on my armv7l server:
Program received signal SIGSEGV, Segmentation fault.
0xb6d45b4c in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.7m.so.1.0
(gdb) bt
#0 0xb6d45b4c in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.7m.so.1.0
#1 0xb6e43ab8 in _PyEval_EvalCodeWithName () from /usr/lib/libpython3.7m.so.1.0
#2 0xb6d6c470 in _PyFunction_FastCallDict () from /usr/lib/libpython3.7m.so.1.0
#3 0xb5edb62c in ?? () from /home/test/venv3/lib/python3.7/lib-dynload/_ctypes.cpython-37m-arm-linux-gnueabihf.so
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
On other platforms only the following occurs (again with Python 3.7.1):
Traceback (most recent call last):
File "_ctypes/callbacks.c", line 232, in 'calling callback function'
File "/home/test/venv3/lib/python3.7/site-packages/dbussy.py", line 4725, in _wrap_notify
function(self, user_data)
File "/home/test/venv3/lib/python3.7/site-packages/dbussy.py", line 4790, in pending_done
done.set_result(self.steal_reply())
asyncio.base_futures.InvalidStateError: invalid state
Similar code is part of a much larger application and it doesn't segfault about 30% of the time but with occasional startup errors like:
Traceback (most recent call last):
File "_ctypes/callbacks.c", line 232, in 'calling callback function'
File "/home/test/venv3/lib/python3.7/site-packages/dbussy.py", line 4725, in _wrap_notify
function(self, user_data)
NameError: free variable 'function' referenced before assignment in enclosing scope
And:
Traceback (most recent call last):
File "_ctypes/callbacks.c", line 232, in 'calling callback function'
TypeError: _seg_22() takes 0 positional arguments but 2 were given
I've just somewhat figured out how to use the ravel module from the source code and the examples repository, so is this just me misusing it?
I've run into a strange bug (that may be related to #13) sometimes reproducible by the following test case:
It specifically needs Python 3.7.1 for
asyncio.create_taskandasyncio.runand triggers about 50% of the time on my armv7l server:On other platforms only the following occurs (again with Python 3.7.1):
Similar code is part of a much larger application and it doesn't segfault about 30% of the time but with occasional startup errors like:
And:
I've just somewhat figured out how to use the
ravelmodule from the source code and the examples repository, so is this just me misusing it?