CloudI / CloudI

A Cloud at the lowest level!

Home Page:https://cloudi.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Python/C CloudI API MemoryError/SIGSEGV with clang -O0/-O2 and gcc -O2

okeuday opened this issue · comments

With gcc/g++ -O0 compilation the integration tests work as expected.

The SIGSEGV occurs due to corrupt data when the return or forward API function is called at the end of callback execution. The echo.py test avoids this problem by returning the echo string from the function (so, it likely has the same trans_id/source data corruption, but the corrupt data isn't accessed, so it doesn't cause a failure).

The current Python/C source code doesn't have Py_TPFLAGS_HAVE_GC in tp_flags, though it should be considered a container type due to holding the subscribe functions. Will need to add GC changes which should resolve this MemoryError/SIGSEGV problem.