Disclaimer: I have found a way to fix this problem short-term, but I'm curious if anyone can explain to me why it's happening, or if someone has found a better fix than what I'm doing. If it exists already, Google has not revealed it to me.
Problem: (on a LAMP Server) When I use 'drush up' to update a module, or even core, the selinux context on the files is changed. This is new behavior as far as I can tell. I have used 'drush up' to update core and modules in the past with no problems. The changed selinux context results in a WSOD. To fix this, I run restorecon -R on the drupal root, which results in a series of
unconfined_u:object_r:user_tmp_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
and then things work again, until the next 'drush up'. If I have multiple modules to update I either update and restorecon repetitively, or take my chances and drush up -y, restorecon, and then hope for the best (not ideal obviously).
Drush 7 and Drush 8 both behave this way. Oddly enough, when I 'drush dl' a module, it's brought in to the modules folder with the appropriate selinux context. Based on an ll -Z of files in the temp folder, I'm guessing (emphasis on guessing) that the files are getting moved from there rather than copied during an update, but I do not know enough about the inner workings of drush to be able to trouble shoot. Any insight would be welcome. Thank you.
--debug
option to the command will give you a verbose output of what it's doing which should help in finding what might be causing it.