Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: debug stuck process by sending SIGUSR1 (backport #25502) #25527

Merged
merged 2 commits into from
Mar 19, 2024

Conversation

mergify[bot]
Copy link
Contributor

@mergify mergify bot commented Mar 18, 2024

Usage:

kill -SIGUSR1 <PID>

PID - PID of gunicorn worker, RQ work horse or scheduler.

Output in stderr (note that faulthandler prints stack traces in reverse order)

Current thread 0x00007c81e2a79b80 (most recent call first):
  File "/home/ankush/benches/develop/apps/frappe/frappe/core/doctype/user/user.py", line 139 in onload
  File "/home/ankush/benches/develop/apps/frappe/frappe/model/document.py", line 961 in fn
  File "/home/ankush/benches/develop/apps/frappe/frappe/model/document.py", line 1306 in runner
  File "/home/ankush/benches/develop/apps/frappe/frappe/model/document.py", line 1324 in composer
  File "/home/ankush/benches/develop/apps/frappe/frappe/model/document.py", line 964 in run_method
  File "/home/ankush/benches/develop/apps/frappe/frappe/desk/form/load.py", line 351 in run_onload
  File "/home/ankush/benches/develop/apps/frappe/frappe/desk/form/load.py", line 45 in getdoc
  File "/home/ankush/benches/develop/apps/frappe/frappe/utils/typing_validations.py", line 31 in wrapper
  File "/home/ankush/benches/develop/apps/frappe/frappe/__init__.py", line 1798 in call
  File "/home/ankush/benches/develop/apps/frappe/frappe/handler.py", line 85 in execute_cmd
  File "/home/ankush/benches/develop/apps/frappe/frappe/handler.py", line 49 in handle
  File "/home/ankush/benches/develop/apps/frappe/frappe/api/v1.py", line 36 in handle_rpc_call
  File "/home/ankush/benches/develop/apps/frappe/frappe/api/__init__.py", line 49 in handle
  File "/home/ankush/benches/develop/apps/frappe/frappe/app.py", line 110 in application
  File "/home/ankush/benches/develop/env/lib/python3.11/site-packages/werkzeug/wrappers/request.py", line 189 in application
  File "/home/ankush/benches/develop/apps/frappe/frappe/app.py", line 74 in application
  File "/home/ankush/benches/develop/env/lib/python3.11/site-packages/werkzeug/middleware/shared_data.py", line 249 in __call__
  File "/home/ankush/benches/develop/env/lib/python3.11/site-packages/werkzeug/middleware/shared_data.py", line 249 in __call__
  File "/home/ankush/benches/develop/apps/frappe/frappe/middlewares.py", line 16 in __call__
  File "/home/ankush/benches/develop/env/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 178 in handle_request
  File "/home/ankush/benches/develop/env/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 135 in handle
  • You can't get stack of master processes with this. You don't need it most of the time anyway.
  • Use pgrep + xargs to send signal to all of them (if you are unsure about PID or just lazy )
  • This overrides SIGUSR1 behaviour from gunicorn but we don't need it, eh. https://docs.gunicorn.org/en/stable/signals.html

docs: https://frappeframework.com/docs/user/en/profiling#debugging-stuck-process

closes #25496


This is an automatic backport of pull request #25502 done by Mergify.

It will print stack to stderr.

(cherry picked from commit 6560d45)
@mergify mergify bot requested a review from a team as a code owner March 18, 2024 17:40
@mergify mergify bot assigned ankush Mar 18, 2024
@mergify mergify bot requested review from ankush and removed request for a team March 18, 2024 17:40
@github-actions github-actions bot added the add-test-cases Add test case to validate fix or enhancement label Mar 18, 2024
@ankush ankush merged commit 6c8cc5c into version-15-hotfix Mar 19, 2024
19 checks passed
@ankush ankush deleted the mergify/bp/version-15-hotfix/pr-25502 branch March 19, 2024 14:27
frappe-pr-bot pushed a commit that referenced this pull request Mar 19, 2024
# [15.18.0](v15.17.3...v15.18.0) (2024-03-19)

### Bug Fixes

* add params in make_request arguments ([#25418](#25418)) ([18cf09b](18cf09b))
* allow transitioning to long text (backport [#25419](#25419)) ([#25475](#25475)) ([dbb326e](dbb326e))
* avoid closing filter popover on any date picker interactions ([cd98a21](cd98a21))
* Avoid setting filter on now/today button ([592e6f9](592e6f9))
* better filename for prepared report ([8eb1b24](8eb1b24))
* child table rating fields ([#25433](#25433)) ([#25436](#25436)) ([6f242ca](6f242ca))
* consider all datepicker elements ([#25426](#25426)) ([361fbfe](361fbfe))
* **ControlText:** Preserve indentation when read only ([#25262](#25262)) ([#25469](#25469)) ([c783f22](c783f22))
* debounce filter refresh ([9b75187](9b75187))
* default filter setup on todo list ([#25455](#25455)) ([#25464](#25464)) ([21e1280](21e1280))
* dont add trailing decimal separator ([#25389](#25389)) ([#25391](#25391)) ([760d9b2](760d9b2))
* dont add useless distinct clause ([8891e8e](8891e8e))
* dont render very large reports, offer export instead ([3f0760c](3f0760c))
* dont show tooltip if already limited ([#25361](#25361)) ([eb8b9f4](eb8b9f4))
* escape text types before setting disp area ([#25520](#25520)) ([#25523](#25523)) ([bc83b24](bc83b24))
* escape value in multiselect pill ([#25516](#25516)) ([#25518](#25518)) ([236a3b5](236a3b5))
* exclude irrelevant regional links ([#25510](#25510)) ([#25512](#25512)) ([9fe8b6a](9fe8b6a))
* filters can use more than 140 chars ([2d2b4a9](2d2b4a9))
* handle distinct for fieldname ([#25511](#25511)) ([#25515](#25515)) ([9168b0f](9168b0f))
* handle invalid fetch from split ([fa131ca](fa131ca))
* handle meta.fields being undefined ([#25539](#25539)) ([01cca38](01cca38))
* handle parent rename in child workspace ([ef3d068](ef3d068))
* hide datepicker after picking date ([d91a2b8](d91a2b8))
* **json_handler:** handle `uuid.UUID` ([ebaaa6b](ebaaa6b)), closes [#25242](#25242)
* Log ipython commands (backport [#25364](#25364)) ([#25368](#25368)) ([a2ebb4e](a2ebb4e))
* log mariadb console usage ([9797457](9797457))
* log psql console usage as well (backport [#25417](#25417)) ([#25423](#25423)) ([f0fa5d1](f0fa5d1))
* prevent TypeError if doc not defined ([#25540](#25540)) ([6b23504](6b23504))
* **QuickEntry:** Don't allow Tab Breaks ([#24950](#24950)) ([#25468](#25468)) ([a31943e](a31943e))
* **recorder:** handle frappe.db.sql(run=0) ([#25450](#25450)) ([#25454](#25454)) ([d130777](d130777))
* Respect document language in communication ([#25402](#25402)) ([#25403](#25403)) ([0d09b51](0d09b51))
* show attachments on notifications too ([#25443](#25443)) ([#25445](#25445)) ([371fa09](371fa09))
* skip setting of contact full name if its too long ([#25509](#25509)) ([d5685d7](d5685d7))
* skip virtual doctype in tags ([f18ac26](f18ac26))
* Skip virtual doctype rename for dynamic links ([#25479](#25479)) ([#25481](#25481)) ([3353488](3353488))
* Skip virtual doctypes while renaming ([#25473](#25473)) ([#25478](#25478)) ([aaacc51](aaacc51))
* support child tables in count with limit ([d8a797b](d8a797b))
* traceback colours ([#25356](#25356)) ([b6d2785](b6d2785))
* **UX:** let user see actual count on click ([5c1bca8](5c1bca8))
* validate homepage paths (backport [#25409](#25409)) ([#25412](#25412)) ([0aeaeeb](0aeaeeb))
* we want `DF.Literal[None]`, not `DF.LiteralNone` ([#25394](#25394)) ([f008eeb](f008eeb))

### Features

* connect to redis sentinel for redis cache ([#25398](#25398)) ([#25446](#25446)) ([498b1a4](498b1a4))
* debug stuck process by sending SIGUSR1 (backport [#25502](#25502)) ([#25527](#25527)) ([6c8cc5c](6c8cc5c))
* move bulk print operation to the background (backport [#25358](#25358)) ([#25397](#25397)) ([513487e](513487e))
* Store printed PDF attachments on communication ([#25439](#25439)) ([#25444](#25444)) ([bd15abc](bd15abc))
* support countig till a limit ([615800f](615800f))

### Performance Improvements

* Avoid ordering in count query ([#25451](#25451)) ([#25452](#25452)) ([07aadd3](07aadd3))
* compact prepared report files ([3adbb35](3adbb35))
* don't extract backups whenever possible ([#25350](#25350)) ([9c6fb8a](9c6fb8a)), closes [/github.com//pull/24898#discussion_r1521076386](https://github.com//github.com/frappe/frappe/pull/24898/issues/discussion_r1521076386)
* reduce import overhead on background jobs (backport [#25459](#25459)) ([#25460](#25460)) ([eab5b8d](eab5b8d))
* show estimated count on list view ([7ee9719](7ee9719))
@frappe-pr-bot
Copy link
Collaborator

🎉 This PR is included in version 15.18.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 8, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
add-test-cases Add test case to validate fix or enhancement released
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants