mirror of
https://github.com/postgres/postgres.git
synced 2025-11-22 12:22:45 +03:00
Set the stack_base_ptr in main(), not in random other places.
Previously we did this in PostmasterMain() and InitPostmasterChild(), which meant that stack depth checking was disabled in non-postmaster server processes, for instance in single-user mode. That seems like a fairly bad idea, since there's no a-priori restriction on the complexity of queries we will run in single-user mode. Moreover, this led to not having quite the same stack depth limit in all processes, which likely has no real-world effect but it offends my inner neatnik. Setting the depth in main() guarantees that check_stack_depth() is armed and has a consistent interpretation of stack depth in all forms of server processes. While at it, move the code associated with checking the stack depth out of tcop/postgres.c (which was never a great home for it) into a new file src/backend/utils/misc/stack_depth.c. Discussion: https://postgr.es/m/2081982.1734393311@sss.pgh.pa.us
This commit is contained in:
@@ -106,13 +106,6 @@ InitPostmasterChild(void)
|
||||
pgwin32_signal_initialize();
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Set reference point for stack-depth checking. This might seem
|
||||
* redundant in !EXEC_BACKEND builds, but it's better to keep the depth
|
||||
* logic the same with and without that build option.
|
||||
*/
|
||||
(void) set_stack_base();
|
||||
|
||||
InitProcessGlobals();
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user