Title: Build failure in DBMS_SCHEDULER due to incorrect placement of pg_noreturn
Los mantenedores suelen responder en 1 día
@darshan-s-44 ya está trabajando en esto.
Desde el 11/10/2026.
Evaluación
- Dificultad
- 1/5
- Tiempo estimado
- Menos de una hora
- Aptitud para principiantes
- 75/100
Línea de trabajo
Las tres declaraciones están en las líneas 153-155 de src/builtin_packages/dbms_scheduler/dbms_scheduler.h, y la unidad de traducción que falla es contrib/ivorysql_ora/src/ivorysql_ora.c. Empieza comprobando dónde se define pg_noreturn y cómo debe ordenarse el atributo respecto a extern y PGDLLEXPORT. Reproduce el problema compilando contrib/ivorysql_ora con gcc. Está terminado cuando esas declaraciones compilan sin advertencias ni errores en la configuración afectada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What happened?
Building IvorySQL fails while compiling contrib/ivorysql_ora/src/ivorysql_ora.c. The compiler reports errors for three background worker entry point declarations in dbms_scheduler.h:
- SchedulerLauncherMain
- SchedulerDatabaseWorkerMain
- SchedulerJobWorkerMain
In file included from src/ivorysql_ora.c:45:
src/builtin_packages/dbms_scheduler/dbms_scheduler.h:153:1: warning: ‘noreturn’ attribute ignored [-Wattributes]
153 | extern PGDLLEXPORT pg_noreturn void SchedulerLauncherMain(Datum main_arg);
| ^~~~~~
src/builtin_packages/dbms_scheduler/dbms_scheduler.h:153:32: error: expected identifier or ‘(’ before ‘void’
153 | extern PGDLLEXPORT pg_noreturn void SchedulerLauncherMain(Datum main_arg);
| ^~~~
src/builtin_packages/dbms_scheduler/dbms_scheduler.h:154:1: warning: ‘noreturn’ attribute ignored [-Wattributes]
154 | extern PGDLLEXPORT pg_noreturn void SchedulerDatabaseWorkerMain(Datum main_arg);
| ^~~~~~
src/builtin_packages/dbms_scheduler/dbms_scheduler.h:154:32: error: expected identifier or ‘(’ before ‘void’
154 | extern PGDLLEXPORT pg_noreturn void SchedulerDatabaseWorkerMain(Datum main_arg);
| ^~~~
src/builtin_packages/dbms_scheduler/dbms_scheduler.h:155:1: warning: ‘noreturn’ attribute ignored [-Wattributes]
155 | extern PGDLLEXPORT pg_noreturn void SchedulerJobWorkerMain(Datum main_arg);
| ^~~~~~
src/builtin_packages/dbms_scheduler/dbms_scheduler.h:155:32: error: expected identifier or ‘(’ before ‘void’
155 | extern PGDLLEXPORT pg_noreturn void SchedulerJobWorkerMain(Datum main_arg);
| ^~~~
make[1]: *** [<builtin>: src/ivorysql_ora.o] Error 1
make: *** [GNUmakefile:11: all-contrib/ivorysql_ora-recurse] Error 2
What did you expect to happen?
Compile successfully.
How can we reproduce it (as minimally and precisely as possible)?
Build IvorySQL with
IvorySQL version
master
Compatible mode
oracle
Server encoding
UTF8
Anything else we need to know?
Likely cause
The declarations place pg_noreturn after extern PGDLLEXPORT.
In configurations where pg_noreturn expands to the C23 attribute [[noreturn]], the attribute must appear at the beginning of the declaration. The current placement appears to cause the warnings and syntax errors above.
Proposed fix
Move pg_noreturn before extern and PGDLLEXPORT:
-extern PGDLLEXPORT pg_noreturn void SchedulerLauncherMain(Datum main_arg);
-extern PGDLLEXPORT pg_noreturn void SchedulerDatabaseWorkerMain(Datum main_arg);
-extern PGDLLEXPORT pg_noreturn void SchedulerJobWorkerMain(Datum main_arg);
+pg_noreturn extern PGDLLEXPORT void SchedulerLauncherMain(Datum main_arg);
+pg_noreturn extern PGDLLEXPORT void SchedulerDatabaseWorkerMain(Datum main_arg);
+pg_noreturn extern PGDLLEXPORT void SchedulerJobWorkerMain(Datum main_arg);
OS version
$ cat /etc/os-release
➜ ivorysql_ora git:(pr-1841) ✗ cat /etc/os-release
PRETTY_NAME="Ubuntu 26.04 LTS"
NAME="Ubuntu"
VERSION_ID="26.04"
VERSION="26.04 LTS (Resolute Raccoon)"
VERSION_CODENAME=resolute
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=resolute
LOGO=ubuntu-logo
$ uname -a
Linux e15 7.0.0-34-generic #34-Ubuntu SMP PREEMPT_DYNAMIC Wed Sep 2 14:29:37 UTC 2026 x86_64 GNU/Linux
cc --version
make --version
gcc (Ubuntu 15.2.0-16ubuntu1) 15.2.0
Copyright (C) 2025 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.
cc (Ubuntu 15.2.0-16ubuntu1) 15.2.0
Copyright (C) 2025 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.
GNU Make 4.4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Before submitting
- I confirmed the problem still happens on current
master - I searched existing issues and found no duplicate
- Lenguaje dominante
- C
- Estrellas
- 1.1k
- Forks
- 232
- Merge medio
- 2 d 3 h
- PR fusionados (30 d)
- 8
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de IvorySQL/IvorySQL
-
PostgreSQL::Version rejects documented full psql version outputPosiblemente ocupada @feitiansiyan la tomó hace 1 día. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
IvorySQL/IvorySQL#2999 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
UTL_FILE.NEW_LINE silently ignores negative line countsPosiblemente ocupada @X-LightYear la tomó hace 9 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
IvorySQL/IvorySQL#2634 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Character function regression assumes normal identifier case on default interchange clustersPosiblemente ocupada @zhouxj52 la tomó hace 16 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
IvorySQL/IvorySQL#2470 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
xml2 no-libxslt expected files do not match PG/Oracle input scriptsPosiblemente ocupada @zhouxj52 la tomó hace 16 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
IvorySQL/IvorySQL#2468 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Ivy input bindings with an omitted indicator pointer crash during executionPosiblemente ocupada @Loyal-Young la tomó hace 36 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
IvorySQL/IvorySQL#2257 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de IvorySQL/IvorySQL
Issues similares
-
respond_to? on a poly receiver answers true for a program class's private or protected methodAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
bug core p3
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
RunanywhereAI/runanywhere-sdks#1258 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
rocketproplab/phoenix-fc-sensor-board#18 · 1 comentario ·
-
Plugin mapper: latency_samples is 0 for eight UAD 11.8.3 plug-ins that delay by 55-56 samplesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
rolotrealanis98/open-apollo#126 ·
Los mantenedores suelen responder en 1 día
-
documentation good first issue no-disc-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Jstar269/nakagawa-recomp#1981 ·
Los mantenedores suelen responder en 1 día