fix: procline crash (#31845)

* fix: Skip rollback if no DB

* fix: drop proctitle from dependency

- While it improves our own processes, it makes gunicorn process titles worse
- It also crashes on mac because of some unknown reason related to fork-safety.

Best to not use this.
This commit is contained in:
Ankush Menat 2025-03-21 12:30:19 +05:30 committed by GitHub
parent 92dd79dfe2
commit 5a5ad3032c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 2 additions and 13 deletions

View file

@ -599,7 +599,8 @@ frappe.db.connect()
def _console_cleanup():
# Execute after_rollback on console close
frappe.db.rollback()
if frappe.db:
frappe.db.rollback()
frappe.destroy()

View file

@ -12,7 +12,6 @@ from typing import Any, NoReturn
from uuid import uuid4
import redis
import setproctitle
from redis.exceptions import BusyLoadingError, ConnectionError
from rq import Callback, Queue, Worker
from rq.defaults import DEFAULT_WORKER_TTL
@ -237,9 +236,6 @@ def execute_job(site, method, event, job_name, kwargs, user=None, is_async=True,
else:
method_name = f"{method.__module__}.{method.__qualname__}"
actual_func_name = kwargs.get("job_type") if "run_scheduled_job" in method_name else method_name
setproctitle.setproctitle(f"rq: Started running {actual_func_name} at {time.time()}")
frappe.local.job = frappe._dict(
site=site,
method=method_name,

View file

@ -14,7 +14,6 @@ import random
import time
from typing import NoReturn
import setproctitle
from croniter import CroniterBadCronError
from filelock import FileLock, Timeout
@ -36,10 +35,6 @@ def cprint(*args, **kwargs):
pass
def _proctitle(message):
setproctitle.setthreadtitle(f"frappe-scheduler: {message}")
def start_scheduler() -> NoReturn:
"""Run enqueue_events_for_all_sites based on scheduler tick.
Specify scheduler_interval in seconds in common_site_config.json"""
@ -57,7 +52,6 @@ def start_scheduler() -> NoReturn:
return
while True:
_proctitle("idle")
time.sleep(sleep_duration(tick))
enqueue_events_for_all_sites()
@ -118,7 +112,6 @@ def enqueue_events_for_site(site: str) -> None:
frappe.logger("scheduler").error(f"Exception in Enqueue Events for Site {site}", exc_info=True)
try:
_proctitle(f"scheduling events for {site}")
frappe.init(site)
frappe.connect()
if is_scheduler_inactive():

View file

@ -61,7 +61,6 @@ dependencies = [
"rauth~=0.7.3",
"redis~=5.2.0",
"hiredis~=3.0.0",
"setproctitle~=1.3.3",
"requests-oauthlib~=1.3.1",
"requests~=2.32.0",
# We depend on internal attributes of RQ.