Branch: Tag:

2016-10-12

2016-10-12 09:34:59 by Stephen R. van den Berg <srb@cuci.nl>

pgsql: Guard local backend against exceptions.

When pgsql objects where destructed forcibly, the
pgsql-local backend sometimes died due to attempted
accesses in destructed objects.

79:    looponce=0;    if(lock=backendmux->trylock()) {    PD("Starting local backend\n"); -  while(clientsregistered) // Autoterminate when not needed -  local_backend(4096.0); +  while (clientsregistered) { // Autoterminate when not needed +  mixed err; +  if (err = catch(local_backend(4096.0))) +  werror(describe_backtrace(err)); +  }    PD("Terminating local backend\n");    lock=0;    looponce=clientsregistered;