thegooglecodearchive / petsc4py

Automatically exported from code.google.com/p/petsc4py
Other
1 stars 0 forks source link

Segmentation fault on Python exit and missing symbols with C++ builds #23

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?

1. Run "python bug-20120704.py"

What is the expected output?

Nothing

What do you see instead?

Segmentation fault

What version of the product are you using?

petsc4py 1.2 together with Open MPI 1.6

On what operating system?

CentOS 5.8, which has Python 2.4

Please provide any additional information below.

As requested by Lisandro, I've run "valgrind python bug-20120704.py" and I've 
collected the output into the file bug-20120704-valgrind.out (attached).
Furthermore, I've run also "valgrind --leak-check=full --show-reachable=yes 
python bug-20120704.py" and I've collected the output into the file 
bug-20120704-valgrind-leak-check-full.out (attached).

Thanks in advance.
Best regards,
Michele

Original issue reported on code.google.com by micdeste...@gmail.com on 4 Jul 2012 at 6:40

Attachments:

GoogleCodeExporter commented 9 years ago
Can you try to clone branch release-1.2 and try again?

$ hg clone -b release-1.2 https://code.google.com/p/petsc4py/ petsc4py-1.2

The following commit 
http://code.google.com/p/petsc4py/source/detail?r=93ca15d4bf95a701bdade832bba28a
d84048d084&name=release-1.2 should fix your issue.

Original comment by dalcinl on 4 Jul 2012 at 3:16

GoogleCodeExporter commented 9 years ago
I've tried the branch, but the problem now is worse. Look what does it happen:

>>> from petsc4py import PETSc
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib64/python2.4/site-packages/petsc4py/PETSc.py", line 3, in ?
    PETSc = ImportPETSc(ARCH)
  File "/usr/lib64/python2.4/site-packages/petsc4py/lib/__init__.py", line 29, in ImportPETSc
    return Import('petsc4py', 'PETSc', path, arch)
  File "/usr/lib64/python2.4/site-packages/petsc4py/lib/__init__.py", line 64, in Import
    module = imp.load_module(fullname, fo, fn, stuff)
ImportError: /usr/lib64/python2.4/site-packages/petsc4py/lib/PETSc.so: 
undefined symbol: MatPythonGetContext

Original comment by micdeste...@gmail.com on 5 Jul 2012 at 8:32

GoogleCodeExporter commented 9 years ago
What PETSc version are you using? I cannot reproduce with 3.1, nor with 3.2

Original comment by dalcinl on 5 Jul 2012 at 2:43

GoogleCodeExporter commented 9 years ago
I'm using PETSc 3.2 p7. They are installed in /usr/local/petsc-openmpi.
When I've built, I've run

python setup.py build

(PETSC_DIR was exported as an environment variable; PETSC_ARCH not set ... I 
never needed to set it for building petsc4py)

I had the same issue on a Fedora 17 system, on a 32 bit machine.

Original comment by micdeste...@gmail.com on 5 Jul 2012 at 9:35

GoogleCodeExporter commented 9 years ago
I cannot reproduce (at least with the head of branch release-1.2). Are you 
using a C++ build? Could you send me the configure comand line you used to 
build PETSc?

Original comment by dalcinl on 6 Jul 2012 at 3:02

GoogleCodeExporter commented 9 years ago
Yes, I always set --with-clanguage=C++. I've attached my configure.log (for 
PETSc).
This is the one I've used on the Fedora 17 system.

Original comment by micdeste...@gmail.com on 6 Jul 2012 at 11:13

Attachments:

GoogleCodeExporter commented 9 years ago
I could reproduce the issue and push a (hacky) fix. It is related to a bug in 
Cython 0.16 that I've just discovered, now I'm working on fixing it for the 
upcomming Cython 0.17 release. Can you try again with petsc4py branch 
release-1.2?

Original comment by dalcinl on 18 Jul 2012 at 7:52

GoogleCodeExporter commented 9 years ago
I checked out release 1.2 with:

$ hg clone -b release-1.2 https://code.google.com/p/petsc4py/ petsc4py-1.2

and built it, but still have the same problem. i.e. segmentation fault on 
python exit. I'm using petsc3.2p7, Python 2.7.2, gcc 4.6.1 on CentOS release 
6.2 (Final)

Original comment by atruo...@gmail.com on 25 Jul 2012 at 3:14

GoogleCodeExporter commented 9 years ago
@atruong0: Can you reproduce with the script bug-20120704.py attached at the 
top of this issue? If not, can you provide minimal code to reproduce? It is 
working on my side, with clean valgrind output (using PETSc 3.2-p7  and Py 
2.7.3, and GCC 4.7, MPICH2 1.4.1p1 from Fedora 17)

Original comment by dalcinl on 25 Jul 2012 at 2:57

GoogleCodeExporter commented 9 years ago
Lisandro, on my side, your fix worked. I've updated my HG clone and rebuilt (on 
the CentOS 5.8 system). The segmentation fault disappeared.

Original comment by micdeste...@gmail.com on 30 Jul 2012 at 12:52