turtle170 commited on
Commit
216aa0a
·
verified ·
1 Parent(s): bbe94a0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -5
app.py CHANGED
@@ -252,9 +252,13 @@ class BackendProcessor:
252
  threading.Thread(target=_background, daemon=True).start()
253
 
254
  # Initialize logger early for startup functions
255
- logging.basicConfig(level=logging.INFO, format='%(asctime)s - ZEROENGINE - %(message)s')
256
  logger = logging.getLogger(__name__)
257
 
 
 
 
 
258
  # --- KERNEL INITIALIZATION ---
259
  try:
260
  from llama_cpp import Llama
@@ -1875,9 +1879,11 @@ if __name__ == "__main__":
1875
  logger.info("[CLEANUP] Starting graceful shutdown...")
1876
 
1877
  # Stop passive GC first
 
1878
  stop_passive_gc()
1879
 
1880
  # Cleanup kernel resources
 
1881
  if kernel and kernel.llm:
1882
  try:
1883
  del kernel.llm
@@ -1887,20 +1893,27 @@ if __name__ == "__main__":
1887
  logger.error(f"[CLEANUP] Model cleanup error: {e}")
1888
 
1889
  # Final garbage collection with asyncio cleanup
 
1890
  try:
1891
  import asyncio
1892
  # Close any remaining event loops
1893
  try:
 
 
 
1894
  loop = asyncio.get_event_loop()
1895
  if loop and not loop.is_closed():
 
1896
  loop.close()
 
1897
  except RuntimeError:
1898
- # No event loop or already closed
1899
- pass
1900
 
1901
  # Final GC
1902
- for _ in range(3):
1903
- gc.collect(2)
 
 
1904
  logger.info("[CLEANUP] Final GC complete")
1905
  except Exception as e:
1906
  logger.error(f"[CLEANUP] Final GC error: {e}")
 
252
  threading.Thread(target=_background, daemon=True).start()
253
 
254
  # Initialize logger early for startup functions
255
+ logging.basicConfig(level=logging.INFO, format='%(asctime)s - ZEROENGINE - %(message)s', force=True)
256
  logger = logging.getLogger(__name__)
257
 
258
+ # Suppress asyncio warnings during shutdown
259
+ import warnings
260
+ warnings.filterwarnings("ignore", category=RuntimeWarning, message=".*asyncio.*")
261
+
262
  # --- KERNEL INITIALIZATION ---
263
  try:
264
  from llama_cpp import Llama
 
1879
  logger.info("[CLEANUP] Starting graceful shutdown...")
1880
 
1881
  # Stop passive GC first
1882
+ logger.info("[CLEANUP] Stopping passive GC...")
1883
  stop_passive_gc()
1884
 
1885
  # Cleanup kernel resources
1886
+ logger.info("[CLEANUP] Cleaning up kernel resources...")
1887
  if kernel and kernel.llm:
1888
  try:
1889
  del kernel.llm
 
1893
  logger.error(f"[CLEANUP] Model cleanup error: {e}")
1894
 
1895
  # Final garbage collection with asyncio cleanup
1896
+ logger.info("[CLEANUP] Performing final cleanup...")
1897
  try:
1898
  import asyncio
1899
  # Close any remaining event loops
1900
  try:
1901
+ loops = asyncio.all_tasks()
1902
+ logger.info(f"[CLEANUP] Found {len(loops)} asyncio tasks")
1903
+
1904
  loop = asyncio.get_event_loop()
1905
  if loop and not loop.is_closed():
1906
+ logger.info("[CLEANUP] Closing event loop...")
1907
  loop.close()
1908
+ logger.info("[CLEANUP] Event loop closed")
1909
  except RuntimeError:
1910
+ logger.info("[CLEANUP] No event loop to close")
 
1911
 
1912
  # Final GC
1913
+ logger.info("[CLEANUP] Running final garbage collection...")
1914
+ for i in range(3):
1915
+ collected = gc.collect(2)
1916
+ logger.info(f"[CLEANUP] GC pass {i+1}: {collected} objects collected")
1917
  logger.info("[CLEANUP] Final GC complete")
1918
  except Exception as e:
1919
  logger.error(f"[CLEANUP] Final GC error: {e}")