diff options
author | Frederick Muriuki Muriithi | 2023-06-05 06:41:43 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2023-06-05 06:41:43 +0300 |
commit | bfb6fdee924cc60dfdba8ede609a206ca6982454 (patch) | |
tree | 5e62d8e5b9aa4b81f24f58bc271d8bf9ce416999 /gn3/app.py | |
parent | 1a22f2b5dedd3a685bb2869f1b51f590eca36c5a (diff) | |
download | genenetwork3-bfb6fdee924cc60dfdba8ede609a206ca6982454.tar.gz |
Logging: Don't allow getting user info to stop application starting
In certain scenarios (probably due to host contamination) the effective UID of
the running application is not the expected "genenetwork" user, rather, it is
a user on the host system, which leads to the error:
KeyError: 'getpwuid(): uid not found: 1000'
This commit prevents the application from failing in such a case, but still
logs out such weirdness.
Diffstat (limited to 'gn3/app.py')
-rw-r--r-- | gn3/app.py | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -3,6 +3,7 @@ import os import sys import logging import getpass +import traceback from typing import Dict from typing import Union @@ -48,9 +49,13 @@ def create_app(config: Union[Dict, str, None] = None) -> Flask: setup_app_handlers(app) # DO NOT log anything before this point - logging.info("Guix Profile: '%s'." % (os.environ.get("GUIX_PROFILE"),)) - logging.info("Python Executable: '%s'." % sys.executable) - logging.info("Effective User: '%s'." % getpass.getuser()) + logging.info("Guix Profile: '%s'.", os.environ.get("GUIX_PROFILE")) + logging.info("Python Executable: '%s'.", sys.executable) + try: + logging.info("Effective User: '%s'.", getpass.getuser()) + except KeyError as kerr: + logging.debug("User Error: %s", kerr.args[0]) + logging.error(traceback.format_exc()) CORS( app, |