-
Notifications
You must be signed in to change notification settings - Fork 710
cabal-3.2.0.0 fails to build/install several packages - assert fails #6659
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
Comments
@mouse07410 You installed Does this also occur with the executable from https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-apple-darwin17.7.0.tar.xz ? |
Initially - yes, but when I found that it was officially released, I installed it from the Hackage by doing
|
I cannot reproduce this on Linux. I'm quite sure that some of these assertions trigger when store gets inconsistent (for whatever reasons). |
Could switching between Cabal-3.3.0.0 build from Git repo, Cabal-3.2.0.0 built from Git repo, Cabal-3.0.0.0 distributed via If so, does it mean that once I "stabilize" on built-from-Hackage Cabal-3.2.0.0, it should go away? Or you still recommend blowing away |
No, that shouldn't happen. More likely cancelling a build (or failing build) left things in inconsistent state. |
Darn... Lord knows I've had more than a few of those. Do you still advise wiping out |
If it doesn't happen consistently, and you cannot reproduce it right away, there's nothing to do. |
@mouse07410 fwiw, that's the very same binary |
I'm getting that error consistently now with I wiped Then I tried to build HIE. Failed as shown above. Then I tried to install
I don't know where to find more detailed logs - Then I tried Cabal-3.2.0.0 installed by The only difference between our environments that I'm aware of - on my machine both Cabal and Stack are configured to build shared libraries and dynamic executables. I wouldn't venture into building my "own" Cabal, but I need the fix provided by #6623. |
And somehow I seem unable to force static build?
|
Wiping out
|
I tried to reproduce this in docker container
We have
Let's update index and build
It works. As in your case. Let's remove it and build cabal from
I use current
Then installing cabal
We need to remember to rehash to use just built version:
Let's rebuild
The index cache is format is different, as is expected due recent changes,
But it all works. There are some missing bits. It would be very helpful, Otherwise we'd simply need ot wait until we replace |
I'll try with a Docker. But in the meanwhile - how was you Cabal configured? I suspect something breaks when you build it dynamic, i.e., in
I'm reasonably convinced this has something to do with the problem, because somehow the binaries you build for Apple work fine. Would you be able to test dynamically-built Cabal? I.e., build Another possibility is that the latest Apple Xcode-11.4 that I use (like other v11 versions) has a bug with the stack 16-byte alignment - but in C/C++ code this bug manifests as SEGV11, so maybe it's unrelated... |
if |
No, the store is purged before Again, would it be possible for you to test fully dynamically-built-from-scratch |
You had typos, I guess it should be:
bingo! It's also enough to just do
Now as we have a reproducer, could you |
UpdateSame thing with
You can see that despite the appropriate (I think?) flags, it still built a dynamic Cabal, unlike what And, this dynamically-built (or linked) Cabal fails the same way:
It doesn't really matter what package you try to install - the only thing is it should be something not already/currently installed. So, for all we know, this bug that manifests itself with dynamic builds of
Now, the unpleasant part. I created an alternate configuration for static builds, but did not clear the
|
Same thing with 3.2.0.0 that I build with GHC-8.8.3 from the GutHub sources. Even static, it fails:
|
I don't know, but don't conflate it with this issue. |
It looks like when Cabal fails to build a package, like with the assertion above, it also corrupts the state of the store. To recover I had to (again!) wipe the store off and re-install everything with a good Cabal. |
@phadej first, thanks for that container! Now, I tried building Cabal 3.2.0.0 dynamically on your container, from the cloned sources. It built, and exhibited the same failure on the same assertion:
On the other hand, installing the current (3.2.0.0) Cabal from Hackage apparently produced a working one:
I used your Cabal configuration command from #6659 (comment) root@64a1466a3974:~# diff -uw ~/.cabal/config.backup ~/.cabal/config
--- /root/.cabal/config.backup 2020-04-12 01:07:18.705242207 +0000
+++ /root/.cabal/config 2020-04-12 01:07:18.707242207 +0000
@@ -39,10 +39,10 @@
-- program-prefix:
-- program-suffix:
-- library-vanilla: True
--- library-profiling:
--- shared:
--- static:
--- executable-dynamic: False
+library-profiling: False
+shared: True
+static: False
+executable-dynamic: True
-- executable-static: False
-- profiling:
-- executable-profiling:
@@ -81,7 +81,7 @@
-- allow-older: False
-- allow-newer: False
-- write-ghc-environment-files:
--- documentation: False
+documentation: True
-- doc-index-file: $datadir/doc/$arch-$os-$compiler/index.html
-- target-package-db:
-- max-backjumps: 4000 SummaryCurrent observations (on my MacOS and your Linux container):
|
Ping...? |
@mouse07410: thank you for your investigation. I'm afraid we are rather understaffed right now so it may be up to volunteers to continue the hunt. However, regarding failure to link statically, we've investigated that in #7236 and it seems, it works fine with |
This may be related to #6006. |
Describe the bug
Currently-released cabal-3.2.0.0 aborts at build/install of several packages, e.g.,
pandoc
, upon failing assertion.To Reproduce
Expected behavior
Successful build/installation, as with cabal-3.0.0.0.
System information
cabal-3.2.0.0
,ghc-8.8.3
Additional context
Cabal configured to build dynamic libraries and executables, profiling is disabled, documentation enabled.
Cabal installed via
$ cabal install cabal-install --overwrite-policy=always
On a probably-unrelated note, it looks like Cabal doesn't take command-line arguments
--enable-static
and--enable-executable-static
: when I specify those, it still seems to follow what's in~/.cabal/config
, which says "dynamic".The text was updated successfully, but these errors were encountered: