conda-forge / openblas-feedstock

A conda-smithy repository for openblas.
BSD 3-Clause "New" or "Revised" License
9 stars 38 forks source link

openblas v0.3.28 #163

Closed regro-cf-autotick-bot closed 4 weeks ago

regro-cf-autotick-bot commented 1 month ago

It is very likely that the current package version for this feedstock is out of date.

Checklist before merging this PR:

Information about this PR:

  1. Feel free to push to the bot's branch to update this PR if needed.
  2. The bot will almost always only open one PR per version.
  3. The bot will stop issuing PRs if more than 3 version bump PRs generated by the bot are open. If you don't want to package a particular version please close the PR.
  4. If you want these PRs to be merged automatically, make an issue with code>@conda-forge-admin,</codeplease add bot automerge in the title and merge the resulting PR. This command will add our bot automerge feature to your feedstock.
  5. If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase code>@<space/conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

Pending Dependency Version Updates

Here is a list of all the pending dependency version updates for this repo. Please double check all dependencies before merging.

Name Upstream Version Current Version
ctng-compilers 14.2.0 Anaconda-Server Badge
openblas 0.3.28 Anaconda-Server Badge

Dependency Analysis

Please note that this analysis is highly experimental. The aim here is to make maintenance easier by inspecting the package's dependencies. Importantly this analysis does not support optional dependencies, please double check those before making changes. If you do not want hinting of this kind ever please add bot: inspection: disabled to your conda-forge.yml. If you encounter issues with this feature please ping the bot team conda-forge/bot.

Analysis by source code inspection shows a discrepancy between it and the the package's stated requirements in the meta.yaml.

Packages found by source code inspection but not in the meta.yaml:

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. Feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/cf-scripts/actions/runs/10315325611 - please use this URL for debugging.

conda-forge-webservices[bot] commented 1 month ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

h-vetinari commented 4 weeks ago

@martin-frbg, there's a test that's hanging regularly on aarch/ppc builds, and now that I'm looking at the logs of a passing build, even there it seems to go awry:

TEST 104/107 potrf:bug_695 [OK]
TEST 105/107 fork:safety [SIGNAL 11: Segmentation fault]
[OK]
TEST 106/107 kernel_regress:skx_avx [OK]

I guess running fork safety test in an emulator is always going to be a risky proposition: https://github.com/conda-forge/openblas-feedstock/blob/441b6aeeb7c6ddd2c6a18424f883f24ce07674a0/recipe/build.sh#L63-L68

Should we just disable that test for cross-compiled builds?

martin-frbg commented 4 weeks ago

not sure, could you try if https://github.com/OpenMathLib/OpenBLAS/pull/4879 makes it go away (this was seen in Julia very recently, I may have to produce an early 0.3.29 next week)

h-vetinari commented 4 weeks ago

Thanks @martin-frbg! I've tried the patch but there's no change unfortunately. AFAICT the behaviour is bimodal: either the build passes in <30min, or it hangs forever at that test. One other observation is that the hangs appear to be exclusive to the OPENMP=0 case (e.g. all three builds of that type on aarch/ppc in the current CI run are hanging; I checked other recent runs and didn't find a failure for OPENMP=1).

martin-frbg commented 4 weeks ago

Thanks - in that case, disabling the tests is probably warranted if they pass on the actual hardware. Note that test_fork is not run at all in OpenMP builds as it is known to fail with (at least) the GNU libgomp (due to design limitations in the latter)

h-vetinari commented 4 weeks ago

Thank you! I've tried to disable test_fork as follows:

--- a/utest/Makefile
+++ b/utest/Makefile
@@ -45,8 +45,10 @@ endif
 # FIXME TBD if this works on OSX, SunOS, POWER and zarch
 ifeq ($(OSNAME), $(filter $(OSNAME),Linux CYGWIN_NT))
 ifneq ($(USE_OPENMP), 1)
+ifneq ($(CROSS), 1)
 OBJS += test_fork.o
 endif
+endif
 OBJS += test_post_fork.o
 endif

but that doesn't seem to work (i.e. runs are still hanging there). I don't know the upstream test setup very well - what would be a good (or at least easy) way to skip that test?

martin-frbg commented 4 weeks ago

strange, are you sure it is hanging in the exact same test? maybe try disabling test_post_fork.c as well

h-vetinari commented 4 weeks ago

I'm saying it's hanging in the test after

TEST 105/107 kernel_regress:skx_avx [OK]

which -- according to runs that pass -- should be

TEST 106/107 fork:safety

I don't know the exact relation ship between fork:safety and test_fork.o resp. test_post_fork.o though, that's why I was asking. :)

h-vetinari commented 4 weeks ago

Alright, I upgraded the patch to

--- a/utest/Makefile
+++ b/utest/Makefile
@@ -43,12 +43,14 @@ endif

 #this does not work with OpenMP nor with native Windows or Android threads
 # FIXME TBD if this works on OSX, SunOS, POWER and zarch
+ifneq ($(CROSS), 1)
 ifeq ($(OSNAME), $(filter $(OSNAME),Linux CYGWIN_NT))
 ifneq ($(USE_OPENMP), 1)
 OBJS += test_fork.o
 endif
 OBJS += test_post_fork.o
 endif
+endif

 ifeq ($(C_COMPILER), PGI)
 OBJS = utest_main2.o

and that seems to have done the trick! Thank you!

However, I'll note that in the three OPENMP=1 jobs, I still see:

TEST 104/107 potrf:bug_695 [OK]
TEST 105/107 fork:safety [SIGNAL 11: Segmentation fault]
[OK]
TEST 106/107 kernel_regress:skx_avx [OK]

I don't really understand how that test wouldn't equally be skipped there, because it has CROSS=1 just the same (it's set independently from OPENMP, see build script snippet referenced above).

martin-frbg commented 4 weeks ago

hmm, there should not be a way around this in the makefile - guessing these are either cmake builds or CI did not actually apply the PR on top of the checkout (I sometimes see this with Cirrus, a rerun usually fixes it)

h-vetinari commented 4 weeks ago

or CI did not actually apply the PR on top of the checkout

I've never seen that happen in ~5 years in azure pipelines (and I look at a lot of CI runs), but the reason this didn't trigger looks to be much more mundane: I misinterpreted what we're setting the value of CROSS to, and so the patch doesn't trigger.