[PyQt] Segfault on exit with Python 3.5
Phil Thompson
phil at riverbankcomputing.com
Sun Dec 20 17:21:16 GMT 2015
On 20 Dec 2015, at 5:03 pm, Dmitry Shachnev <mitya57 at ubuntu.com> wrote:
>
> Hi all,
>
> In my application I get a strange segfault on exit only when using Python
> 3.5.1 (does not happen with Python 3.4.4rc1).
>
> Segfault happens in this code:
>
> 808 int QMetaObjectPrivate::signalOffset(const QMetaObject *m)
> 809 {
> 810 Q_ASSERT(m != 0);
> 811 int offset = 0;
> 812 for (m = m->d.superdata; m; m = m->d.superdata)
> 813 >> offset += priv(m->d.data)->signalCount;
> 814 return offset;
> 815 }
>
> The full traceback is attached. Valgrind says that this code is trying to
> access address 0x30, which is (obviously) not mapped.
>
> I quickly figured out that reverting an innocently-looking commit [1] fixes
> this. While trying to provide a minimal example I also figured out that almost
> any minor change to the code makes the segfault disappear (thus I was not able
> to provide a minimal example).
>
> Has anybody else seen this? What component should I blame?
>
> [1]: https://github.com/retext-project/retext/commit/64fdbcb62d0c3155
Could you try rebuilding PyQt5 with the current SIP snapshot?
Phil
More information about the PyQt
mailing list