Skip to content

Commit

Permalink
fix memory leak when generation fails
Browse files Browse the repository at this point in the history
  • Loading branch information
AUTOMATIC1111 committed Aug 23, 2023
1 parent 56236df commit 12171ca
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 3 deletions.
4 changes: 3 additions & 1 deletion modules/call_queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import threading
import time

from modules import shared, progress, errors
from modules import shared, progress, errors, devices

queue_lock = threading.Lock()

Expand Down Expand Up @@ -75,6 +75,8 @@ def f(*args, extra_outputs_array=extra_outputs, **kwargs):
error_message = f'{type(e).__name__}: {e}'
res = extra_outputs_array + [f"<div class='error'>{html.escape(error_message)}</div>"]

devices.torch_gc()

shared.state.skipped = False
shared.state.interrupted = False
shared.state.job_count = 0
Expand Down
3 changes: 2 additions & 1 deletion modules/errors.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ def record_exception():
if exception_records and exception_records[-1] == e:
return

exception_records.append((e, tb))
from modules import sysinfo
exception_records.append(sysinfo.format_exception(e, tb))

if len(exception_records) > 5:
exception_records.pop(0)
Expand Down
6 changes: 5 additions & 1 deletion modules/sysinfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,15 @@ def format_traceback(tb):
return [[f"{x.filename}, line {x.lineno}, {x.name}", x.line] for x in traceback.extract_tb(tb)]


def format_exception(e, tb):
return {"exception": str(e), "traceback": format_traceback(tb)}


def get_exceptions():
try:
from modules import errors

return [{"exception": str(e), "traceback": format_traceback(tb)} for e, tb in reversed(errors.exception_records)]
return list(reversed(errors.exception_records))
except Exception as e:
return str(e)

Expand Down

0 comments on commit 12171ca

Please sign in to comment.