One installation of Drupal has been fine for a long time, but has started developing a WSOD on most (maybe all) cron invocations.
Looking through Drupal's log messages, I see a few normal cron messages, and then this:
Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in theme_get_registry() (line 277 of theme.inc). Warning: array_keys() expects parameter 1 to be array, null given in ThemeRegistry->initializeRegistry() (line 413 of theme.inc). Warning: array_fill_keys() expects parameter 1 to be array, null given in ThemeRegistry->initializeRegistry() (line 413 of theme.inc) Warning: PHP Shutdown: Argument #1 is not an array in ThemeRegistry->set() (line 457 of theme.inc).
I then see the following repeated many hundreds of times, once for each theme hook, it seems:
Theme <hook name> not found. Warning: array_key_exists() expects parameter 2 to be array, null given in ThemeRegistry->offsetExists() (line 421 of theme.inc).
So that is repeated a few hundred times, where <hook name> is every theme hook in the entire Drupal installation.
It has been running a custom theme, but that theme has behaved fine for ages. In fact, I have not made many recent site changes. I've only updated Drupal to 7.52.
Any ideas how to proceed?