Browse Source

[enh] stop searx when an engine raise an SyntaxError exception (#2177)

and some other exceptions:
* KeyboardInterrupt
* SystemExit
* RuntimeError
* SystemError
* ImportError: an engine with an unmet dependency will stop everything.
Alexandre Flament 4 years ago
parent
commit
3397382754
1 changed files with 3 additions and 0 deletions
  1. 3 0
      searx/engines/__init__.py

+ 3 - 0
searx/engines/__init__.py

@@ -74,6 +74,9 @@ def load_engine(engine_data):
 
     try:
         engine = load_module(engine_module + '.py', engine_dir)
+    except (SyntaxError, KeyboardInterrupt, SystemExit, SystemError, ImportError, RuntimeError) as e:
+        logger.exception('Fatal exception in engine "{}"'.format(engine_module))
+        sys.exit(1)
     except:
         logger.exception('Cannot load engine "{}"'.format(engine_module))
         return None