Upgrade to BP Node to 1.30.1 Errors

Hello,

I’ve successfully upgraded both of my relay nodes to 1.30.1 with no issues. When I try to upgrade my BP node I get an error when I run this command.

cabal configure --with-compiler=ghc-8.10.4

I used the Coin Cashew guide for the original installation. Here is the error I get.

cardano@BlockNode:~/git/cardano-node$ cabal configure --with-compiler=ghc-8.10.4
cabal: unknown RTS option: --disable-delayed-os-memory-return
cabal: unknown RTS option: --nonmoving-gc
cabal:
cabal: Usage: [+RTS | -RTS ] … --RTS
cabal:
cabal: +RTS Indicates run time system options follow
cabal: -RTS Indicates program arguments follow
cabal: --RTS Indicates that ALL subsequent arguments will be given to the
cabal: program (including any of these RTS flags)
cabal:
cabal: The following run time system options are available:
cabal:
cabal: -? Prints this message and exits; the program is not executed
cabal: --info Print information about the RTS used by this program
cabal:
cabal: -K Sets the maximum stack size (default: 80% of the heap)
cabal: Egs: -K32k -K512k -K8M
cabal: -ki Sets the initial thread stack size (default 1k) Egs: -ki4k -ki2m
cabal: -kc Sets the stack chunk size (default 32k)
cabal: -kb Sets the stack chunk buffer size (default 1k)
cabal:
cabal: -A Sets the minimum allocation area size (default 1m) Egs: -A20m -A10k
cabal: -AL Sets the amount of large-object memory that can be allocated
cabal: before a GC is triggered (default: the value of -A)
cabal: -F Sets the collecting threshold for old generations as a factor of
cabal: the live data in that generation the last time it was collected
cabal: (default: 2.0)
cabal: -n Allocation area chunk size (0 = disabled, default: 0)
cabal: -O Sets the minimum size of the old generation (default 1M)
cabal: -M Sets the maximum heap size (default unlimited) Egs: -M256k -M1G
cabal: -H Sets the minimum heap size (default 0M) Egs: -H24m -H1G
cabal: -xb Sets the address from which a suitable start for the heap memory
cabal: will be searched from. This is useful if the default address
cabal: clashes with some third-party library.
cabal: -m Minimum % of heap which must be available (default 3%)
cabal: -G Number of generations (default: 2)
cabal: -c Use in-place compaction instead of copying in the oldest generation
cabal: when live data is at least % of the maximum heap size set with
cabal: -M (default: 30%)
cabal: -c Use in-place compaction for all oldest generation collections
cabal: (the default is to use copying)
cabal: -w Use mark-region for the oldest generation (experimental)
cabal: -I Perform full GC after idle time (default: 0.3, 0 == off)
cabal:
cabal: -T Collect GC statistics (useful for in-program statistics access)
cabal: -t[] One-line GC statistics (if omitted, uses stderr)
cabal: -s[] Summary GC statistics (if omitted, uses stderr)
cabal: -S[] Detailed GC statistics (if omitted, uses stderr)
cabal:
cabal:
cabal: -Z Don’t squeeze out update frames on stack overflow
cabal: -B Sound the bell at the start of each garbage collection
cabal: -h Heap residency profile (output file .hp)
cabal: -hT Produce a heap profile grouped by closure type
cabal: -i Time between heap profile samples (seconds, default: 0.1)
cabal:
cabal: -C Context-switch interval in seconds.
cabal: 0 or no argument means switch as often as possible.
cabal: Default: 0.02 sec.
cabal: -V Master tick interval in seconds (0 == disable timer).
cabal: This sets the resolution for -C and the heap profile timer -i,
cabal: and is the frequency of time profile samples.
cabal: Default: 0.01 sec.
cabal:
cabal: -N[] Use processors (default: 1, -N alone determines
cabal: the number of processors to use automatically)
cabal: -maxN[] Use up to processors automatically
cabal: -qg[] Use parallel GC only for generations >=
cabal: (default: 0, -qg alone turns off parallel GC)
cabal: -qb[] Use load-balancing in the parallel GC only for generations >=
cabal: (default: 1 for -A < 32M, 0 otherwise;
cabal: -qb alone turns off load-balancing)
cabal: -qn Use threads for parallel GC (defaults to value of -N)
cabal: -qa Use the OS to set thread affinity (experimental)
cabal: -qm Don’t automatically migrate threads between CPUs
cabal: -qi If a processor has been idle for the last GCs, do not
cabal: wake it up for a non-load-balancing parallel GC.
cabal: (0 disables, default: 0)
cabal: --numa[=<node_mask>]
cabal: Use NUMA, nodes given by <node_mask> (default: off)
cabal: --install-signal-handlers=<yes|no>
cabal: Install signal handlers (default: yes)
cabal: -e Maximum number of outstanding local sparks (default: 4096)
cabal: -xm Base address to mmap memory in the GHCi linker
cabal: (hex; must be <80000000)
cabal: -xq The allocation limit given to a thread after it receives
cabal: an AllocationLimitExceeded exception. (default: 100k)
cabal:
cabal: -Mgrace=
cabal: The amount of allocation after the program receives a
cabal: HeapOverflow exception before the exception is thrown again, if
cabal: the program is still exceeding the heap limit.
cabal:
cabal: RTS options may also be specified using the GHCRTS environment variable.
cabal:
cabal: Other RTS options may be available for programs compiled a different way.
cabal: The GHC User’s Guide has full details.
cabal:

Seems like something isn’t working with cabal.

Appreciate any help you can provide.

Jamie

1 Like

Did you update cabal before the build on the BP? I almost forgot to do that on my BP after doing my relay

I didn’t know that I needed to. I followed the same process that I did on my relay nodes. I didn’t have any issues on those. What is the command to update cabal? It seems like something is off with cabal. I get the same response when I just run “cabal --version”

BTW, I was following a modified version of this guild for the upgrade.

1 Like

I was able to resolve the issue. I had added this to the ~/.bashrc file.

export GHCRTS=’-N -T -I0 -A16m --disable-delayed-os-memory-return --nonmoving-gc’

When I removed this everything worked great!

Jamie

I would also like to add that another possible reason for this error is having set a environmental variable called GHCRTS
Find out if it is set:

echo ${GHCRTS}

If it’s set, unset it using:

unset GHCRTS

Hope this will help others out :slight_smile:

1 Like