-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
broken OpenBLAS on Ubuntu 20.04 #2437
Comments
A similar issue has been reported at Octave: Possibly related issue at RStudio: Related bug reports at Ubuntu Launchpad: |
Thanks for reporting it. It also bubbled a few weeks ago on the r-sig-debian list (for R users on Debian/Ubuntu, run by the R project) [1] -- after which I reported it on debian-science (list for Debian developers working on packages like R, Octave and others) [2] and the bug system. The bug thread is the most comprehensive with the clearest tracking: https://bugs.debian.org/961725 The issue, from what we now know, is
[1] Initial thread on r-sig-debian first wrongly attributing it to |
Further info on the linker option used by Ubuntu which seems to be causing this problem (with thanks to @martin-frbg): Extracts:
So why is this used by Ubuntu ? |
Copypasting myself from the OpenBLAS ticket: https://bugs.launchpad.net/ubuntu/+source/libxfont/+bug/230460 (and their bug 226156 linked from it) seems to have highlighted the general problem with having -Bsymbolic_functions as the default buildpackage-LDFLAGS in 2008
Yet they still seem to be doing it by default, only disabling on a case-by-case basis (which probably goes wrong sometimes as upstream code, maintainers or build scripts change). |
Umm... yeah. There might be a lot of undiplomatic things to be said about these kinds of approaches. Maybe a response along the lines of Justin Trudeau would be appropriate here, including the uncomfortable 21 second pause: "We all watch in horror and consternation at what's going on at the Ubuntu camp". |
It was twelve years ago and AFAIK Steve (who is an entirely reasonable former Midwesterner) would be willing to revisit / whitelist more packages. Fix also forthcoming per message on the Debian bug report ticket. |
Just to clarify I was only quoting what is already out on the 'net, not trying to appoint blame to anyone. From what I believe to have learned through this, it would probably be possible to come up with a |
BTW on the Debian ticket I now see it attributed to some change in OpenBLAS 0.3.7 , which I assume could only be my OpenMathLib/OpenBLAS#2136 (which in theory should only be relevant if you are building with the new option USE_LOCKING=1 in conjunction with USE_THREAD=0) |
Thanks everyone for the comments here and @conradsnicta for bringing up the issue. I'm not sure when we'll see our first bug report relating to this, but certainly this is a really nice thing to know and will save hours of digging. Glad to hear fixes are in progress---perhaps we won't see any issues here at all. 🤞 :) |
The updated OpenBLAS package is currently in the approval queue for Ubuntu 20.04: |
A proposed fix is available. However, it won't be pushed as an official update in Ubuntu 20.04 until people actually report that it fixes their problem. This can be done by replying to the Ubuntu bug report on Launchpad. See comment 9 in https://bugs.launchpad.net/ubuntu/+source/openblas/+bug/1860601 |
Will test the version over the weekend. |
I could too as I am on 20.04. Someone poke me here to remind me and / or shoot me the apt-get line for that proposed repo ... |
Nah. The earlier link was more explicit about the |
Thanks @conradsnicta ! All good here To recap I did
# cf https://wiki.ubuntu.com/Testing/EnableProposed
# Enable Ubuntu proposed archive
deb http://archive.ubuntu.com/ubuntu/ focal-proposed restricted main multiverse universe
sudo apt install libopenblas-dev libopenblas-openmp-dev libopenblas0 libopenblas0-openmp
Rscript -e 'example(solve)'
sudo apt install libopenblas-pthread-dev libopenblas0-pthread
Rscript -e 'example(solve)'
|
Fix finally released for Ubuntu 20.04.
Thanks to @eddelbuettel for doing the verification. |
I think I can confirm from my 20.04 box: edd@rob:~$ apt list -a libopenblas0 # new way to list
Listing... Done
libopenblas0/focal-updates,now 0.3.8+ds-1ubuntu0.20.04.1 amd64 [installed,automatic]
libopenblas0/focal 0.3.8+ds-1 amd64
edd@rob:~$ apt-cache policy libopenblas0 # older way
libopenblas0:
Installed: 0.3.8+ds-1ubuntu0.20.04.1
Candidate: 0.3.8+ds-1ubuntu0.20.04.1
Version table:
*** 0.3.8+ds-1ubuntu0.20.04.1 500
500 http://us.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages
100 /var/lib/dpkg/status
0.3.8+ds-1 500
500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
edd@rob:~$ So the candidate I am running with from |
This is a heads up in case other people run into this problem.
It appears that OpenBLAS 0.3.8 shipped with Ubuntu 20.04 is broken. Many armadillo tests just freeze up. With mlpack tests you may also get wrong results and strange warnings. For example:
** On entry to DLASCL parameter number 4 had an illegal value
** On entry to DLASCL parameter number 5 had an illegal value
Some of the problems can be worked around by removing all default
libopenblas
packages and installing only thelibopenblas-openmp-dev
package. However this doesn't solve all issues.The real fix is to first remove all
libopenblas
packages and then manually upgrade to OpenBLAS 0.3.9 (or later versions), which seems to work correctly. Armadillo will need to be reinstalled manually in order to make use of the upgraded OpenBLAS.Extract of relevant changes in the OpenBLAS 0.3.9 changelog:
Not sure if the folks at Ubuntu do proper QA before making LTS releases, especially for central software like OpenBLAS.
To (partly) detect if a broken OpenBLAS is used during the build of Armadillo, I've added the build time option BUILD_SMOKE_TEST to armadillo's cmake installer. This is part of the recent Armadillo
9.880 release. Example usage:
If a broken OpenBLAS is present, ctest should freeze and never finish.
The text was updated successfully, but these errors were encountered: