MONC on ARCHER2

This is work-in-progress to get MONC compiling and running on ARCHER2

Debug commands I'm using on ARCHER2 (for my own reference):
Run MONC inside gdb4hpc:
$> gdb4hpc
gdb all> launch --args="--config=tests/straka_short.mcf --checkpoint_file=checkpoint_files/straka_dump.nc" --launcher-args="--partition=standard --qos=standard --tasks-per-node=2 --exclusive --export=all" $monc{2} ./build/bin/monc_driver.exe

Currently I'm stuck with an issue with a call to MPI_Alltoallv
earlcd@uan01:/work/ta009/ta009/earlcd/git-repos/monc> fcm make -f fcm-make/monc-cray-cray.cfg
[init] make                # 2020-12-15T15:15:52Z
[info] FCM 2019.05.0 (/home2/home/ta009/ta009/earlcd/fcm-2019.09.0)
[init] make config-parse   # 2020-12-15T15:15:52Z
[info] config-file=/lus/cls01095/work/ta009/ta009/earlcd/git-repos/monc/fcm-make/monc-cray-cray.cfg
[info] config-file= - /lus/cls01095/work/ta009/ta009/earlcd/git-repos/monc/fcm-make/comp-cray-2107.cfg
[info] config-file= - /lus/cls01095/work/ta009/ta009/earlcd/git-repos/monc/fcm-make/env-cray.cfg
[info] config-file= - /lus/cls01095/work/ta009/ta009/earlcd/git-repos/monc/fcm-make/monc-build.cfg
[done] make config-parse   # 0.0s
[init] make dest-init      # 2020-12-15T15:15:52Z
[info] dest=earlcd@uan01:/lus/cls01095/work/ta009/ta009/earlcd/git-repos/monc
[info] mode=incremental
[done] make dest-init      # 0.0s
[init] make extract        # 2020-12-15T15:15:52Z
[info] location  monc: 0: /lus/cls01095/work/ta009/ta009/earlcd/git-repos/monc
[info]   dest:  381 [U unchanged]
[info] source:  381 [U from base]
[done] make extract        # 0.4s
[init] make preprocess     # 2020-12-15T15:15:53Z
[info] sources: total=381, analysed=0, elapsed-time=0.2s, total-time=0.0s
[info] target-tree-analysis: elapsed-time=0.0s
[info] install   targets: modified=0, unchanged=8, failed=0, total-time=0.0s
[info] process   targets: modified=0, unchanged=172, failed=0, total-time=0.0s
[info] TOTAL     targets: modified=0, unchanged=180, failed=0, elapsed-time=0.2s
[done] make preprocess     # 0.8s
[init] make build          # 2020-12-15T15:15:54Z
[info] sources: total=381, analysed=0, elapsed-time=0.1s, total-time=0.0s
[info] target-tree-analysis: elapsed-time=0.1s
[info] compile   targets: modified=120, unchanged=3, failed=0, total-time=176.7s
[info] compile+  targets: modified=112, unchanged=7, failed=0, total-time=0.5s
[info] link      targets: modified=1, unchanged=0, failed=0, total-time=0.5s
[info] TOTAL     targets: modified=233, unchanged=10, failed=0, elapsed-time=178.1s
[done] make build          # 178.3s
[done] make                # 179.6s
earlcd@uan01:/work/ta009/ta009/earlcd/git-repos/monc>
(reverse-i-search)`': ^C
earlcd@uan01:/work/ta009/ta009/earlcd/git-repos/monc> sbatch utils/archer2/submonc.slurm
Submitted batch job 59769
earlcd@uan01:/work/ta009/ta009/earlcd/git-repos/monc> cat slurm-59769.out
Unloading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env-profile
Loading cpe-cray
Loading cce/10.0.4
Loading craype/2.7.2
Loading craype-x86-rome
Loading libfabric/<IP_ADDRESS>.233
Loading craype-network-ofi
Loading cray-dsmml/0.1.2
Loading perftools-base/20.10.0
Loading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta
Loading cray-mpich/8.0.16
Loading cray-libsci/<IP_ADDRESS>
Loading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
Currently Loaded Modulefiles:
 1) cpe-cray
 2) cce/10.0.4(default)
 3) craype/2.7.2(default)
 4) craype-x86-rome
 5) libfabric/<IP_ADDRESS>.233(default)
 6) craype-network-ofi
 7) cray-dsmml/0.1.2(default)
 8) perftools-base/20.10.0(default)
 9) xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta(default)
10) cray-mpich/8.0.16(default)
11) cray-libsci/<IP_ADDRESS>(default)
12) /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
13) epcc-job-env
14) cray-netcdf/<IP_ADDRESS>(default)
15) cray-fftw/<IP_ADDRESS>(default)
16) cray-hdf5/<IP_ADDRESS>(default)
MPICH ERROR [Rank 1] [job id 59769.0] [Tue Dec 15 15:22:06 2020] [unknown] [nid001139] - Abort(403275522) (rank 1 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x9183600, scnts=0x45becc0, sdispls=0x47f7a00, MPI_DOUBLE_PRECISION, rbuf=0x92888c0, rcnts=0x47f6540, rdispls=0x47f4040, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1207723264

aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x9183600, scnts=0x45becc0, sdispls=0x47f7a00, MPI_DOUBLE_PRECISION, rbuf=0x92888c0, rcnts=0x47f6540, rdispls=0x47f4040, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1207723264
[INFO] MONC running with 1 processes, 1 IO server(s)
[WARN] No enabled configuration for component ideal_squall therefore disabling this
[WARN] No enabled configuration for component kid_testcase therefore disabling this
[WARN] Run order callback for component tank_experiments at stage initialisation not specified
[WARN] Run order callback for component tank_experiments at stage finalisation not specified
[WARN] Defaulting to one dimension decomposition due to solution size too small
[INFO] Decomposed 1 processes via 'OneDim' into z=1 y=1 x=1
[INFO] 3D system; z=65, y=512, x=2
srun: error: nid001139: task 1: Exited with exit code 255
srun: Terminating job step 59769.0
slurmstepd: error: *** STEP 59769.0 ON nid001139 CANCELLED AT 2020-12-15T15:22:06 ***
srun: error: nid001139: task 0: Terminated
srun: Force Terminated job step 59769.0

I've tried compiling with fcm-make/comp-cray-2107-debug.cfg and using gdb4hpc to identify the issue. Within gdb4hpc I'm stuck since I don't get any output when trying to print local variables:
dbg all> launch --args="--config=tests/straka_short.mcf --checkpoint_file=checkpoint_files/straka_dump.nc" --launcher-args="--partition=standard --qos=standard --tasks-per-node=2 --exclusive --export=all" $monc{2} ./build/bin/monc_driver.exe
Starting application, please wait...
Creating MRNet communication network...
Waiting for debug servers to attach to MRNet communications network...
Timeout in 400 seconds. Please wait for the attach to complete.
Number of dbgsrvs connected: [1];  Timeout Counter: [0]
Number of dbgsrvs connected: [1];  Timeout Counter: [1]
Number of dbgsrvs connected: [2];  Timeout Counter: [0]
Finalizing setup...
Launch complete.
monc{0..1}: Initial breakpoint, monc_driver at /lus/cls01095/work/ta009/ta009/earlcd/git-repos/monc/preprocess/src/monc/monc_driver.F90:16
dbg all> break pencilfft.F90:360
...
bg all> print source_data
monc{0}: *** The application is running
dbg all> print size(source_data)

Hi @leifdenby: since these are MPI issues, I thought the changes that Chris applied for ARC4 may be worth exploring, in case you have not done so yet.

Hi @leifdenby: since these are MPI issues, I thought the changes that Chris applied for ARC4 may be worth exploring, in case you have not done so yet.

Hi @leifdenby: since these are MPI issues, I thought the changes that Chris applied for ARC4 may be worth exploring, in case you have not done so yet.

Great idea @sjboeing! I'll give this a try

Hi @leifdenby: since these are MPI issues, I thought the changes that Chris applied for ARC4 may be worth exploring, in case you have not done so yet.

Great idea @sjboeing! I'll give this a try

Unfortunately the fixes introduced for ARC4 don't appear to have fixed the issue @sjboeing. But I have an idea what the issue might be. I'll put my testing in separate comments below

Unfortunately the fixes introduced for ARC4 don't appear to have fixed the issue @sjboeing. But I have an idea what the issue might be. I'll put my testing in separate comments below

compiling with cray fortran compiler and running

compiling
earlcd@uan01:~/work/monc> module restore PrgEnv-cray
Unloading cray-hdf5/<IP_ADDRESS>
Unloading cray-fftw/<IP_ADDRESS>
Unloading cray-netcdf/<IP_ADDRESS>
Unloading /usr/local/share/epcc-module/epcc-module-loader

Warning: Unloading the epcc-setup-env module will stop many
modules being available on the system. If you do this by
accident, you can recover the situation with the command:

        module load /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env

Unloading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
Unloading bolt/0.7
Unloading cray-libsci/<IP_ADDRESS>
Unloading cray-mpich/8.0.16
Unloading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta

Unloading perftools-base/20.10.0
  WARNING: Did not unuse /opt/cray/pe/perftools/20.10.0/modulefiles

Unloading cray-dsmml/0.1.2
Unloading craype-network-ofi
Unloading libfabric/<IP_ADDRESS>.233
Unloading craype-x86-rome
Unloading craype/2.7.2
Unloading gcc/10.1.0
Unloading cpe-gnu
Loading cpe-cray
Loading cce/10.0.4
Loading craype/2.7.2
Loading craype-x86-rome
Loading libfabric/<IP_ADDRESS>.233
Loading craype-network-ofi
Loading cray-dsmml/0.1.2
Loading perftools-base/20.10.0
Loading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta
Loading cray-mpich/8.0.16
Loading cray-libsci/<IP_ADDRESS>
Loading bolt/0.7
Loading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
Loading /usr/local/share/epcc-module/epcc-module-loader
earlcd@uan01:~/work/monc> module load cray-hdf5 cray-netcdf cray-fftw
earlcd@uan01:~/work/monc> fcm make -f fcm-make/monc-cray-cray.cfg
[init] make                # 2021-01-26T12:16:55Z
[info] FCM 2019.05.0 (/home1/home/n02/n02/earlcd/fcm-2019.09.0)
[init] make config-parse   # 2021-01-26T12:16:55Z
[info] config-file=/lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/monc-cray-cray.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/comp-cray-2107.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/env-cray.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/monc-build.cfg
[done] make config-parse   # 0.1s
[init] make dest-init      # 2021-01-26T12:16:55Z
[info] dest=earlcd@uan01:/lus/cls01095/work/n02/n02/earlcd/monc
[info] mode=incremental
[done] make dest-init      # 0.1s
[init] make extract        # 2021-01-26T12:16:55Z
[info] location  monc: 0: /lus/cls01095/work/n02/n02/earlcd/monc
[info]   dest:  381 [U unchanged]
[info] source:  381 [U from base]
[done] make extract        # 7.7s
[init] make preprocess     # 2021-01-26T12:17:03Z
[info] sources: total=381, analysed=180, elapsed-time=0.2s, total-time=0.1s
[info] target-tree-analysis: elapsed-time=0.0s
[info] install   targets: modified=8, unchanged=0, failed=0, total-time=0.1s
[info] process   targets: modified=172, unchanged=0, failed=0, total-time=14.1s
[info] TOTAL     targets: modified=180, unchanged=0, failed=0, elapsed-time=14.3s
[done] make preprocess     # 14.7s
[init] make build          # 2021-01-26T12:17:17Z
[info] sources: total=381, analysed=381, elapsed-time=1.5s, total-time=1.4s
[info] target-tree-analysis: elapsed-time=0.3s
[info] compile   targets: modified=123, unchanged=0, failed=0, total-time=209.8s
[info] compile+  targets: modified=119, unchanged=0, failed=0, total-time=1.3s
[info] link      targets: modified=1, unchanged=0, failed=0, total-time=2.0s
[info] TOTAL     targets: modified=243, unchanged=0, failed=0, elapsed-time=213.7s
[done] make build          # 215.4s
[done] make                # 238.0s

running MONC
earlcd@uan01:~/work/monc> sbatch utils/archer2/submonc.slurm
Submitted batch job 77481

output of SLURM log
earlcd@uan01:~/work/monc> cat slurm-77481.out
Unloading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env-profile
Loading cpe-cray
Loading cce/10.0.4
Loading craype/2.7.2
Loading craype-x86-rome
Loading libfabric/<IP_ADDRESS>.233
Loading craype-network-ofi
Loading cray-dsmml/0.1.2
Loading perftools-base/20.10.0
Loading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta
Loading cray-mpich/8.0.16
Loading cray-libsci/<IP_ADDRESS>
Loading bolt/0.7
Loading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env

Loading epcc-job-env
  Loading requirement: bolt/0.7
Currently Loaded Modulefiles:
 1) cpe-cray
 2) cce/10.0.4(default)
 3) craype/2.7.2(default)
 4) craype-x86-rome
 5) libfabric/<IP_ADDRESS>.233(default)
 6) craype-network-ofi
 7) cray-dsmml/0.1.2(default)
 8) perftools-base/20.10.0(default)
 9) xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta(default)
10) cray-mpich/8.0.16(default)
11) cray-libsci/<IP_ADDRESS>(default)
12) bolt/0.7
13) /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
14) epcc-job-env
[INFO] MONC running with 4 processes, 1 IO server(s)
[WARN] No enabled configuration for component ideal_squall therefore disabling this
[WARN] No enabled configuration for component kid_testcase therefore disabling this
[WARN] Run order callback for component tank_experiments at stage initialisation not specified
[WARN] Run order callback for component tank_experiments at stage finalisation not specified
[WARN] Defaulting to one dimension decomposition due to solution size too small
[INFO] Decomposed 4 processes via 'OneDim' into z=1 y=4 x=1
[INFO] 3D system; z=65, y=512, x=2
MPICH ERROR [Rank 1] [job id 77481.0] [Tue Jan 26 12:22:49 2021] [unknown] [nid001037] - Abort(403275522) (rank 1 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5cd2600, scnts=0x47fa200, sdispls=0x47f8d40, MPI_DOUBLE_PRECISION, rbuf=0x5d16bc0, rcnts=0x47f3400, rdispls=0x47f0200, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -404335872

aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5cd2600, scnts=0x47fa200, sdispls=0x47f8d40, MPI_DOUBLE_PRECISION, rbuf=0x5d16bc0, rcnts=0x47f3400, rdispls=0x47f0200, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -404335872
MPICH ERROR [Rank 2] [job id 77481.0] [Tue Jan 26 12:22:49 2021] [unknown] [nid001037] - Abort(622338) (rank 2 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5c6c940, scnts=0x45fda80, sdispls=0x45fd180, MPI_DOUBLE_PRECISION, rbuf=0x5cacf40, rcnts=0x45fc400, rdispls=0x46299c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1539026176

aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5c6c940, scnts=0x45fda80, sdispls=0x45fd180, MPI_DOUBLE_PRECISION, rbuf=0x5cacf40, rcnts=0x45fc400, rdispls=0x46299c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1539026176
MPICH ERROR [Rank 4] [job id 77481.0] [Tue Jan 26 12:22:49 2021] [unknown] [nid001037] - Abort(336166658) (rank 4 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5c3f440, scnts=0x45fda80, sdispls=0x45fd180, MPI_DOUBLE_PRECISION, rbuf=0x5c7fc80, rcnts=0x45fc400, rdispls=0x46299c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1178053888

aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5c3f440, scnts=0x45fda80, sdispls=0x45fd180, MPI_DOUBLE_PRECISION, rbuf=0x5c7fc80, rcnts=0x45fc400, rdispls=0x46299c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1178053888
srun: error: nid001037: tasks 1-2,4: Exited with exit code 255
srun: Terminating job step 77481.0
slurmstepd: error: *** STEP 77481.0 ON nid001037 CANCELLED AT 2021-01-26T12:22:49 ***
srun: error: nid001037: tasks 0,3: Terminated
srun: Force Terminated job step 77481.0

compiling with cray fortran compiler and running

compiling
earlcd@uan01:~/work/monc> module restore PrgEnv-cray
Unloading cray-hdf5/<IP_ADDRESS>
Unloading cray-fftw/<IP_ADDRESS>
Unloading cray-netcdf/<IP_ADDRESS>
Unloading /usr/local/share/epcc-module/epcc-module-loader

Warning: Unloading the epcc-setup-env module will stop many
modules being available on the system. If you do this by
accident, you can recover the situation with the command:

        module load /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env

Unloading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
Unloading bolt/0.7
Unloading cray-libsci/<IP_ADDRESS>
Unloading cray-mpich/8.0.16
Unloading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta

Unloading perftools-base/20.10.0
  WARNING: Did not unuse /opt/cray/pe/perftools/20.10.0/modulefiles

Unloading cray-dsmml/0.1.2
Unloading craype-network-ofi
Unloading libfabric/<IP_ADDRESS>.233
Unloading craype-x86-rome
Unloading craype/2.7.2
Unloading gcc/10.1.0
Unloading cpe-gnu
Loading cpe-cray
Loading cce/10.0.4
Loading craype/2.7.2
Loading craype-x86-rome
Loading libfabric/<IP_ADDRESS>.233
Loading craype-network-ofi
Loading cray-dsmml/0.1.2
Loading perftools-base/20.10.0
Loading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta
Loading cray-mpich/8.0.16
Loading cray-libsci/<IP_ADDRESS>
Loading bolt/0.7
Loading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
Loading /usr/local/share/epcc-module/epcc-module-loader
earlcd@uan01:~/work/monc> module load cray-hdf5 cray-netcdf cray-fftw
earlcd@uan01:~/work/monc> fcm make -f fcm-make/monc-cray-cray.cfg
[init] make                # 2021-01-26T12:16:55Z
[info] FCM 2019.05.0 (/home1/home/n02/n02/earlcd/fcm-2019.09.0)
[init] make config-parse   # 2021-01-26T12:16:55Z
[info] config-file=/lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/monc-cray-cray.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/comp-cray-2107.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/env-cray.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/monc-build.cfg
[done] make config-parse   # 0.1s
[init] make dest-init      # 2021-01-26T12:16:55Z
[info] dest=earlcd@uan01:/lus/cls01095/work/n02/n02/earlcd/monc
[info] mode=incremental
[done] make dest-init      # 0.1s
[init] make extract        # 2021-01-26T12:16:55Z
[info] location  monc: 0: /lus/cls01095/work/n02/n02/earlcd/monc
[info]   dest:  381 [U unchanged]
[info] source:  381 [U from base]
[done] make extract        # 7.7s
[init] make preprocess     # 2021-01-26T12:17:03Z
[info] sources: total=381, analysed=180, elapsed-time=0.2s, total-time=0.1s
[info] target-tree-analysis: elapsed-time=0.0s
[info] install   targets: modified=8, unchanged=0, failed=0, total-time=0.1s
[info] process   targets: modified=172, unchanged=0, failed=0, total-time=14.1s
[info] TOTAL     targets: modified=180, unchanged=0, failed=0, elapsed-time=14.3s
[done] make preprocess     # 14.7s
[init] make build          # 2021-01-26T12:17:17Z
[info] sources: total=381, analysed=381, elapsed-time=1.5s, total-time=1.4s
[info] target-tree-analysis: elapsed-time=0.3s
[info] compile   targets: modified=123, unchanged=0, failed=0, total-time=209.8s
[info] compile+  targets: modified=119, unchanged=0, failed=0, total-time=1.3s
[info] link      targets: modified=1, unchanged=0, failed=0, total-time=2.0s
[info] TOTAL     targets: modified=243, unchanged=0, failed=0, elapsed-time=213.7s
[done] make build          # 215.4s
[done] make                # 238.0s

running MONC
earlcd@uan01:~/work/monc> sbatch utils/archer2/submonc.slurm
Submitted batch job 77481

output of SLURM log
earlcd@uan01:~/work/monc> cat slurm-77481.out
Unloading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env-profile
Loading cpe-cray
Loading cce/10.0.4
Loading craype/2.7.2
Loading craype-x86-rome
Loading libfabric/<IP_ADDRESS>.233
Loading craype-network-ofi
Loading cray-dsmml/0.1.2
Loading perftools-base/20.10.0
Loading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta
Loading cray-mpich/8.0.16
Loading cray-libsci/<IP_ADDRESS>
Loading bolt/0.7
Loading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env

Loading epcc-job-env
  Loading requirement: bolt/0.7
Currently Loaded Modulefiles:
 1) cpe-cray
 2) cce/10.0.4(default)
 3) craype/2.7.2(default)
 4) craype-x86-rome
 5) libfabric/<IP_ADDRESS>.233(default)
 6) craype-network-ofi
 7) cray-dsmml/0.1.2(default)
 8) perftools-base/20.10.0(default)
 9) xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta(default)
10) cray-mpich/8.0.16(default)
11) cray-libsci/<IP_ADDRESS>(default)
12) bolt/0.7
13) /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
14) epcc-job-env
[INFO] MONC running with 4 processes, 1 IO server(s)
[WARN] No enabled configuration for component ideal_squall therefore disabling this
[WARN] No enabled configuration for component kid_testcase therefore disabling this
[WARN] Run order callback for component tank_experiments at stage initialisation not specified
[WARN] Run order callback for component tank_experiments at stage finalisation not specified
[WARN] Defaulting to one dimension decomposition due to solution size too small
[INFO] Decomposed 4 processes via 'OneDim' into z=1 y=4 x=1
[INFO] 3D system; z=65, y=512, x=2
MPICH ERROR [Rank 1] [job id 77481.0] [Tue Jan 26 12:22:49 2021] [unknown] [nid001037] - Abort(403275522) (rank 1 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5cd2600, scnts=0x47fa200, sdispls=0x47f8d40, MPI_DOUBLE_PRECISION, rbuf=0x5d16bc0, rcnts=0x47f3400, rdispls=0x47f0200, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -404335872

aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5cd2600, scnts=0x47fa200, sdispls=0x47f8d40, MPI_DOUBLE_PRECISION, rbuf=0x5d16bc0, rcnts=0x47f3400, rdispls=0x47f0200, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -404335872
MPICH ERROR [Rank 2] [job id 77481.0] [Tue Jan 26 12:22:49 2021] [unknown] [nid001037] - Abort(622338) (rank 2 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5c6c940, scnts=0x45fda80, sdispls=0x45fd180, MPI_DOUBLE_PRECISION, rbuf=0x5cacf40, rcnts=0x45fc400, rdispls=0x46299c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1539026176

aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5c6c940, scnts=0x45fda80, sdispls=0x45fd180, MPI_DOUBLE_PRECISION, rbuf=0x5cacf40, rcnts=0x45fc400, rdispls=0x46299c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1539026176
MPICH ERROR [Rank 4] [job id 77481.0] [Tue Jan 26 12:22:49 2021] [unknown] [nid001037] - Abort(336166658) (rank 4 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5c3f440, scnts=0x45fda80, sdispls=0x45fd180, MPI_DOUBLE_PRECISION, rbuf=0x5c7fc80, rcnts=0x45fc400, rdispls=0x46299c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1178053888

aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5c3f440, scnts=0x45fda80, sdispls=0x45fd180, MPI_DOUBLE_PRECISION, rbuf=0x5c7fc80, rcnts=0x45fc400, rdispls=0x46299c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1178053888
srun: error: nid001037: tasks 1-2,4: Exited with exit code 255
srun: Terminating job step 77481.0
slurmstepd: error: *** STEP 77481.0 ON nid001037 CANCELLED AT 2021-01-26T12:22:49 ***
srun: error: nid001037: tasks 0,3: Terminated
srun: Force Terminated job step 77481.0

compiling with GNU fortran compiler and running

compiling
earlcd@uan01:~/work/monc> module restore PrgEnv-gnu
Unloading /usr/local/share/epcc-module/epcc-module-loader

Warning: Unloading the epcc-setup-env module will stop many
modules being available on the system. If you do this by
accident, you can recover the situation with the command:

        module load /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env

Unloading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
Unloading bolt/0.7
Unloading cray-libsci/<IP_ADDRESS>
Unloading cray-mpich/8.0.16
Unloading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta

Unloading perftools-base/20.10.0
  WARNING: Did not unuse /opt/cray/pe/perftools/20.10.0/modulefiles

Unloading cray-dsmml/0.1.2
Unloading craype-network-ofi
Unloading libfabric/<IP_ADDRESS>.233
Unloading craype-x86-rome
Unloading craype/2.7.2
Unloading cce/10.0.4
Unloading cpe-cray
Loading cpe-gnu
Loading gcc/10.1.0
Loading craype/2.7.2
Loading craype-x86-rome
Loading libfabric/<IP_ADDRESS>.233
Loading craype-network-ofi
Loading cray-dsmml/0.1.2
Loading perftools-base/20.10.0
Loading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta
Loading cray-mpich/8.0.16
Loading cray-libsci/<IP_ADDRESS>
Loading bolt/0.7
Loading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
Loading /usr/local/share/epcc-module/epcc-module-loader
earlcd@uan01:~/work/monc> module load cray-hdf5 cray-netcdf cray-fftw
(reverse-i-search)`': ^C
earlcd@uan01:~/work/monc> ftn --version
GNU Fortran (GCC) 10.1.0 20200507 (Cray Inc.)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

