Opened 2 years ago

Last modified 2 years ago

#63918 assigned defect

IPython3-3.8 import of pyplot quits with 'Abort trap: 6'

Reported by: aaronm6 Owned by: lpsinger (Leo Singer)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: pyplot, ipython Cc: stromnov (Andrey Stromnov), reneeotten (Renee Otten), someuser12
Port: py-ipython, py-matplotlib

Description (last modified by aaronm6)

Description: Importing matplotlib.pyplot within IPython3 (python3.8) runs fine, but then when exiting, IPython throws an abort error, followed by a "Python quit unexpectedly" popup window (see attached).

Relevant port versions:

py38-ipython @7.28.0_0
py38-matplotlib @3.4.3_0+cairo+webagg
py38-matplotlib-inline @0.1.3_0
py38-numpy @1.21.4_0+gfortran+openblas

Terminal behavior

:~$ ipython3-3.8
Python 3.8.12 (default, Nov 11 2021, 05:33:59) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.28.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from matplotlib import pyplot

In [2]: quit
Abort trap: 6
:~$ 

Attachments (1)

Screen Shot 2021-11-11 at 7.41.28 PM.png (72.4 KB) - added by aaronm6 2 years ago.

Download all attachments as: .zip

Change History (9)

Changed 2 years ago by aaronm6

comment:1 Changed 2 years ago by aaronm6

Description: modified (diff)

comment:2 Changed 2 years ago by jmroot (Joshua Root)

Cc: stromnov reneeotten added
Owner: set to lpsinger
Port: py-ipython py-matplotlib added; py38-ipython py38-matplotlib removed
Status: newassigned

comment:3 Changed 2 years ago by reneeotten (Renee Otten)

@aaromnm6 you'll have to provide a bit more information about OS and such as this works fine for me.

 % port -v installed py38-numpy py38-ipython py38-matplotlib py38-matplotlib-inline
The following ports are currently installed:
  py38-ipython @7.28.0_0 (active) requested_variants='' platform='darwin 19' archs='noarch' date='2021-11-13T12:31:31-0500'
  py38-matplotlib @3.4.3_0+cairo+webagg (active) requested_variants='' platform='darwin 19' archs='x86_64' date='2021-11-13T12:31:52-0500'
  py38-matplotlib-inline @0.1.3_0 (active) requested_variants='' platform='darwin 19' archs='noarch' date='2021-11-13T12:31:26-0500'
  py38-numpy @1.21.4_0+gfortran+openblas (active) requested_variants='' platform='darwin 19' archs='x86_64' date='2021-11-13T12:29:21-0500'
% ipython3-3.8
Python 3.8.12 (default, Nov 13 2021, 10:49:08)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.28.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from matplotlib import pyplot

In [2]:

comment:4 Changed 2 years ago by aaronm6

@reneeotten Thanks for trying it out, I'll try to give as much info as I can here (right off the bat, I notice that we're using different darwin versions). A few clarifying points:

  • The import line itself does not throw an error, and all the pyplot functionality works fine (as far as I can tell); the Abort trap only occurs when I quit out of IPython.
  • Importing matplotlib+quitting gives no problems
  • Importing pyplot+quitting in regular python3 gives no problems

System Software Overview:

  • System Version: MacOS 11.6 (20G165)
  • Kernel Version: Darwin 20.6.0

More port info

:~$ port -v installed python38 py38-numpy py38-ipython py38-matplotlib py38-matplotlib-inline ipython_select ipython3_select gcc11 libgcc libgcc11 OpenBLAS
The following ports are currently installed:
  ipython3_select @0.1_0 (active) requested_variants='' platform='darwin 20' archs='noarch' date='2021-11-11T14:41:04-0800'
  ipython_select @0.4_0 (active) requested_variants='' platform='darwin 20' archs='noarch' date='2021-11-11T14:41:04-0800'
  py38-ipython @7.28.0_0 (active) requested_variants='' platform='darwin 20' archs='noarch' date='2021-11-11T14:41:49-0800'
  py38-matplotlib @3.4.3_0+cairo+webagg (active) requested_variants='' platform='darwin 20' archs='x86_64' date='2021-11-11T14:44:43-0800'
  py38-matplotlib-inline @0.1.3_0 (active) requested_variants='' platform='darwin 20' archs='noarch' date='2021-11-11T14:41:44-0800'
  py38-numpy @1.21.4_0+gfortran+openblas (active) requested_variants='' platform='darwin 20' archs='x86_64' date='2021-11-11T14:44:39-0800'
  python38 @3.8.12_3+optimizations (active) requested_variants='' platform='darwin 20' archs='x86_64' date='2021-11-11T14:41:27-0800'
  gcc11 @11.2.0_1 (active) requested_variants='' platform='darwin 20' archs='x86_64' date='2021-11-11T20:00:41-0800'
  libgcc @5.0_0 (active) requested_variants='' platform='darwin 20' archs='x86_64' date='2021-11-11T14:44:24-0800'
  libgcc11 @11.2.0_1 (active) requested_variants='' platform='darwin 20' archs='x86_64' date='2021-11-11T14:44:23-0800'
  OpenBLAS @0.3.18_0+gcc11+lapack (active) requested_variants='' platform='darwin 20' archs='x86_64' date='2021-11-11T14:44:25-0800'

It don't know whether clang is used in the build, but here is the version:

:~$ clang --version
Apple clang version 13.0.0 (clang-1300.0.29.3)
Target: x86_64-apple-darwin20.6.0
Thread model: posix

Please let me know if there's any useful information I've left out.

comment:5 Changed 2 years ago by reneeotten (Renee Otten)

ah, okay... well it might be not as friendly to get this abort when quitting ipython as long as running everything works fine it's not too bad ;) I do see the same thing so it's not OS related, I thought you were getting this when doing the import.

comment:6 Changed 2 years ago by piyushrpt

This looks like this might be related to libffi from the traceback. Same issue also occurs when working with py38-shapely.

from shapely.geometry import Polygon

comment:7 Changed 2 years ago by someuser12

I can confirm this under Mac OS 10.15.7 (19H1715) with Darwin 19.6.0 and Python 3.8.12, IPython 8.0.1.

The abort trap at exit after importing shapely.geometry also happens using python3.8 (not only IPython 3.8).

This looks this might be related to a problem which occurs *at import*: importing corner or pymc3, both in python3.8 or ipython3-3.8, triggers a segmentation fault. Here also the traceback suggests it might be related to libffi. However, on another machine running the same OS (10.15.7) I *can't* reproduce the segfault importing corner, even though I can reproduce the abort trap caused by matplotlib.pyplot or shapely.geometry.

Using python3.10, everything runs fine (importing matplotlib.pyplot, shapely.geometry, corner, or pymc3 does not trigger any segfault or abort trap either at importation or while quitting python3.8 or ipython3-3.8).

comment:8 Changed 2 years ago by someuser12

Cc: someuser12 added
Note: See TracTickets for help on using tickets.