Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#1,717 2 commenti 1 reazione 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
postgresql, python
Ambito
databases

Direzione di ricerca

Iniziare con la chiamata a gpstart di gpactivatestandby mostrata nel report, quindi esaminare il percorso _startCoordinator di gpstart e GpArray.initFromCatalog in lib/python/gppylib/gparray.py, insieme alla gestione delle connessioni in lib/python/gppylib/db/dbconn.py. Riprodurre lo scenario di uno spegnimento pulito e verificare che l’attivazione dello standby non segnali un errore critico e che il riavvio del cluster rimanente venga completato senza un ulteriore riavvio manuale.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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
Lingua principale
C
Stelle
1.4k
Fork
248
Merge medio
4g 10h
PR unite (30g)
40

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/cloudberry

Tutte le issue di apache/cloudberry

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.