earlcd@uan01:~/work/monc> fcm make -f fcm-make/monc-cray-gnu.cfg
[init] make                # 2021-01-26T12:30:49Z
[info] FCM 2019.05.0 (/home1/home/n02/n02/earlcd/fcm-2019.09.0)
[init] make config-parse   # 2021-01-26T12:30:49Z
[info] config-file=/lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/monc-cray-gnu.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/comp-gnu-4.4.7.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/env-cray.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/monc-build.cfg
[done] make config-parse   # 0.1s
[init] make dest-init      # 2021-01-26T12:30:49Z
[info] dest=earlcd@uan01:/lus/cls01095/work/n02/n02/earlcd/monc
[info] mode=incremental
[done] make dest-init      # 0.1s
[init] make extract        # 2021-01-26T12:30:49Z
[info] location  monc: 0: /lus/cls01095/work/n02/n02/earlcd/monc
[info]   dest:  381 [U unchanged]
[info] source:  381 [U from base]
[done] make extract        # 0.8s
[init] make preprocess     # 2021-01-26T12:30:50Z
[info] sources: total=381, analysed=0, elapsed-time=1.2s, total-time=0.0s
[info] target-tree-analysis: elapsed-time=0.0s
[info] install   targets: modified=0, unchanged=8, failed=0, total-time=0.0s
[info] process   targets: modified=0, unchanged=172, failed=0, total-time=0.0s
[info] TOTAL     targets: modified=0, unchanged=180, failed=0, elapsed-time=2.2s
[done] make preprocess     # 5.6s
[init] make build          # 2021-01-26T12:30:56Z
[info] sources: total=381, analysed=0, elapsed-time=0.1s, total-time=0.0s
[info] target-tree-analysis: elapsed-time=0.2s
[FAIL] ftn -oo/conditional_diagnostics_whole_mod.o -c -I./include -I/opt/cray/pe/netcdf/<IP_ADDRESS>/GNU/9.1/include -I/opt/cray/pe/fftw/<IP_ADDRESS>/x86_rome/lib/../include -O3 -J . /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/components/conditional_diagnostics_whole/src/conditional_diagnostics_whole.F90 # rc=1
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/components/conditional_diagnostics_whole/src/conditional_diagnostics_whole.F90:80:22:
[FAIL]
[FAIL]    77 |       call mpi_reduce(MPI_IN_PLACE , CondDiags_tot, ncond*2*ndiag*current_state%local_grid%size(Z_INDEX), &
[FAIL]       |                      2
[FAIL] ......
[FAIL]    80 |       call mpi_reduce(CondDiags_tot, CondDiags_tot, ncond*2*ndiag*current_state%local_grid%size(Z_INDEX), &
[FAIL]       |                      1
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/INTEGER(4)).
[FAIL] compile    0.1 ! conditional_diagnostics_whole_mod.o <- monc/components/conditional_diagnostics_whole/src/conditional_diagnostics_whole.F90
[FAIL] ftn -oo/iterativesolver_mod.o -c -I./include -I/opt/cray/pe/netcdf/<IP_ADDRESS>/GNU/9.1/include -I/opt/cray/pe/fftw/<IP_ADDRESS>/x86_rome/lib/../include -O3 -J . /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/components/iterativesolver/src/iterativesolver.F90 # rc=1
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/components/iterativesolver/src/iterativesolver.F90:540:23:
[FAIL]
[FAIL]   540 |     call mpi_allreduce(local_sum, global_sum, 3, PRECISION_TYPE, MPI_SUM, current_state%parallel%monc_communicator, ierr)
[FAIL]       |                       1
[FAIL] ......
[FAIL]   600 |     call mpi_allreduce(current_state%local_divmax, current_state%global_divmax, 1, PRECISION_TYPE, MPI_MAX, &
[FAIL]       |                       2
[FAIL] Error: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
[FAIL] compile    0.1 ! iterativesolver_mod.o <- monc/components/iterativesolver/src/iterativesolver.F90
[FAIL] ftn -oo/monc_mod.o -c -I./include -I/opt/cray/pe/netcdf/<IP_ADDRESS>/GNU/9.1/include -I/opt/cray/pe/fftw/<IP_ADDRESS>/x86_rome/lib/../include -O3 -J . -frecursive /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/model_core/src/monc.F90 # rc=1
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/model_core/src/monc.F90:207:60:
[FAIL]
[FAIL]   207 |     call mpi_barrier(state%parallel%monc_communicator, ierr)
[FAIL]       |                                                            1
[FAIL] Error: More actual than formal arguments in procedure call at (1)
[FAIL] compile    0.1 ! monc_mod.o           <- monc/model_core/src/monc.F90
[FAIL] ftn -oo/io_server_client_mod.o -c -I./include -I/opt/cray/pe/netcdf/<IP_ADDRESS>/GNU/9.1/include -I/opt/cray/pe/fftw/<IP_ADDRESS>/x86_rome/lib/../include -O3 -J . -frecursive /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90 # rc=1
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:168:25:
[FAIL]
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] ......
[FAIL]   168 |     call mpi_get_address(basic_type%dimensions, num_addr, ierr)
[FAIL]       |                         1
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:173:25:
[FAIL]
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] ......
[FAIL]   173 |     call mpi_get_address(basic_type%dim_sizes, num_addr, ierr)
[FAIL]       |                         1
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:124:25:
[FAIL]
[FAIL]   124 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (TYPE(field_description_type)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:129:25:
[FAIL]
[FAIL]   129 |     call mpi_get_address(basic_type%field_name, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (CHARACTER(150)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:134:25:
[FAIL]
[FAIL]   134 |     call mpi_get_address(basic_type%field_type, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:139:25:
[FAIL]
[FAIL]   139 |     call mpi_get_address(basic_type%data_type, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:144:25:
[FAIL]
[FAIL]   144 |     call mpi_get_address(basic_type%optional, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:92:25:
[FAIL]
[FAIL]    92 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (TYPE(definition_description_type)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:97:25:
[FAIL]
[FAIL]    97 |     call mpi_get_address(basic_type%send_on_terminate, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:102:25:
[FAIL]
[FAIL]   102 |     call mpi_get_address(basic_type%number_fields, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:107:25:
[FAIL]
[FAIL]   107 |     call mpi_get_address(basic_type%frequency, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] compile    0.1 ! io_server_client_mod.o <- monc/io/src/ioclient.F90
[info] compile   targets: modified=0, unchanged=91, failed=4, total-time=0.3s
[info] compile+  targets: modified=0, unchanged=88, failed=0, total-time=0.0s
[info] TOTAL     targets: modified=0, unchanged=179, failed=8, elapsed-time=2.0s
[FAIL] ! conditional_diagnostics_whole_mod.mod: depends on failed target: conditional_diagnostics_whole_mod.o
[FAIL] ! conditional_diagnostics_whole_mod.o: update task failed
[FAIL] ! io_server_client_mod.mod: depends on failed target: io_server_client_mod.o
[FAIL] ! io_server_client_mod.o: update task failed
[FAIL] ! iterativesolver_mod.mod: depends on failed target: iterativesolver_mod.o
[FAIL] ! iterativesolver_mod.o: update task failed
[FAIL] ! monc_mod.mod        : depends on failed target: monc_mod.o
[FAIL] ! monc_mod.o          : update task failed
[FAIL] make build          # 2.3s
[FAIL] make                # 8.9s

does not compile
With the GNU compiler MONC fails to compile. All the errors are related to incorrect datatypes being passed to MPI-related subroutines (as far as I can see). I think these are bugs and fixing these may resolve the issue we are having at runtime. It is possible that the GNU compiler is being more strict here and catching these bugs at compile-time.
Thoughts @sjboeing ?

compiling with GNU fortran compiler and running

compiling
earlcd@uan01:~/work/monc> module restore PrgEnv-gnu
Unloading /usr/local/share/epcc-module/epcc-module-loader

Warning: Unloading the epcc-setup-env module will stop many
modules being available on the system. If you do this by
accident, you can recover the situation with the command:

        module load /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env

Unloading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
Unloading bolt/0.7
Unloading cray-libsci/<IP_ADDRESS>
Unloading cray-mpich/8.0.16
Unloading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta

Unloading perftools-base/20.10.0
  WARNING: Did not unuse /opt/cray/pe/perftools/20.10.0/modulefiles

Unloading cray-dsmml/0.1.2
Unloading craype-network-ofi
Unloading libfabric/<IP_ADDRESS>.233
Unloading craype-x86-rome
Unloading craype/2.7.2
Unloading cce/10.0.4
Unloading cpe-cray
Loading cpe-gnu
Loading gcc/10.1.0
Loading craype/2.7.2
Loading craype-x86-rome
Loading libfabric/<IP_ADDRESS>.233
Loading craype-network-ofi
Loading cray-dsmml/0.1.2
Loading perftools-base/20.10.0
Loading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta
Loading cray-mpich/8.0.16
Loading cray-libsci/<IP_ADDRESS>
Loading bolt/0.7
Loading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
Loading /usr/local/share/epcc-module/epcc-module-loader
earlcd@uan01:~/work/monc> module load cray-hdf5 cray-netcdf cray-fftw
(reverse-i-search)`': ^C
earlcd@uan01:~/work/monc> ftn --version
GNU Fortran (GCC) 10.1.0 20200507 (Cray Inc.)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

earlcd@uan01:~/work/monc> fcm make -f fcm-make/monc-cray-gnu.cfg
[init] make                # 2021-01-26T12:30:49Z
[info] FCM 2019.05.0 (/home1/home/n02/n02/earlcd/fcm-2019.09.0)
[init] make config-parse   # 2021-01-26T12:30:49Z
[info] config-file=/lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/monc-cray-gnu.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/comp-gnu-4.4.7.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/env-cray.cfg
[info] config-file= - /lus/cls01095/work/n02/n02/earlcd/monc/fcm-make/monc-build.cfg
[done] make config-parse   # 0.1s
[init] make dest-init      # 2021-01-26T12:30:49Z
[info] dest=earlcd@uan01:/lus/cls01095/work/n02/n02/earlcd/monc
[info] mode=incremental
[done] make dest-init      # 0.1s
[init] make extract        # 2021-01-26T12:30:49Z
[info] location  monc: 0: /lus/cls01095/work/n02/n02/earlcd/monc
[info]   dest:  381 [U unchanged]
[info] source:  381 [U from base]
[done] make extract        # 0.8s
[init] make preprocess     # 2021-01-26T12:30:50Z
[info] sources: total=381, analysed=0, elapsed-time=1.2s, total-time=0.0s
[info] target-tree-analysis: elapsed-time=0.0s
[info] install   targets: modified=0, unchanged=8, failed=0, total-time=0.0s
[info] process   targets: modified=0, unchanged=172, failed=0, total-time=0.0s
[info] TOTAL     targets: modified=0, unchanged=180, failed=0, elapsed-time=2.2s
[done] make preprocess     # 5.6s
[init] make build          # 2021-01-26T12:30:56Z
[info] sources: total=381, analysed=0, elapsed-time=0.1s, total-time=0.0s
[info] target-tree-analysis: elapsed-time=0.2s
[FAIL] ftn -oo/conditional_diagnostics_whole_mod.o -c -I./include -I/opt/cray/pe/netcdf/<IP_ADDRESS>/GNU/9.1/include -I/opt/cray/pe/fftw/<IP_ADDRESS>/x86_rome/lib/../include -O3 -J . /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/components/conditional_diagnostics_whole/src/conditional_diagnostics_whole.F90 # rc=1
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/components/conditional_diagnostics_whole/src/conditional_diagnostics_whole.F90:80:22:
[FAIL]
[FAIL]    77 |       call mpi_reduce(MPI_IN_PLACE , CondDiags_tot, ncond*2*ndiag*current_state%local_grid%size(Z_INDEX), &
[FAIL]       |                      2
[FAIL] ......
[FAIL]    80 |       call mpi_reduce(CondDiags_tot, CondDiags_tot, ncond*2*ndiag*current_state%local_grid%size(Z_INDEX), &
[FAIL]       |                      1
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/INTEGER(4)).
[FAIL] compile    0.1 ! conditional_diagnostics_whole_mod.o <- monc/components/conditional_diagnostics_whole/src/conditional_diagnostics_whole.F90
[FAIL] ftn -oo/iterativesolver_mod.o -c -I./include -I/opt/cray/pe/netcdf/<IP_ADDRESS>/GNU/9.1/include -I/opt/cray/pe/fftw/<IP_ADDRESS>/x86_rome/lib/../include -O3 -J . /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/components/iterativesolver/src/iterativesolver.F90 # rc=1
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/components/iterativesolver/src/iterativesolver.F90:540:23:
[FAIL]
[FAIL]   540 |     call mpi_allreduce(local_sum, global_sum, 3, PRECISION_TYPE, MPI_SUM, current_state%parallel%monc_communicator, ierr)
[FAIL]       |                       1
[FAIL] ......
[FAIL]   600 |     call mpi_allreduce(current_state%local_divmax, current_state%global_divmax, 1, PRECISION_TYPE, MPI_MAX, &
[FAIL]       |                       2
[FAIL] Error: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
[FAIL] compile    0.1 ! iterativesolver_mod.o <- monc/components/iterativesolver/src/iterativesolver.F90
[FAIL] ftn -oo/monc_mod.o -c -I./include -I/opt/cray/pe/netcdf/<IP_ADDRESS>/GNU/9.1/include -I/opt/cray/pe/fftw/<IP_ADDRESS>/x86_rome/lib/../include -O3 -J . -frecursive /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/model_core/src/monc.F90 # rc=1
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/model_core/src/monc.F90:207:60:
[FAIL]
[FAIL]   207 |     call mpi_barrier(state%parallel%monc_communicator, ierr)
[FAIL]       |                                                            1
[FAIL] Error: More actual than formal arguments in procedure call at (1)
[FAIL] compile    0.1 ! monc_mod.o           <- monc/model_core/src/monc.F90
[FAIL] ftn -oo/io_server_client_mod.o -c -I./include -I/opt/cray/pe/netcdf/<IP_ADDRESS>/GNU/9.1/include -I/opt/cray/pe/fftw/<IP_ADDRESS>/x86_rome/lib/../include -O3 -J . -frecursive /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90 # rc=1
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:168:25:
[FAIL]
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] ......
[FAIL]   168 |     call mpi_get_address(basic_type%dimensions, num_addr, ierr)
[FAIL]       |                         1
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:173:25:
[FAIL]
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] ......
[FAIL]   173 |     call mpi_get_address(basic_type%dim_sizes, num_addr, ierr)
[FAIL]       |                         1
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:124:25:
[FAIL]
[FAIL]   124 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (TYPE(field_description_type)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:129:25:
[FAIL]
[FAIL]   129 |     call mpi_get_address(basic_type%field_name, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (CHARACTER(150)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:134:25:
[FAIL]
[FAIL]   134 |     call mpi_get_address(basic_type%field_type, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:139:25:
[FAIL]
[FAIL]   139 |     call mpi_get_address(basic_type%data_type, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:144:25:
[FAIL]
[FAIL]   144 |     call mpi_get_address(basic_type%optional, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:92:25:
[FAIL]
[FAIL]    92 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (TYPE(definition_description_type)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:97:25:
[FAIL]
[FAIL]    97 |     call mpi_get_address(basic_type%send_on_terminate, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:102:25:
[FAIL]
[FAIL]   102 |     call mpi_get_address(basic_type%number_fields, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] /lus/cls01095/work/n02/n02/earlcd/monc/preprocess/src/monc/io/src/ioclient.F90:107:25:
[FAIL]
[FAIL]   107 |     call mpi_get_address(basic_type%frequency, num_addr, ierr)
[FAIL]       |                         1
[FAIL] ......
[FAIL]   163 |     call mpi_get_address(basic_type, base_addr, ierr)
[FAIL]       |                         2
[FAIL] Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/TYPE(data_sizing_description_type)).
[FAIL] compile    0.1 ! io_server_client_mod.o <- monc/io/src/ioclient.F90
[info] compile   targets: modified=0, unchanged=91, failed=4, total-time=0.3s
[info] compile+  targets: modified=0, unchanged=88, failed=0, total-time=0.0s
[info] TOTAL     targets: modified=0, unchanged=179, failed=8, elapsed-time=2.0s
[FAIL] ! conditional_diagnostics_whole_mod.mod: depends on failed target: conditional_diagnostics_whole_mod.o
[FAIL] ! conditional_diagnostics_whole_mod.o: update task failed
[FAIL] ! io_server_client_mod.mod: depends on failed target: io_server_client_mod.o
[FAIL] ! io_server_client_mod.o: update task failed
[FAIL] ! iterativesolver_mod.mod: depends on failed target: iterativesolver_mod.o
[FAIL] ! iterativesolver_mod.o: update task failed
[FAIL] ! monc_mod.mod        : depends on failed target: monc_mod.o
[FAIL] ! monc_mod.o          : update task failed
[FAIL] make build          # 2.3s
[FAIL] make                # 8.9s

does not compile
With the GNU compiler MONC fails to compile. All the errors are related to incorrect datatypes being passed to MPI-related subroutines (as far as I can see). I think these are bugs and fixing these may resolve the issue we are having at runtime. It is possible that the GNU compiler is being more strict here and catching these bugs at compile-time.
Thoughts @sjboeing ?

Digging a little further it I've added some print statements. It appears that the counts are calculated incorrectly (I'm compiling with Cray Fortran again here)
earlcd@uan01:~/work/monc> cat slurm-77539.out
Unloading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env-profile
Loading cpe-cray
Loading cce/10.0.4
Loading craype/2.7.2
Loading craype-x86-rome
Loading libfabric/<IP_ADDRESS>.233
Loading craype-network-ofi
Loading cray-dsmml/0.1.2
Loading perftools-base/20.10.0
Loading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta
Loading cray-mpich/8.0.16
Loading cray-libsci/<IP_ADDRESS>
Loading bolt/0.7
Loading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env

Loading epcc-job-env
  Loading requirement: bolt/0.7
Currently Loaded Modulefiles:
 1) cpe-cray
 2) cce/10.0.4(default)
 3) craype/2.7.2(default)
 4) craype-x86-rome
 5) libfabric/<IP_ADDRESS>.233(default)
 6) craype-network-ofi
 7) cray-dsmml/0.1.2(default)
 8) perftools-base/20.10.0(default)
 9) xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta(default)
10) cray-mpich/8.0.16(default)
11) cray-libsci/<IP_ADDRESS>(default)
12) bolt/0.7
13) /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
14) epcc-job-env
MPICH ERROR [Rank 2] [job id 77539.0] [Tue Jan 26 13:07:48 2021] [unknown] [nid001199] - Abort(1007255298) (rank 2 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5ce63c0, scnts=0x45fba80, sdispls=0x45fb180, MPI_DOUBLE_PRECISION, rbuf=0x5d26a00, rcnts=0x45fa400, rdispls=0x46279c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -919842048

aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5ce63c0, scnts=0x45fba80, sdispls=0x45fb180, MPI_DOUBLE_PRECISION, rbuf=0x5d26a00, rcnts=0x45fa400, rdispls=0x46279c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -919842048
 debug send_sizes 4352,  3*4096
 debug recv_sizes 4*4096
 debug send_sizes 16448
 debug recv_sizes 16448
 debug send_sizes 32896
 debug recv_sizes -919842048
MPICH ERROR [Rank 1] [job id 77539.0] [Tue Jan 26 13:07:48 2021] [unknown] [nid001199] - Abort(1007255298) (rank 1 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5ca16c0, scnts=0x47f8200, sdispls=0x47f6d40, MPI_DOUBLE_PRECISION, rbuf=0x5ce5cc0, rcnts=0x47f1400, rdispls=0x47ee200, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1300475136

I've gotten as far as identifying that determine_offsets_from_size (also in compiled MONC docs) is in charge of computing these offsets. I think the next step will be to work out why this subroutine isn't calculating positive values (as it should).

Digging a little further it I've added some print statements. It appears that the counts are calculated incorrectly (I'm compiling with Cray Fortran again here)
earlcd@uan01:~/work/monc> cat slurm-77539.out
Unloading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env-profile
Loading cpe-cray
Loading cce/10.0.4
Loading craype/2.7.2
Loading craype-x86-rome
Loading libfabric/<IP_ADDRESS>.233
Loading craype-network-ofi
Loading cray-dsmml/0.1.2
Loading perftools-base/20.10.0
Loading xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta
Loading cray-mpich/8.0.16
Loading cray-libsci/<IP_ADDRESS>
Loading bolt/0.7
Loading /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env

Loading epcc-job-env
  Loading requirement: bolt/0.7
Currently Loaded Modulefiles:
 1) cpe-cray
 2) cce/10.0.4(default)
 3) craype/2.7.2(default)
 4) craype-x86-rome
 5) libfabric/<IP_ADDRESS>.233(default)
 6) craype-network-ofi
 7) cray-dsmml/0.1.2(default)
 8) perftools-base/20.10.0(default)
 9) xpmem/2.2.35-<IP_ADDRESS>_1.9__gd50fabf.shasta(default)
10) cray-mpich/8.0.16(default)
11) cray-libsci/<IP_ADDRESS>(default)
12) bolt/0.7
13) /work/y07/shared/archer2-modules/modulefiles-cse/epcc-setup-env
14) epcc-job-env
MPICH ERROR [Rank 2] [job id 77539.0] [Tue Jan 26 13:07:48 2021] [unknown] [nid001199] - Abort(1007255298) (rank 2 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5ce63c0, scnts=0x45fba80, sdispls=0x45fb180, MPI_DOUBLE_PRECISION, rbuf=0x5d26a00, rcnts=0x45fa400, rdispls=0x46279c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -919842048

aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5ce63c0, scnts=0x45fba80, sdispls=0x45fb180, MPI_DOUBLE_PRECISION, rbuf=0x5d26a00, rcnts=0x45fa400, rdispls=0x46279c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -919842048
 debug send_sizes 4352,  3*4096
 debug recv_sizes 4*4096
 debug send_sizes 16448
 debug recv_sizes 16448
 debug send_sizes 32896
 debug recv_sizes -919842048
MPICH ERROR [Rank 1] [job id 77539.0] [Tue Jan 26 13:07:48 2021] [unknown] [nid001199] - Abort(1007255298) (rank 1 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x5ca16c0, scnts=0x47f8200, sdispls=0x47f6d40, MPI_DOUBLE_PRECISION, rbuf=0x5ce5cc0, rcnts=0x47f1400, rdispls=0x47ee200, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1300475136

I've gotten as far as identifying that determine_offsets_from_size (also in compiled MONC docs) is in charge of computing these offsets. I think the next step will be to work out why this subroutine isn't calculating positive values (as it should).

Hi @Leif, this looks like it is not really trivial. two things you may try are:

disable the ioserver component, just to see if the issue has to do with it. (just use enable_io_server=.false.?)
Run a BOMEX case. I think the straka case is effectively 2D, and may not be as well accommodated as the runs on a 3D domain.

Hi @Leif, this looks like it is not really trivial. two things you may try are:

disable the ioserver component, just to see if the issue has to do with it. (just use enable_io_server=.false.?)
Run a BOMEX case. I think the straka case is effectively 2D, and may not be as well accommodated as the runs on a 3D domain.

Thanks for the suggestions @sjboeing, I've tried both and the issue persists.

with `enable_io_server=.false.`
```bash
aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x570ab40, scnts=0x4611440, sdispls=0x45fa740, MPI_DOUBLE_PRECISION, rbuf=0x573f040, rcnts=0x45f9e40, rdispls=0x45f90c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1112427776
 debug send_sizes 5*2652
 debug recv_sizes 2*2678,  3*2652
 debug send_sizes 13364
 debug recv_sizes 13364
 debug send_sizes 26728
 debug recv_sizes -1090014464
MPICH ERROR [Rank 4] [job id 78435.0] [Tue Jan 26 21:33:32 2021] [unknown] [nid001010] - Abort(940146434) (rank 4 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x570a080, scnts=0x4611440, sdispls=0x45fa740, MPI_DOUBLE_PRECISION, rbuf=0x573e580, rcnts=0x45f9e40, rdispls=0x45f90c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1090014464
</detail>

<detail>
<summary>using the `testcases/shallow_convection/bomex.mcf` configuration</summary>
```bash
aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x9961800, scnts=0x4606440, sdispls=0x4605b40, MPI_DOUBLE_PRECISION, rbuf=0x9a03480, rcnts=0x47c1c80, rdispls=0x47bf780, datatype=MPI_DOUBLE_PRECISION, comm=comm=0xc4000000) failed
PMPI_Alltoallv(351): Negative count, value is -746590336
 debug send_sizes 2*38912
 debug recv_sizes 2*38912
 debug send_sizes 2*40128
 debug recv_sizes 2*40128
 debug send_sizes 2*41382
 debug recv_sizes -2011828352,  0
MPICH ERROR [Rank 4] [job id 78459.0] [Tue Jan 26 22:11:40 2021] [unknown] [nid001010] - Abort(134840066) (rank 4 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x99602c0, scnts=0x4606440, sdispls=0x4605b40, MPI_DOUBLE_PRECISION, rbuf=0x9a01f40, rcnts=0x47c1c80, rdispls=0x47bf780, datatype=MPI_DOUBLE_PRECISION, comm=comm=0x84000007) failed
PMPI_Alltoallv(351): Negative count, value is -2011828352

Thanks for the suggestions @sjboeing, I've tried both and the issue persists.

with `enable_io_server=.false.`
```bash
aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x570ab40, scnts=0x4611440, sdispls=0x45fa740, MPI_DOUBLE_PRECISION, rbuf=0x573f040, rcnts=0x45f9e40, rdispls=0x45f90c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1112427776
 debug send_sizes 5*2652
 debug recv_sizes 2*2678,  3*2652
 debug send_sizes 13364
 debug recv_sizes 13364
 debug send_sizes 26728
 debug recv_sizes -1090014464
MPICH ERROR [Rank 4] [job id 78435.0] [Tue Jan 26 21:33:32 2021] [unknown] [nid001010] - Abort(940146434) (rank 4 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x570a080, scnts=0x4611440, sdispls=0x45fa740, MPI_DOUBLE_PRECISION, rbuf=0x573e580, rcnts=0x45f9e40, rdispls=0x45f90c0, datatype=MPI_DOUBLE_PRECISION, comm=MPI_COMM_SELF) failed
PMPI_Alltoallv(351): Negative count, value is -1090014464
</detail>

<detail>
<summary>using the `testcases/shallow_convection/bomex.mcf` configuration</summary>
```bash
aborting job:
Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x9961800, scnts=0x4606440, sdispls=0x4605b40, MPI_DOUBLE_PRECISION, rbuf=0x9a03480, rcnts=0x47c1c80, rdispls=0x47bf780, datatype=MPI_DOUBLE_PRECISION, comm=comm=0xc4000000) failed
PMPI_Alltoallv(351): Negative count, value is -746590336
 debug send_sizes 2*38912
 debug recv_sizes 2*38912
 debug send_sizes 2*40128
 debug recv_sizes 2*40128
 debug send_sizes 2*41382
 debug recv_sizes -2011828352,  0
MPICH ERROR [Rank 4] [job id 78459.0] [Tue Jan 26 22:11:40 2021] [unknown] [nid001010] - Abort(134840066) (rank 4 in comm 0): Fatal error in PMPI_Alltoallv: Invalid count, error stack:
PMPI_Alltoallv(410): MPI_Alltoallv(sbuf=0x99602c0, scnts=0x4606440, sdispls=0x4605b40, MPI_DOUBLE_PRECISION, rbuf=0x9a01f40, rcnts=0x47c1c80, rdispls=0x47bf780, datatype=MPI_DOUBLE_PRECISION, comm=comm=0x84000007) failed
PMPI_Alltoallv(351): Negative count, value is -2011828352

Hi @leifdenby Leif, just wondering what choice of moncs _per_io is set. Is this a version that still uses FFTW rather than the MOSRS new HEAD that uses FFTE? The message seemed to indicate fft_pencil in earlier output.
Note Archer2 has 128 cores per node and 8 NUMA regions per node so it is best to have 1 io per numa region: that is 15 moncs per io server. [sorry if you already knew that I did not look at your case]. alternatively do 63 monc per io so that one IO server per socket.

I just re-read some of your compile woes. NOTE GCC 10. does not like the fact that MPI calls can use any data type so we have to apply " -fallow-argument-mismatch "; I found that back in November and archer team added it to the documentation on building: https://docs.archer2.ac.uk/user-guide/dev-environment/

Did you solve this yet? I see the only ref to mpi_alltoallv appears to be in components/fftsolver/src/pencilfft.F90
I was (am) working with  the MOSRS code at r8166 where Adrian seems to make most of his branches start.
Perhaps I should turn my attention to this repo.

Did you solve this yet? I see the only ref to mpi_alltoallv appears to be in components/fftsolver/src/pencilfft.F90
I was (am) working with the MOSRS code at r8166 where Adrian seems to make most of his branches start.
Perhaps I should turn my attention to this repo.

I haven't no :cry: The farthest I've gotten is producing a branch (see https://github.com/Leeds-MONC/monc/pull/38) which contains all the commits that Adrian has made on MOSRS where he is working on ARCHER2 fixes. As you know this branch includes a lot of changes and as it stands also reverses changes Chris recently did for ARC4.
I am going to try and cherry-pick just the first four commits and see if that helps with running on ARCHER2.

I just re-read some of your compile woes. NOTE GCC 10. does not like the fact that MPI calls can use any data type so we have to apply " -fallow-argument-mismatch "; I found that back in November and archer team added it to the documentation on building: https://docs.archer2.ac.uk/user-guide/dev-environment/

Thank you for suggesting this. I'll give it a try with adding that compilation flag.

just wondering what choice of moncs _per_io is set. Is this a version that still uses FFTW rather than the MOSRS new HEAD that uses FFTE? The message seemed to indicate fft_pencil in earlier output.
Note Archer2 has 128 cores per node and 8 NUMA regions per node so it is best to have 1 io per numa region: that is 15 moncs per io server. [sorry if you already knew that I did not look at your case]. alternatively do 63 monc per io so that one IO server per socket.

Thank you for suggesting this. I'm not quiet sure how to work this out. If you check my run log above you'll see:
[INFO] MONC running with 4 processes, 1 IO server(s)
My moncs_per_io=3 (https://github.com/leifdenby/monc/blob/archer2-compilation/tests/straka_short.mcf#L38) and I think I'm requesting 5 cores in my job (https://github.com/leifdenby/monc/blob/archer2-compilation/utils/archer2/submonc.slurm#L7)
Does that sound reasonable or am I doing something obviously stupid?

The job looks poorly specified. If you want to ru a total of 4 MPI tasks (i.e. 1 io and 3 monc) then tasks-per-node should be also be 4. but then yo might choose to spread them out unless this is just a really basic job and you are happy for all tasks to sit in same numa region. When doing a proper job consider the cpus-per-task if you have fewer than 128 tasks on one node.

Per Ralph's notes, and in agreement with @MarkUoLeeds , it seems that the Leeds branch works with gnu 9.3.0 but not the default gnu 10. Having my module load order as
export PATH=$PATH:/work/y07/shared/umshared/bin
export PATH=$PATH:/work/y07/shared/umshared/software/bin
. mosrs-setup-gpg-agent

module restore PrgEnv-cray
module load cpe-gnu
module load gcc/9.3.0
module load cray-netcdf-hdf5parallel
module load cray-hdf5-parallel
module load cray-fftw/<IP_ADDRESS>
module load petsc/3.13.3

seems the best option for compiling with gnu using fcm make -j4 -f fcm-make/monc-cray-gnu.cfg. The PATH inclusions add in the installed version of fcm and allow you to cache your MOSRS password with the . mosrs-setup-gpg-agent command (as needed when getting casim and socrates from MOSRS)
Still trying out the cray compiler so can't comment on that, and waiting on the test job to run, but thought I'd mention this

thanks for the help here. I think we can close this now that @cemac-ccs is working on a pull-request for ARCHER2: https://github.com/Leeds-MONC/monc/pull/45


tsserver.js hogging my CPU

Im having the same issues posted here #71286
electron_node tsserver.js has a high CPU usage
I've already tried the following :

followed the Performance issue guide
open up the project in the Insiders build (with no extensions)

A few initial questions:

When this happens, does intellisense still work in javascript/typescript files?
Does something specific trigger it?
Does this happen for all projects or only one in particular?

It starts as soon as I open the project. intellisense does not work
The process starts to rise as soon as I open VScode, so I can't tell what exactly is trigging it.
It raises a bit in my other projects, but not enough to stop intellisense

Please try collecting the TS Server log:

Set "typescript.tsserver.log": "verbose",
Restart VS Code and reproduce the problem
In VS Code, run the TypeScript: Open TS Server log command
This should open a folder with a tsserver.log file in it

If you can share the log, I can also take a look to see if anything stands out

⚠Warning: The TypeScript log may include information from your workspace, including file paths and source code. If you have any concerns about posting this publicly on Github, just let me know and we can arrange something else. On our side, we only use these logs to investigate issues like this

tsserver.log

Like that or should I copy and paste the contents?

Thanks. From the logs it looks like you are not on the latest insiders build (or are using an older TS version in your workspace) Please test on insiders using TS 3.4.1.
Also test with extensions disabled to see if one of them is causing. I see that tslint and intellicode are being loaded

I've already done those things (see first post). I've never used TS before how do I check/update the version Vscode is using?

With a js file open, run select Typescript version from the command palette
Share the logs from insiders with extensions disabled.

tsserver.log

CPU %	Memory (MB)	pid	Name
0	80	31752	code-insiders main
0	192	22592	     gpu-process
0	199	23452	     window (App.js - flashcards - Visual Studio Code - Insiders)
0	68	11640	         extensionHost
0	892	15588	             electron_node tsserver.js
0	55	4164	                 electron_node typingsInstaller.js typesMap.js
0	35	25972	             "C:\Users\risto\AppData\Local\Programs\Microsoft VS Code Insiders\Code - Insiders.exe" "c:\Users\risto\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\json-language-features\server\dist\jsonServerMain" --node-ipc --clientProcessId=11640
0	10	17244	         watcherService
0	9	5360	             console-window-host (Windows internal process)
0	6	21416	         winpty-process
0	9	15068	             console-window-host (Windows internal process)
0	62	31008	             C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe
0	12	32528	         electron-crash-reporter
0	63	26816	     shared-process
0	64	33468	     window (Process Explorer)

Thanks. Nothing obvious in the logs. Your process explorer output shows 0 cpu usage which seems odd. Can you share the output from windows process explorer instead for the code-insiders process

is that what you mean?

Yes, but those are also 0%. How did you determine it is hogging your cpu?

LOL! This whole time I meant memory 😆 that's embarrassing..

CPU %	Memory (MB)	pid	Name
0	78	14652	code-insiders main
0	190	1908	     window (● Navigation.js - flashcards - Visual Studio Code - Insiders)
0	11	8960	         watcherService
0	9	6412	             console-window-host (Windows internal process)
0	61	13344	         extensionHost
26	286	12372	             electron_node tsserver.js
0	44	7324	                 electron_node typingsInstaller.js typesMap.js
0	6	14840	         winpty-process
0	5	3192	             "C:\Program Files\Git\bin\bash.exe"
0	9	11580	                 "C:\Program Files\Git\bin..\usr\bin\bash.exe"
0	8	13688	             console-window-host (Windows internal process)
0	169	12076	     gpu-process
0	64	13580	     shared-process
0	61	13884	     window (Process Explorer)
0	8	14772	     C:\Users\risto\AppData\Local\Temp\vscode-update-user-x64\CodeSetup-insider-5fb8764a0b2cfd1cedd522f3b33eda7195da3e36.exe /verysilent /update="C:\Users\risto\AppData\Local\Temp\vscode-update-user-x64\CodeSetup-insider-5fb8764a0b2cfd1cedd522f3b33eda7195da3e36.flag" /nocloseapplications /mergetasks=runcode,!desktopicon,!quicklaunchicon
0	31	15148	         "C:\Users\risto\AppData\Local\Temp\is-S44GU.tmp\CodeSetup-insider-5fb8764a0b2cfd1cedd522f3b33eda7195da3e36.tmp" /SL5="$50402,49407040,159744,C:\Users\risto\AppData\Local\Temp\vscode-update-user-x64\CodeSetup-insider-5fb8764a0b2cfd1cedd522f3b33eda7195da3e36.exe" /verysilent /update="C:\Users\risto\AppData\Local\Temp\vscode-update-user-x64\CodeSetup-insider-5fb8764a0b2cfd1cedd522f3b33eda7195da3e36.flag" /nocloseapplications /mergetasks=runcode,!desktopicon,!quicklaunchicon

nows it definitely using too much CPU.
Intellsense not even working now


Fixed Navbar for mobile view

Description

Issue Ticket Number
Fixes #383

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist:

[ ] I have followed the contributing guidelines of this project as mentioned in CONTRIBUTING.md
[ ] I have checked to ensure there aren't other open Pull Requests for the same update/change?
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes needed to the documentation

Congrats @itsmeAnubhab 🎉, your PR got merged. To be eligible for the swags from ClueLess. Follow this steps.

Star this repository. ⭐
SignIn / SignUp in [ClueLess Website](https://www.clueless.tech/) .
Go to profile section from the top right hand corner.

Comment your profile URL under this comment tagging the person who merged your PR.

That’s it. Follow the leaderboard !
And don’t forget to share your achievement with your friends.

https://www.clueless.tech/profile/admin/91974827
@Debajyoti14


[NNBD] Type promotion fails in async functions

The following function:
Future<String> foo(int arg) async {
  String? value;
  if (arg > 0) {
    value = await Future.value("greater than");
  } else {
    value = "less than";
  }
  return value;
}

Produces this error:
  error • A value of type 'String?' can't be returned from the function 'foo' because it has a return type of 'Future<String>'. • test.dart:9:10 • return_of_invalid_type

value is clearly never null here, and in fact if Future.value() is replaced by a plain string it's detected correctly.

Yeah, this is an unfortunate case.  Thanks for bringing it up and prompting me to look at it with fresh eyes.
What's happening here is that when type inference reaches Future.value("greater than"), it looks up the type signature of the Future<T>.value constructor (which is Future<T> Function([FutureOr<T>?])) and then does the following reasoning steps:

The context type is FutureOr<String?> (meaning the value produced by the constructor must be a subtype of either String? or Future<String?> in order for the assignment to succeed).  Therefore T must be a subtype of String?.
The argument type is String.  Therefore String must be a subtype of FutureOr<T>, and thus String must be a subtype of T.

It doesn't have any more information, so it has to choose a type of either String or String? for the type.  It chooses String?, so it's creating a Future of type Future<String?>.  Awaiting this future produces a String?, so the assignment to value doesn't promote value to String.
For your situation there are two solutions you could consider:

Change the declaration of value from String? value; to String value;.  This way your code won't require type promotion because value will have the right type from the start.  (Note that this is allowed under null safety, because flow analysis can see that value is always assigned before it is used, so even though value has a non-nullable type, you don't have to initialize it).  This is probably the best solution for your example.
Specify the type argument explicitly in the call to Future.value by changing it to Future<String>.value.  This will ensure that both assignments to value promote from String? to String.

Of course, the obvious follow up question is, could we make type inference smarter, so that it understands that Future<String> was the type you really wanted, rather than Future<String?>?  I believe the answer is yes, we could, but we would have to add some information to the type system.  Specifically, we would have to add the information that in the methods on class Future<T>, T is only ever used in a covariant position (e.g. as a return type)*, which means that a Future<String> is always safe to use where a Future<String?> is expected.  Note that this isn't true of other generic types, like List:
List<String?> x = List.filled(10, "s");
x[0] = null;

The exact same type inference situation exists here, but it's crucial that we infer List<String?> in this case.  (If we inferred List<String>, then there would be a runtime failure on the second line).
I think we could address this situation as part of the "variance" feature, since that feature allows us to supply exactly the information that's needed; in the case of Future, the type parameter would be an "out" parameter, so type inference would know that Future<String> is safe to use where Future<String?> is expected, whereas in the case of List, the type parameter would be an "inout" parameter, so type inference would know that it has to choose List<String?> to be safe.
@leafpetersen @kallentu does that idea seem feasible to you?
(Technically I lied when I said that T is only ever used in a covariant position in methods on Future, because Future<T>.timeout has a contravariant use.  It's signature is Future<T> Function(Duration, {FutureOr<T> onTimeout}).  I suspect we could address that problem with some additional type system cleverness, but I haven't thought the whole thing through.)

I didn't realize that this only occurred when the right-hand side of the expression could be inferred as nullable. In that case, it's easy for me to work around :smiley:.

@stereotype441 This is in fact how inference works in the prototype that @kallentu implemented.  If you run the following code with --enable-experiment=variance:
class C1<out T> {
  C1(T x);
}

class C2<T> {
  C2(T x);
}

void main() {
  C1<int?> a = C1(3);
  print(a.runtimeType);
  C2<int?> b = C2(3);
  print(b.runtimeType);
}

You get the following output:
C1<int>
C2<int?>

In the runtime checked covariant example (C2), inference "pins" the result immediately based on the context type, for the reason you describe.  In the statically checked covariant example (C1) inference chooses the principle "most precise" type.

@leafpetersen awesome, glad to hear it!


Added black linter.

Added black linter.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
4

Relevant Lines:
4

💛  - Coveralls


feat: check metered connection before automatic updates

This PR prevents automatic update services from running on a metered connection (see #113 for more details).
Explanation:

/bin/bash -c is needed because systemd runs binaries, not shell scripts
busctl get-property org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager Metered gets the value of the metered connection property
...but it doesn't just return the number, also some symbols behind it, so we trim them with | cut -c 3-
== @(2|4) checks if the result is either 2 (NM_METERED_NO) or 4 (NM_METERED_GUESS_NO), as per documentation:

the service only runs if the above code returns a success code

Regarding DE app stores and such: GNOME software seems to already have support for not running updates on a metered connection, pretty sure KDE and others have the same thing.
Note: I did test this and it seems to work, but I would like at least a few more people to confirm this before we can get this merged.
Also includes just commands to disable/enable automatic updates at will, without marking the connection as metered.

LGTM

@tunix did you test it? If so, did you test both the metered connection check and the just commands? I know some people have issues with rpm-ostreed-automatic.timer re-enabling by itself, but according to the docs this shouldn't happen

Also can someone from the maintainers please approve the build workflow? Ideally I want people to be able to rebase to this to test it, it's probably fine but I still wanna make sure this doesn't break anything for anyone

Also can someone from the maintainers please approve the build workflow? Ideally I want people to be able to rebase to this to test it, it's probably fine but I still wanna make sure this doesn't break anything for anyone

Done, sorry for the long wait.

Thanks! No worries, we're all just regular people working on this in their free time, after all.

Also can someone from the maintainers please approve the build workflow? Ideally I want people to be able to rebase to this to test it, it's probably fine but I still wanna make sure this doesn't break anything for anyone

I appreciate the desire to test before pushing this out to the world.
Building this workflow in PR is fine, but it won't create an image or RPM for you to test with.
What I do to test changes like this is:

build the config image locally (eg, podman build -f Containerfile)
access the RPMs using a temp container image

$ cat Tempfile
FROM registry.fedoraproject.org/fedora-toolbox:38
COPY --from=ghcr.io/ublue-os/config:latest /rpms /tmp/rpms

$ podman build -f Foofile -t tmptoolbox
$ podman run --rm -it -v ./tmp/currentdir tmptoolbox

Then I usually install the RPM inside that container, and if that's all I require, that's fine. Additionally, can copy the RPM to /tmp/currentdir and install locally on my real computer or a VM to make sure it works right.

Oh, I was mislead by the fact that one of the checks was called "build-ublue", and thought it builds the image. Thanks!

one of the checks was called "build-ublue"

Good point. That is copy pasta 😂
But take a look at the actions tab and you see how the builds happen. When building for a PR we don't push images.

Has anyone tested this yet?

@ArtikusHG this is approved and queued to merge. Thank you for the contribution.
I'd never used the "metered connection" feature before, so I learned something new and I'm excited to use this!

Thanks a lot for helping! I'm happy to be part of this amazing project :)


Revert "Update EntrustServiceProvider.php"

Reverts Zizaco/entrust#708

@ability('rbac', 'role-index')
Whoops, looks like something went wrong.
syntax error, unexpected ','

which version was correct ? I get the same error #725 , I want to revert it.


When using a dual monitor setup, she can disappear! (Kind of)

I have 2 monitors, one that is a 21:9 Aspect Ratio ULTRAWIDE monitor, and the other is a 16:9 standard Aspect Ratio. The ULTRAWIDE monitor (21:9) is the bottom one. On top is the standard monitor. She seems to walk off my 16:9 standard monitor as if it were an ULTRAWIDE as well.

This is indeed possible, as this type of problem is difficult to trigger and fix.
I have tried to fix this issue before, but it has not been successful (it work, but still)
You can right-click and select Reset in the taskbar to reset the current position of the desk pet and center it

Thank you, this is a great temporary fix for the problem!! <3 Your work is amazing.


tests: update drop and ssh tests for 6

Update https://github.com/OISF/suricata-verify/pull/1712 for 6.

Why does it fail on master?


apiserver doesn't start when offline

I believe I'm having a similar problem to #73 and #149.
I'm using microk8s on a laptop and when I'm connected to the network, it works fine. However, when I am disconnected the api server refuses to start. I'm getting connection refused messages to http://<IP_ADDRESS>:8080/api and I'm getting the no default routes found in "/proc/net/route" or "/proc/net/ipv6_route" message in /var/log/syslog which makes sense since I'm offline.
I ran into this problem on both v1.13 and v1.14.

inspection-report-20190404_082807.tar.gz
Adding inspection report.

@eroglyph this message
error: unable to find suitable network address.error='no default routes found in "/proc/net/route" or "/proc/net/ipv6_route"'. Try to set the AdvertiseAddress directly or provide a valid BindAddress to fix this

is not something MicroK8s can do much for. Kubernetes api server will not start under such conditions and suggests a reconfiguration. To update the configuration of the api server you will need to edit /var/snap/microk8s/current/args/kube-apiserver and microk8s.stop/microk8s.start.

@ktsakalozos
Modifying the api server configuration wasn't working for me. I was able to work around the issue by creating a VM using Virtualbox to create a Host-only Network.
In this case, the IP assigned to my machine is <IP_ADDRESS> for the vboxnet0 interface. Then I added the IP as a default route
sudo route add default gw <IP_ADDRESS>
and created and started a blank VM with the vboxnet0 interface attached so that the connection would appear legit.  After that, I was able to run microk8s.start and microk8s.status shows that microk8s is running.
I'm not sure that this is exactly the best way to simulate a network while offline, but I'm open to better solutions.

i have the same problem

I also have the same problem.

To update the configuration of the api server you will need to edit /var/snap/microk8s/current/args/kube-apiserver and microk8s.stop/microk8s.start.

Can someone please describe exactly what should be edited, and changed in what way?


Parser stopped at "&" in element value. Following elements are missing

Input string:
...<raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=wma%2Cmp3%2Cogg&serial=123&id=123&c=ebrowse</raumfeld:ebrowse><dc:title>1LIVE diggi - Multimedia - 1LIVE</dc:title><raumfeld:durability>118</raumfeld:durability></item></DIDL-Lite>
xml["DIDL-Lite"]["item"].all:
...<raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5</raumfeld:ebrowse></item>]
Parser stopped at "&" in element value. Following elements are missing.

Is the & in a CDATA section? If not, it is likely not parsing because the underlying NSXMLParser is trying to treat it as an escaped character (e.g. like   in HTML).
See http://stackoverflow.com/questions/730133/invalid-characters-in-xml as a reference.
If you wrap the link you're looking at in a CDATA section, it should also work.

Thanks!
Looks like the data i want to parse are not XML valid.


Package script with custom gradle

Addresses https://github.com/holgerbrandl/kscript/issues/223
I wasn't sure how to package and test the change though - let me know any suggestions for that.
Thanks!

Will this support an actual path like KSCRIPT_CUSTOM_GRADLE_NAME=/path/to/gradle'? In particular, I wonder if this plays along with the downstream requireInPath`.
Wouldn't be a KSCRIPT_CUSTOM_GRADLE a better name for the parameter?

I don't know, how should I build the project to test it?
KSCRIPT_CUSTOM_GRADLE sounds fine to me

@holgerbrandl do I just ./gradlew jar to get an executable to test with, or is there something more involved?

Sorry for the delay. ./gradlew assemble is all you need to build it.

I've opted instead to just add ./gradlew to the PATH


smlfmt: init at 1.0.0

Description of changes
Add smlfmt, a source code formatter for Standard ML source files.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Thank you for youor comments @marsam. I have applied your suggested changes and created a separate commit for the maintainers change.


Old tags 0.0.3, 0.3.3 missing

I was doing some archaelogy today and noticed that https://pypi.org/project/waybackpack/ has versions 0.0.3 and 0.3.3, but there are no such tags in this git repo.
Could you add the missing tags?

Thanks for flagging, now added 👍


Search service is not storing the datasetId among temporalEntityAttribute params

I think the create function in the TemporalEntityAttributeService misses binding the datasetId

Indeed, it doesn't.


Expose configuration options for progress bar, caching, turbolinks root, etc

Making sure that <meta name="turbolinks-cache-control" content="no-preview"> is added on every page of HTML we serve is kinda a chore, and I'm scared that something will get missed. What do the authors think of adding it as a configuration option?

I can see it being a chore if you have to add it to each page manually. I'd think most people would be using a layout though, no?

Yeah, we've got a couple different layouts. Also, it gets sent over the wire each time, which is one of those things that isn't actually a big deal, but feels inefficient.
It seems like there might be a desire to keep Turbolinks free of configuration options -- hence the <meta name="turbolinks-root">, hiding the progress bar with visibility: hidden, changing the caching behavior with <meta name="turbolinks-cache-control">...
I think it's far more pragmatic to expose these as config options, like they were in turbolinks-classic, and I suspect others might feel this way as well. I'll update the issue title to more accurately reflect this.

It seems like there might be a desire to keep Turbolinks free of configuration options

I wouldn't go quite that far ;-) However, I do think that adding configuration options on a whim can blind you to the best defaults, and can suggest usage you don't necessarily intend or encourage. We should consider each option carefully.

I think it's far more pragmatic to expose these as config options, like they were in turbolinks-classic

I think the options we have so far make sense at the page level.
For example, caching options are per-page because they're intended to be used selectively, for the rare case when you need to deviate from the defaults. It's perfectly reasonable to want default caching behavior everywhere but a few pages, and unlikely that you'd ever want to disable caching entirely. The lack of an on/off switch reflects that.
I can see wanting to disable cached previews entirely, but I'm not sure it's common enough to warrant an on/off switch. The presence of a switch suggests that globally disabling previews is something you're likely to do, which I don't necessarily think is the case and wouldn't want to encourage.
Of course, others might feel differently, and I'm happy to discuss it further. I really have nothing against configuration options. I just think they need to make a strong case for themselves :grin:

The presence of a switch suggests that globally disabling previews is something you're likely to do, which I don't necessarily think is the case and wouldn't want to encourage.

This is where we differ: I think the preview cache is one of the stranger features in TL, and I much preferred when it was disabled by default. The preview cache will have seriously undesirable behavior if there are pages that load slowly or if there is network latency. (https://github.com/turbolinks/turbolinks-classic/issues/330)
I appreciate (and am in awe of) the speed of Basecamp 3, but not every Rails app is going to be as fast. This prevents TL from being a "drop-in solution" for all Rails app. I'm not familiar with Rails 5's defaults, but I feel like the preview cache needs to be disabled by default or TL needs to be removed from the default-generated app.
An unrelated point is that tags like <meta name="turbolinks-root"> are kinda an abuse of meta tags, no? Why should options for a JavaScript library be specified in the HTML?

I think the preview cache is one of the stranger features in TL, and I much preferred when it was disabled by default.

Judging from my personal experience I have to agree with this assessment.
I tried the transition cache several times, but I always ended up disabling it. The perceived speed was impressive, but I never could get my apps fast enough and always ran into the mentioned side effects.
IMHO the preview cache is the icing on top of a (mostly) static site or an already fast application, but for slower setups/apps it does more harm than good.

I can see wanting to disable cached previews entirely, but I'm not sure it's common enough to warrant an on/off switch.

I believe that is the core question: How many developers/apps actually use the preview cache successfully? I can't image it is the majority, but of course I can be wrong.
Perhaps there should be "2G Tuesdays" for Rails and Turbolinks developers, too. :wink:

The preview cache will have seriously undesirable behavior if there are pages that load slowly or if there is network latency.

In general, the slower your pages are to load, the less effective Turbolinks is at speeding up navigation. If all your pages are slow to load, why use Turbolinks at all?
Consider the on-by-default preview cache to be a bit of vinegar. Most requests should complete in under a second, and preferably in under 500ms. Use techniques like Russian-doll caching and lazily-loaded Ajax content to make that happen.

An unrelated point is that tags like <meta name="turbolinks-root"> are kinda an abuse of meta tags, no? Why should options for a JavaScript library be specified in the HTML?

I don’t think so at all. In fact, I’m struggling to think of a more appropriate way to set page-specific behavior. A JavaScript API seems like it’d be much more cumbersome.
Closing this for now, but my ear’s on the ground with regard to the on-by-default preview cache.

Thanks Sam, appreciate your time and thoughtful response. We can certainly live with opting-out via meta tags once we upgrade.


Format with black

I've added the black formatter to the pre-commit hooks along with the flake8 linter. I addressed the issues raised by these tools along with some formatting and type hint errors. The functionality of the script should be the same. The development experience should be a bit nicer.

Thank you for opening this, @zanebclark! I apologize, we have been behind on many of these PRs and Issues and are trying to catch up.
Many of these formatting changes had been on our roadmap and have been taken care of elsewhere since then. I do think that there are portions of this we would like to use, particularly exploring flake8 and some of the type annotation work; once we fold in some of the other upstream changes, I would like to include this one as well.


Adds $not as an Expectation @property to enable IDE autocompletion

Just a couple of typo otherwise good to merge :+1:
You can mend this commit and force push.

All done!


What do I do if I have two competing matchers

In my case I have two competing matchers:
{
  ID: /[\w]+/,
  TEXT: /[\w][.]|[^#\n\r]+/,
}

If I have a text like this Something Hello World
For the first word ID will always win. How would I go about letting the other one win? :D

Hello! Have you tried switching the order of the rules? Moo will try the rules in order.

@tjvr yes I have. The problem is I want to mostly keep the order as it is.

also @tjvr thanks for getting back to me so quick :+1:

I guess I'm just wondering if there's any other thing I can do besides using states and rule order for this problem...

@juliankrispel You're welcome :-)

You could always try using negative lookahead—see #52.

VERY GOOD POINT thx <3

Glad I could help! :-)


Development guide: Debug modes

A development guide to using the various logging and debugging options to understand the calculations being performed by Splink

Closed by #688


Space between twisty and label

safari
open repo in codespaces
open GH view & expand PRs
🧀 some items are indented with whitespace, are icons missing?

Yeah, this is supposed to be showing user icons, but the content security policy is blocking them.
@matthewisabel Is this something that could be changed on the codespaces side? The icons are urls returned from github, like https://avatars2.githubusercontent.com/u/29464607?v=4&s=64. Or should we try to not render these in the tree when in a codespace?

@matthewisabel @jkeech any thoughts on this?

@matthewisabel @jkeech any thoughts on this?

Adding @legomushroom and @plisy for the CSP rules.

Adding @legomushroom and @plisy for the CSP rules.

We own the CSP rules that will block such content, we can allow the icons URL but we want to be very specific about the source. Whos account is this the 29464607 we can allow the image assets from the githubuser content domain for this specific user.

We own the CSP rules that will block such content, we can allow the icons URL but we want to be very specific about the source. Whos account is this the 29464607 we can allow the image assets from the githubuser content domain for this specific user.

That example happened to be @meganrogge on our team. The idea is that you will test the CSP for those specific image assets and then loosen it to all github users?

That example happened to be @meganrogge on our team. The idea is that you will test the CSP for those specific image assets and then loosen it to all github users?

Some issues from gravatar hosted images (and potentially other domains) in https://github.com/microsoft/vscode-pull-request-github/issues/2310 cc @eamodio
Sounds like we might want to allow any domains for the image asset, but we need to think about the consequences of doing this. You can say images have a lower attack scope, but still, we saw some instances where malicious actors misuse the assets (at least user tracking is easily possible, also for instance the attacks using the CSS-worklets thru SVG images were possible in the past). Since we want to allow any extension to use any image source, probably we don't have much of a choice here though.

Some issues from gravatar hosted images (and potentially other domains) in https://github.com/microsoft/vscode-pull-request-github/issues/2310 cc @eamodio
Sounds like we might want to allow any domains for the image asset, but we need to think about the consequences of doing this. You can say images have a lower attack scope, but still, we saw some instances where malicious actors misuse the assets (at least user tracking is easily possible, also for instance the attacks using the CSS-worklets thru SVG images were possible in the past). Since we want to allow any extension to use any image source, probably we don't have much of a choice here though.

@legomushroom Any updates on this?

@RMacfarlane no progress on this yet, I've added it to our board so it will be fixed sooner.

This is the same as another issue I filed, for basically the same thing in GitLens.

@eamodio yeah all extensions will be affected by this.

@legomushroom yeah. I just wanted to point out that other domains also matter, but I see your comment https://github.com/microsoft/vscode-pull-request-github/issues/2310#issuecomment-765762081 above notes that (though the link is wrong).

Deployed 🚀 Please let me know if you still see the issue 😊


Ability to overwrite process.env.  Ensure env changes don't leak.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (1cc664d) to head (265ac21).

Additional details and impacted files
@@            Coverage Diff            @@
##              main        #9   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines          304       324   +20
=========================================
+ Hits           304       324   +20

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


disabling & enabling packages

respecting ignored_packages settings

This https://github.com/limetext/sublime/commit/c804b4dbde3eb5669328690afb2650e7906a34b7 resolves some portion of the issue

closed by f2b3b8d09ab95d51ae124e8586233456c7ddff60


test: Flaky test fix

Description
Fixed below flaky tests

DeleteWorkspace_spec.js

Type of change

Flaky test fix

How Has This Been Tested?

Cypress test runs

Checklist:
QA activity:

[ ] Test plan has been approved by relevant developers
[ ] Test plan has been peer reviewed by QA
[ ] Cypress test cases have been added and approved by either SDET or manual QA
[ ] Organized project review call with relevant stakeholders after Round 1/2 of QA
[ ] Added Test Plan Approved label after reveiwing all Cypress test

/ok-to-test sha=547a0b3

/ok-to-test sha=b15c36e

/ok-to-test sha=0d84e4d

/ok-to-test sha=ed7fa37

/ok-to-test sha=31882b3

/ci-merge-check

/ci-merge-check