[opensuse-factory] MySQL Workbench GRT python2 + libffi8 crash
Hi, Some time ago libffi was updated from 7 to 8. After that mysql-workbench stopped to start, I've figured that problem was somewhere in python/ffi code and though that rebuild/update to latest would be enough. For quickfix I've disabled python (`sudo chmod -r /usr/share/mysql-workbench/ libraries/wb.py`). I've finally updated mysql-workbench version to 8.0.19 in my home OBS repository, but problem still persists. Installing libffi7 and running `LD_PRELOAD=/usr/lib64/libffi.so.7 mysql-workbench` helps — workbench runs without a problem. But when libffi8 is used I've got exception with backtrace [1]. As my knowledge of Python is very limited, I'd be happy to get some advise. Is this a python2(-cffi) + libffi8 problem and I should report it? Is this some mysql-workbench GRT trouble and I should fix it there? And what exactly? [1] https://susepaste.org/62613888 -- Kind regards, Mykola Krachkovsky -- Найкращі побажання, Микола Крачковський
On Tue, 7 Apr 2020, Mykola Krachkovsky wrote:
Hi,
Some time ago libffi was updated from 7 to 8. After that mysql-workbench stopped to start, I've figured that problem was somewhere in python/ffi code and though that rebuild/update to latest would be enough. For quickfix I've disabled python (`sudo chmod -r /usr/share/mysql-workbench/ libraries/wb.py`). I've finally updated mysql-workbench version to 8.0.19 in my home OBS repository, but problem still persists. Installing libffi7 and running `LD_PRELOAD=/usr/lib64/libffi.so.7 mysql-workbench` helps — workbench runs without a problem. But when libffi8 is used I've got exception with backtrace [1].
As my knowledge of Python is very limited, I'd be happy to get some advise. Is this a python2(-cffi) + libffi8 problem and I should report it? Is this some mysql-workbench GRT trouble and I should fix it there? And what exactly?
I suspect python-ffi opens libffi by its development symlink (or uses some other weird way of obtaining "some" libffi library). libffi7 and libff8 are not binary compatible which might explain why shoveling in libffi.so.7 works but not libffi.so.8.
Unfortunately this backtrace doesn't tell anything useful. Richard. -- Richard Biener <rguenther@suse.de> SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg)
вівторок, 7 квітня 2020 р. 14:22:28 EEST Richard Biener написано:
I suspect python-ffi opens libffi by its development symlink (or uses some other weird way of obtaining "some" libffi library). libffi7 and libff8 are not binary compatible which might explain why shoveling in libffi.so.7 works but not libffi.so.8.
So I should create bugreport for python then, right?
Unfortunately this backtrace doesn't tell anything useful.
Using backtrace with debuginfo [1]. Maybe it would be more helpful. [1] https://susepaste.org/8375151 -- Kind regards, Mykola Krachkovsky -- Найкращі побажання, Микола Крачковський
On Tue, 7 Apr 2020, Mykola Krachkovsky wrote:
вівторок, 7 квітня 2020 р. 14:22:28 EEST Richard Biener написано:
I suspect python-ffi opens libffi by its development symlink (or uses some other weird way of obtaining "some" libffi library). libffi7 and libff8 are not binary compatible which might explain why shoveling in libffi.so.7 works but not libffi.so.8.
So I should create bugreport for python then, right?
Yes.
Unfortunately this backtrace doesn't tell anything useful.
Using backtrace with debuginfo [1]. Maybe it would be more helpful.
Hmm, it looks like a memory management issue of some sorts, eventually the newer libffi does more sanity checking here but it may also end up mangling things differently and python looking into implementation details where it should not ... So yes, a bugreport would be good to have though python2 is supposed to go away ... The error seems to happen during loading of the ctypes python package itself so eventually is reproducible with just
python2
import ctypes
can you try? (that's probably too simple ...) Unfortunately the backtrace has too many things <optimized out> to guess which function it tries to call (but maybe somebody knowing python ctypes will know). Richard.
вівторок, 7 квітня 2020 р. 15:56:17 EEST Richard Biener написано:
On Tue, 7 Apr 2020, Mykola Krachkovsky wrote:
So I should create bugreport for python then, right?
Yes.
Filed one https://bugzilla.opensuse.org/show_bug.cgi?id=1169213
python2
import ctypes
can you try? (that's probably too simple ...)
I've tried just `import ctypes` and `PYTHONPATH=/usr/lib64/mysql-workbench/modules python2 /usr/share/mysql- workbench/libraries/workbench/os_utils.py` (file in workbench that has import ctypes) both runs fine. So haven't found any simpler case for now. -- Kind regards, Mykola Krachkovsky -- Найкращі побажання, Микола Крачковський
participants (2)
-
Mykola Krachkovsky
-
Richard Biener