conda-forge / mumps-feedstock

A conda-smithy repository for mumps.
BSD 3-Clause "New" or "Revised" License
5 stars 23 forks source link

Needs pin for metis #87

Closed mikemhenry closed 9 months ago

mikemhenry commented 1 year ago

Solution to issue cannot be found in the documentation.

Issue

Metis 1.1.1 causes a segfault so a pin is needed (but even better would be a repo data patach)

Installed packages

mumps-seq 5.2.1   h2104b81_11 metis >=5.1.0,<5.2.0a0 conda-forge

Environment info

mamba info

          mamba version : 1.4.7
     active environment : metis
    active env location : /home/tinkerer/.conda/envs/metis
            shell level : 2
       user config file : /home/tinkerer/.condarc
 populated config files : /opt/conda/.condarc
          conda version : 23.5.0
    conda-build version : not installed
         python version : 3.11.4.final.0
       virtual packages : __archspec=1=x86_64
                          __glibc=2.35=0
                          __linux=3.10.0=0
                          __unix=0=0
       base environment : /opt/conda  (writable)
      conda av data dir : /opt/conda/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /home/tinkerer/.conda/pkgs
       envs directories : /home/tinkerer/.conda/envs
                          /opt/conda/envs
               platform : linux-64
             user-agent : conda/23.5.0 requests/2.31.0 CPython/3.11.4 Linux/3.10.0-1160.25.1.el7.x86_64 ubuntu/22.04.2 glibc/2.35
                UID:GID : 1004:100
             netrc file : None
           offline mode : False
traversaro commented 1 year ago

Metis 1.1.1 causes a segfault so a pin is needed (but even better would be a repo data patach)

I think both are necessary. The repodata patch is necessary as metis from 5.1.0 to 5.1.1, and the pin is necessay as at the momement mumps hardcodes values only compatible with metis 5.1.0 . For the meanwhile I created the repodata patch in https://github.com/conda-forge/conda-forge-repodata-patches-feedstock/pull/527, once that is merged I can add a pin on metis 5.1.0 until somebody provides a patch for metis 5.1.1 compatibility.

mikemhenry commented 1 year ago

Yes that sounds correct.

akhmerov commented 10 months ago

I seem to be running into this issue also in mumps 5.6.2, which isn't even installable with metis 5.1.0.

traversaro commented 10 months ago

Metis 1.1.1 causes a segfault so a pin is needed (but even better would be a repo data patach)

I think both are necessary. The repodata patch is necessary as metis from 5.1.0 to 5.1.1, and the pin is necessay as at the momement mumps hardcodes values only compatible with metis 5.1.0 . For the meanwhile I created the repodata patch in conda-forge/conda-forge-repodata-patches-feedstock#527, once that is merged I can add a pin on metis 5.1.0 until somebody provides a patch for metis 5.1.1 compatibility.

Old version of mumps build with 5.1.0 have now the correct run_exports, thanks to https://github.com/conda-forge/conda-forge-repodata-patches-feedstock/pull/527 . Furthermore, the 5.1.1 compatibility was fixed in https://github.com/conda-forge/mumps-feedstock/pull/88 . A general migration of conda-forge to metis 5.1.1 is ongoing on https://conda-forge.org/status/#metis511, even if it is kind of stalling on https://github.com/conda-forge/gtsam-feedstock/pull/21 and https://github.com/conda-forge/ipopt-feedstock/pull/97 .

@akhmerov mumps 5.6.2 only works with metis 5.1.1 as it was built with metis 5.1.1. Just to understand more, why is this a problem for you?

akhmerov commented 10 months ago

Ah, the problem is that I see the segfault reported in https://github.com/conda-forge/metis-feedstock/issues/35 in mumps 5.6.2 build h5c37537_1 and metis 5.1.1 h59595ed_2.

Ah, maybe I'm wrong. I see a segmentation fault, which is different. I'll investigate what is up and update.

traversaro commented 10 months ago

Thanks for the details! In theory the specific segfaults in https://github.com/conda-forge/metis-feedstock/issues/35 was fixed by https://github.com/conda-forge/mumps-feedstock/pull/88 . To understand if the segfault is related to metis or mumps, if you are able to do so you can also try your code with mumps-seq-5.2.1-h5c37537_14 or similar, that is an earlier version of mumps that still uses metis 5.1.1 .

akhmerov commented 9 months ago

I have confirmed that there are still segfaults with MUMPS + Metis 5.1.1, observed in our wrapper. Making a self-contained reproducer will take me some more work, but I confirmed that:

traversaro commented 9 months ago

I have confirmed that there are still segfaults with MUMPS + Metis 5.1.1, observed in our wrapper. Making a self-contained reproducer will take me some more work, but I confirmed that:

* Both mumps-seq 5.2.1 and 5.6.2 segfault with metis ordering when Metis is at 5.1.1

* mumps-seq 5.2.1 works with Metis 5.1.0

* Both versions work with e.g. scotch ordering.

Thanks a lot for the investigation, I opened https://github.com/conda-forge/mumps-feedstock/issues/106 to track this problem.

akhmerov commented 9 months ago

There were seemingly memory issues in metis 5.1.1: https://github.com/KarypisLab/METIS/issues/24, which aren't released yet are released in 5.2.1. Given that metis 5.1.1 has known bugs, would it make sense to rebuild 5.6.2 with metis 5.1.0?

akhmerov commented 9 months ago

I believe this is addressed now, right?

traversaro commented 9 months ago

Yes, both the problem original reported and the new problem.