llnl / llnl/pylibROM

MFEM library conflict with pyMFEM>=4.5.2.1

Open
#2 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
63
Forks
3
PR merge metrics
No merged PRs in 30d

Description

A library conflict is observed for `pyMFEM>=4.5.2.1`.

When importing pyMFEM after pylibROM,
```
Python 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pylibROM
>>> import mfem.ser as mfem
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.10/dist-packages/mfem/ser.py", line 2, in
from mfem._ser.globals import *
File "/usr/local/lib/python3.10/dist-packages/mfem/_ser/globals.py", line 10, in
from . import _globals
ImportError: /usr/local/lib/python3.10/dist-packages/mfem/_ser/_globals.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZTIN4mfem14ErrorExceptionE
```

On the other way around (pylibROM after pyMFEM):
```
Python 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mfem.ser as mfem
>>> import pylibROM
Traceback (most recent call last):
File "", line 1, in
ImportError: /home/test/pylibROM/extern/libROM/build/lib/libROM.so: undefined symbol: _ZTVN4mfem15ParGridFunctionE
```

**NOTE** this does not happen with `pyMFEM==4.5.2.0`.

The reason is not clear why the conflict occurs in the new version, but not in the old version. One difference between them is their `mfem` commit:
- 4.5.2.0: [00b2a07](https://github.com/mfem/mfem/commits/00b2a0705f647e17a1d4ffcb289adca503f28d42) (Commit on Mar 23, 2023)
- 4.5.2.1: [962774d](https://github.com/mfem/mfem/commits/962774d5ffa84ceed3bc670e52388250ee028da1) (Commit on May 10, 2023)

However, matching our `mfem` commit to [962774d](https://github.com/mfem/mfem/commits/962774d5ffa84ceed3bc670e52388250ee028da1) did not resolve the issue. Based on the [release](https://github.com/mfem/PyMFEM/releases) history, version `4.5.2.1` seems to be a only 2-week-old pre-release.

Until the issue is sorted out, we should enforce users to use `pyMFEM==4.5.2.0`.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the two Python import orders shown in the issue with pyMFEM 4.5.2.1 and 4.5.2.0, then inspect the dependency configuration that controls the pyMFEM version. Done means the supported version is enforced and both import orders complete without undefined-symbol errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.