8.7.3 upgrade issues on arm64/aarch64

Hello,

I am trying to upgrade to 8.7.3 (from 8.1.2) on an aarch64 Ubuntu LTS 22.04.4 but it seems that it doesn’t work. Dependencies issues…

Before you ask, i’ve already successfully installed this version on my 4 main nodes (which are x86 Ubuntu LTS 22.04.4), so i’m aware of the new dependencies blst, etc. And i never had trouble installing Cardano Node on this aarch64 before

This is what i get when i try to build :

Resolving dependencies…
Error: cabal: Could not resolve dependencies:
[__0] trying: cardano-git-rev-0.1.3.0 (user goal)
[__1] trying: text-1.2.4.1/installed-1.2.4.1 (dependency of cardano-git-rev)
[__2] trying: base-4.14.3.0/installed-4.14.3.0 (dependency of cardano-git-rev)
[__3] next goal: cardano-node (user goal)
[__3] rejecting: cardano-node-8.7.3 (conflict:
text==1.2.4.1/installed-1.2.4.1, cardano-node => text>=2.0)
[__3] skipping: cardano-node-8.7.2, cardano-node-8.7.1, cardano-node-8.7.0,
cardano-node-8.6.0, cardano-node-8.5.0, cardano-node-8.4.0,
cardano-node-8.3.1, cardano-node-8.2.1 (has the same characteristics that
caused the previous version to fail: excludes ‘text’ version 1.2.4.1)
[__3] rejecting: cardano-node-8.1.2, cardano-node-8.1.1, cardano-node-8.0.0,
cardano-node-1.35.4, cardano-node-1.35.3 (constraint from user target requires
==8.7.3)
[__3] fail (backjumping, conflict set: cardano-node, text)
After searching the rest of the dependency tree exhaustively, these were the
goals I’ve had most trouble fulfilling: cardano-ledger-mary, aeson,
cardano-node, ouroboros-consensus-cardano, text, base, integer-conversion,
cardano-git-rev
Try running with --minimize-conflict-set to improve the error message.

Any ideas ?

Just checking that you ran cabal update before you did the build?

Yes of course :slight_smile:

And all the prereqs?

sudo apt-get install autoconf automake build-essential curl g++ git jq libffi-dev libgmp-dev libncursesw5 libssl-dev libsystemd-dev libtinfo-dev libtool make pkg-config tmux wget zlib1g-dev -y

(sorry for the simple checks).

The Armada Alliance group has some good info on building on ARM which might be useful for your situation.

Yes :slight_smile: I’v been running my pool for more than a year and it’s the first time i’m facing issues with an upgrade on lab node.

I’m gonna check on Armada Alliance group, thanks for the info !

I finally succeeded in upgrading this aarch64 node.

The only way that worked for me is by using GHC 9.2.8.

2 Likes

I could get cardano-node to compile with ghc 8.10.7, 9.2.8, and 9.6.3. But when compiled with 9.6.3 there were occasional segfaults which I believe is due to a known Haskell bug related to memory management in version ghc 9.6.x on aarch64. I didn’t see the segfaults on my amd64 machines but I didn’t try for very long before reverting to using ghc 9.2.8.

I have had no problems with cardano-node compiled with ghc 9.2.8 on both amd64 and arm64 machines. The Haskell nonmoving-gc works better in ghc 9.2.8 as it releases memory back to the OS.

This is what the memory use looks like on a relatively slow arm64 machine (equivalent of raspberry pi 4 but with more ram) after 237 hrs without restart:

cardano-node 8.7.3 - linux-aarch64 - ghc-9.2                                    
git rev a4a8119b59b1fbb9a69c79e1e6900e91292161e7                                
Node Started: Fri 23 Feb 2024 23:35:43 AEST (Running: 237 hrs 25 mins)          
RTS settings: cardano-node +RTS -N --nonmoving-gc -RTS                                                                                       
Memory use:                                                                     
               total        used        free      shared  buff/cache   available
Mem:        32812692    23756096     2678484          72     6719108     9056596
Swap:       32260088     3230520    29029568
1 Like