If a python module has a problem where it will raise OnShutdown the module will become unloadable, and subsequently ZNC cannot be shutdown as that will get in a loop trying to unlod the module.
Example module:
importzncclassauth(znc.Module):module_types=[znc.CModInfo.GlobalModule]defOnShutdown(self):# znc.Get() should be `znc.CZNC.Get()` and thus causes exceptionznc.Get().GetUserMap():
Shutdown:
[2020-08-03 19:33:21.181198] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181402] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181464] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181515] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181676] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181739] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181792] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181938] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181999] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
If a python module has a problem where it will raise `OnShutdown` the module will become unloadable, and subsequently ZNC cannot be shutdown as that will get in a loop trying to unlod the module.
Example module:
```python
import znc
class auth(znc.Module):
module_types = [znc.CModInfo.GlobalModule]
def OnShutdown(self):
# znc.Get() should be `znc.CZNC.Get()` and thus causes exception
znc.Get().GetUserMap():
```
Shutdown:
```
[2020-08-03 19:33:21.181198] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181402] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181464] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181515] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181676] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181739] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181792] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181938] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
[2020-08-03 19:33:21.181999] modpython: Traceback (most recent call last):\x0A File "/usr/local/Cellar/znc/1.8.1/lib/znc/modpython/znc.py", line 819, in unload_module\x0A module.OnShutdown()\x0A File "/Users/kyle/.znc/modules/auth.py", line 16, in OnShutdown\x0A for user in znc.CZNC.Get().GetUserMap():\x0AAttributeError: module 'znc' has no attribute 'Get'\x0A
```
<!-- github-sync-id:672296839 -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
If a python module has a problem where it will raise
OnShutdownthe module will become unloadable, and subsequently ZNC cannot be shutdown as that will get in a loop trying to unlod the module.Example module:
Shutdown: