pytorch
1bea49c7 - [Deploy] Avoid use-after-free during autograd shutdown (#64620)

Commit
4 years ago
[Deploy] Avoid use-after-free during autograd shutdown (#64620) Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/64620 `autograd` extension module's shutdown logic destructs `PyThreadState` by `pybind11::gil_scoped_acquire` using the RAII pattern. The problem is that torch.deploy also destructs `PyThreadState` as part of its shutdown process (https://www.internalfb.com/phabricator/paste/view/P456363738), causing double destruction, use-after-free. This change adds `defined(USE_DEPLOY)` as a special case to avoid destruction of `PyThreadState` to the existing special treatment for `IS_PYTHON_3_9_PLUS`. Test Plan: Added `TorchpyTest.Autograd` unittest to ensure that torch.deploy can create multiple instances that use autograd without causing a crash. Reviewed By: albanD Differential Revision: D30779080 fbshipit-source-id: 4de3283cc2d394acc9b8141c17cacbfab5eea052
Author
Parents
Loading