Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Bug] gpactivatestandby -f fails with CRITICAL error even though standby is successfully promoted

Abierto
#1,717 2 comentarios 1 reacción 0 asignados Ver en GitHub

Los mantenedores suelen responder en 3 días

@woblerr ya está trabajando en esto.

Desde el 12/8/2026.

  • #1889 de @woblerr — abierto

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
postgresql, python
Área
databases

Línea de trabajo

Comience con la llamada a gpstart de gpactivatestandby mostrada en el informe y, a continuación, inspeccione la ruta _startCoordinator de gpstart y GpArray.initFromCatalog en lib/python/gppylib/gparray.py, junto con la gestión de conexiones en lib/python/gppylib/db/dbconn.py. Reproduzca el escenario de un apagado limpio y verifique que la activación del standby no informe de un fallo crítico y que el reinicio del clúster restante se complete sin un reinicio manual adicional.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

type: Bug
Apache Cloudberry version

Apache Cloudberry 2.1.0-incubating

What happened

When running gpactivatestandby -a -f after a clean cluster shutdown, the activation fails with a critical error.

gpactivatestandby internally calls gpstart -c to bring up the standby coordinator in utility mode. However, gpstart itself tries to connect to the catalog as part of its startup sequence. The standby instance starts in recovery mode and connections are rejected immediately with:

20260503:13:38:37:000773 gpstart:standby:gpadmin-[ERROR]:-gpstart failed.  exiting...
Traceback (most recent call last):
  File "/usr/local/cloudberry-db/lib/python/gppylib/mainUtils.py", line 365, in simple_main_locked
    exitCode = commandObject.run()
  File "/usr/local/cloudberry-db/bin/gpstart", line 170, in run
    self._startCoordinator()
  File "/usr/local/cloudberry-db/bin/gpstart", line 513, in _startCoordinator
    self.gparray = GpArray.initFromCatalog(self.dburl, utility=True)
  File "/usr/local/cloudberry-db/lib/python/gppylib/gparray.py", line 959, in initFromCatalog
    with closing(dbconn.connect(dbURL, utility)) as conn:
  File "/usr/local/cloudberry-db/lib/python/gppylib/db/dbconn.py", line 263, in connect
    connection = pgdb.connect(**conninfo)
  File "/usr/local/cloudberry-db/lib/python/pgdb.py", line 1690, in connect
    cnx = _connect(dbname, dbhost, dbport, dbopt, dbuser, dbpasswd)
pg.InternalError: connection to server at "localhost" (::1), port 5432 failed: FATAL:  the database system is not accepting connections
DETAIL:  Hot standby mode is disabled.

'
  stderr=''
20260503:13:38:37:000743 gpactivatestandby:standby:gpadmin-[CRITICAL]:-Error activating standby coordinator: ExecutionError: 'non-zero rc: 2' occurred.  Details: 'GPSTART_INTERNAL_COORDINATOR_ONLY=1 && $GPHOME/bin/gpstart -a -c -v -d /data/master/gpseg-1'  cmd had rc=2 completed=True halted=False

This causes gpstart to exit with rc=2, which propagates back as a CRITICAL failure in gpactivatestandby, aborting the remaining steps — including the cluster restart that would have brought the segments online. The coordinator itself does eventually promote (the trigger file was written before calling gpstart).

It requires an additional cluster restart to correctly start the segments.

What you think should happen instead

No response

How to reproduce
  • Initialize a Cloudberry cluster with a standby coordinator (gpinitstandby).
  • Perform a clean, graceful shutdown of the cluster (gpstop -a).
  • On the standby host, run gpactivatestandby -a -f.
  • Observe the CRITICAL error — activation fails even though the standby coordinator process itself did start.
Operating System

Ubuntu

Anything else

No response

Are you willing to submit PR?
  • Yes, I am willing to submit a PR!
Code of Conduct
Lenguaje dominante
C
Estrellas
1.4k
Forks
262
Merge medio
4 d 20 h
PR fusionados (30 d)
57

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/cloudberry

Todos los issues de apache/cloudberry

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.