During original feature development, the OAuth validator shutdown
callback was invoked via before_shmem_exit(). That was changed to use a
reset callback before commit, but I forgot to update the documentation
for validator developers.
Correct this and backport to 18, where OAuth was introduced. The
callback is invoked whenever the server is "finished" with token
validation. (We make no stronger guarantees here, in the hopes that this
API might successfully navigate future multifactor authentication
support and/or changes to the server threading model.)
Reported-by: Zsolt Parragi <zsolt.parragi@percona.com>
Reviewed-by: Zsolt Parragi <zsolt.parragi@percona.com>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Discussion: https://postgr.es/m/CAN4CZFOuMb_gnLvCwRdMybg_k8WRNJTjcij%2BPoQkuQHDUzxGWg%40mail.gmail.com
Backpatch-through: 18
<sect2 id="oauth-validator-callback-shutdown">
<title>Shutdown Callback</title>
<para>
- The <function>shutdown_cb</function> callback is executed when the backend
- process associated with the connection exits. If the validator module has
- any allocated state, this callback should free it to avoid resource leaks.
+ The <function>shutdown_cb</function> callback is executed when the server
+ backend has finished validating tokens for the connection. If the validator
+ module has any allocated state, this callback should free it to avoid
+ resource leaks.
<programlisting>
typedef void (*ValidatorShutdownCB) (ValidatorModuleState *state);
</programlisting>