From 40459a09e29279cee0ce44e811af28e6f9dbabef Mon Sep 17 00:00:00 2001
From: Andreas <andreasv@fsmpi.rwth-aachen.de>
Date: Wed, 18 Jul 2018 22:18:28 +0200
Subject: [PATCH] throw exception if the video hash missmatches and log
 exceptions to mail

---
 jobmanagement.py | 3 ++-
 sorter.py        | 3 +--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/jobmanagement.py b/jobmanagement.py
index facc149..00c3587 100644
--- a/jobmanagement.py
+++ b/jobmanagement.py
@@ -1,4 +1,4 @@
-from server import modify, query, date_json_handler, sched_func
+from server import modify, query, date_json_handler, sched_func, notify_admins
 from datetime import datetime, timedelta
 import traceback
 import json
@@ -22,6 +22,7 @@ def job_handler_handle(id, state):
 		try:
 			func(id, job['type'], json.loads(job['data']), state, json.loads(job['status']))
 		except Exception:
+			notify_admins('scheduler_exception', name=func.__name__, traceback=traceback.format_exc())
 			traceback.print_exc()
 
 @sched_func(10)
diff --git a/sorter.py b/sorter.py
index 2e543ec..0a551cc 100644
--- a/sorter.py
+++ b/sorter.py
@@ -35,8 +35,7 @@ def update_video_metadata(jobid, jobtype, data, state, status):
 	if jobtype not in ['remux', 'transcode']:
 		video = query('SELECT * FROM videos WHERE id = ?', data['video_id'])[0]
 		if video['hash'] and video['hash'] != status['hash']:
-			print('Hash mismatch for video', data['video_id'])
-			return
+			raise Exception('Hash mismatch for video {}'.format(data['video_id']))
 	modify('UPDATE videos_data SET hash = ?, file_size = ?, duration = ? WHERE id = ?',
 			status['hash'], status['filesize'], status['duration'], data['video_id'])
 
-- 
GitLab