diff --git a/web/pgadmin/misc/bgprocess/processes.py b/web/pgadmin/misc/bgprocess/processes.py index 0b94775a4..209c2a153 100644 --- a/web/pgadmin/misc/bgprocess/processes.py +++ b/web/pgadmin/misc/bgprocess/processes.py @@ -365,7 +365,7 @@ class BatchProcess(object): if enc is None or enc == 'ascii': enc = 'utf-8' - def read_log(logfile, log, pos, ctime): + def read_log(logfile, log, pos, ctime, ecode=None): completed = True idx = 0 c = re.compile(r"(\d+),(.*$)") @@ -376,6 +376,9 @@ class BatchProcess(object): with open(logfile, 'rb') as f: eofs = os.fstat(f.fileno()).st_size f.seek(pos, 0) + if pos == eofs and ecode is None: + completed = False + while pos < eofs: idx += 1 line = f.readline() @@ -394,15 +397,12 @@ class BatchProcess(object): completed = False break if pos == eofs: - completed = True + if ecode is None: + completed = False break return pos, completed - if process_output: - out, out_completed = read_log(self.stdout, stdout, out, ctime) - err, err_completed = read_log(self.stderr, stderr, err, ctime) - j = Process.query.filter_by( pid=self.id, user_id=current_user.id ).first() @@ -423,11 +423,11 @@ class BatchProcess(object): execution_time = (etime - stime).total_seconds() - if process_output and self.ecode is not None and ( - len(stdout) + len(stderr) < 1024 - ): - out, out_completed = read_log(self.stdout, stdout, out, ctime) - err, err_completed = read_log(self.stderr, stderr, err, ctime) + if process_output: + out, out_completed = read_log(self.stdout, stdout, out, ctime, + self.ecode) + err, err_completed = read_log(self.stderr, stderr, err, ctime, + self.ecode) else: out_completed = err_completed = False diff --git a/web/pgadmin/misc/bgprocess/static/js/bgprocess.js b/web/pgadmin/misc/bgprocess/static/js/bgprocess.js index a4506b518..be4ac1529 100644 --- a/web/pgadmin/misc/bgprocess/static/js/bgprocess.js +++ b/web/pgadmin/misc/bgprocess/static/js/bgprocess.js @@ -159,8 +159,12 @@ define('misc.bgprocess', [ while (ie < err.length) { res.push('