Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

miscadmin.h

  • Heikki Linnakangas's avatar
    ef3883d1
    Do stack-depth checking in all postmaster children. · ef3883d1
    Heikki Linnakangas authored
    We used to only initialize the stack base pointer when starting up a regular
    backend, not in other processes. In particular, autovacuum workers can run
    arbitrary user code, and without stack-depth checking, infinite recursion
    in e.g an index expression will bring down the whole cluster.
    
    The comment about PL/Java using set_stack_base() is not yet true. As the
    code stands, PL/java still modifies the stack_base_ptr variable directly.
    However, it's been discussed in the PL/Java mailing list that it should be
    changed to use the function, because PL/Java is currently oblivious to the
    register stack used on Itanium. There's another issues with PL/Java, namely
    that the stack base pointer it sets is not really the base of the stack, it
    could be something close to the bottom of the stack. That's a separate issue
    that might need some further changes to this code, but that's a different
    story.
    
    Backpatch to all supported releases.
    ef3883d1
    History
    Do stack-depth checking in all postmaster children.
    Heikki Linnakangas authored
    We used to only initialize the stack base pointer when starting up a regular
    backend, not in other processes. In particular, autovacuum workers can run
    arbitrary user code, and without stack-depth checking, infinite recursion
    in e.g an index expression will bring down the whole cluster.
    
    The comment about PL/Java using set_stack_base() is not yet true. As the
    code stands, PL/java still modifies the stack_base_ptr variable directly.
    However, it's been discussed in the PL/Java mailing list that it should be
    changed to use the function, because PL/Java is currently oblivious to the
    register stack used on Itanium. There's another issues with PL/Java, namely
    that the stack base pointer it sets is not really the base of the stack, it
    could be something close to the bottom of the stack. That's a separate issue
    that might need some further changes to this code, but that's a different
    story.
    
    Backpatch to all supported releases.