ESMCI / ESMCI/cime

Pin Open MPI in docker image to fix SCORPIO build (MPI_Type_hvector removed)

Open Beginner friendly
#5,014 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
174
Forks
225
Avg merge
1d 16h
Merged PRs (30d)
14

Description

> **Note:** This is E3SM-specific (SCORPIO external / E3SM docker image).

## Description
The `spio` component fails to compile in the `docker` environment because SCORPIO uses the deprecated MPI-1 symbol `MPI_Type_hvector`, which has been removed in the Open MPI version currently installed in the image.

## Affected Test
```
SMS_P1.T42_T42.S.docker_gnu
```

## Component / Build Log
- Component: `spio` (SCORPIO I/O library)
- Log: `bld/spio.bldlog.*`

## Error
```
/e3sm/externals/scorpio/src/clib/core/rearr/pio_rearr_contig.cpp:391:17:
error: 'MPI_Type_hvector' was not declared in this scope; did you mean 'MPI_Type_vector'?
(also lines 405, 479, 493, 1390, 1402)

gmake[2]: *** [.../pio_rearr_contig.cpp.o] Error 1
gmake[1]: *** [.../spio_core_rearr.dir/all] Error 2
gmake: *** [all] Error 2
```

## Root Cause
`MPI_Type_hvector` is an MPI-1 symbol deprecated in MPI-2 and removed by default in recent Open MPI releases. The SCORPIO external still references it, so the build breaks against the newer MPI in the `docker` image.

## Fix
Pin Open MPI in the `docker` image to a version that still exposes the legacy MPI-1 symbols. (Longer term, SCORPIO should migrate `MPI_Type_hvector` -> `MPI_Type_create_hvector`.)

## Environment
- Machine: `docker`
- Compiler: `gnu`
- Project: E3SM

Contributor guide

Open the contributing guide

Research direction

Search the repository's docker image configuration for the Open MPI installation or version pin, then run SMS_P1.T42_T42.S.docker_gnu and inspect bld/spio.bldlog.*. Done means the spio component compiles in the docker GNU environment without the MPI_Type_hvector error.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker
Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
64/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.