Skip to content

Conversation

@0xFEEDC0DE64
Copy link
Contributor

This change adds a stacktrace of tasks that fail the task watchdog timeout.

Too often I had timeouts in the main task but then the stacktrace only shows methods of task watchdog but not of main. This is completely useless.

What exactly in main halted execution so that the watchdog timed out?

This PR adds exactly this

image

@github-actions
Copy link

Warnings
⚠️

Some issues found for the commit messages in this PR:

  • the commit message "Show stacktrace of task which failed timeout in task watchdog":
    • summary looks empty
    • type/action looks empty

Please fix these commit messages - here are some basic tips:

  • follow Conventional Commits style
  • correct format of commit message should be: <type/action>(<scope/component>): <summary>, for example fix(esp32): Fixed startup timeout issue
  • allowed types are: change,ci,docs,feat,fix,refactor,remove,revert,test
  • sufficiently descriptive message summary should be between 20 to 72 characters and start with upper case letter
  • avoid Jira references in commit messages (unavailable/irrelevant for our customers)

TIP: Install pre-commit hooks and run this check when committing (uses the Conventional Precommit Linter).

👋 Hello 0xFEEDC0DE64, we appreciate your contribution to this project!


📘 Please review the project's Contributions Guide for key guidelines on code, documentation, testing, and more.

🖊️ Please also make sure you have read and signed the Contributor License Agreement for this project.

Click to see more instructions ...


This automated output is generated by the PR linter DangerJS, which checks if your Pull Request meets the project's requirements and helps you fix potential issues.

DangerJS is triggered with each push event to a Pull Request and modify the contents of this comment.

Please consider the following:
- Danger mainly focuses on the PR structure and formatting and can't understand the meaning behind your code or changes.
- Danger is not a substitute for human code reviews; it's still important to request a code review from your colleagues.
- Resolve all warnings (⚠️ ) before requesting a review from human reviewers - they will appreciate it.
- To manually retry these Danger checks, please navigate to the Actions tab and re-run last Danger workflow.

Review and merge process you can expect ...


We do welcome contributions in the form of bug reports, feature requests and pull requests via this public GitHub repository.

This GitHub project is public mirror of our internal git repository

1. An internal issue has been created for the PR, we assign it to the relevant engineer.
2. They review the PR and either approve it or ask you for changes or clarifications.
3. Once the GitHub PR is approved, we synchronize it into our internal git repository.
4. In the internal git repository we do the final review, collect approvals from core owners and make sure all the automated tests are passing.
- At this point we may do some adjustments to the proposed change, or extend it by adding tests or documentation.
5. If the change is approved and passes the tests it is merged into the default branch.
5. On next sync from the internal git repository merged change will appear in this public GitHub repository.

Generated by 🚫 dangerJS against 075fd66

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

}

// Resume the scheduler to allow task switching again
vTaskResume(pxTask);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Task Management and Core ID Issues

Calling vTaskSuspend() and vTaskResume() from an ISR context is unsafe and can cause system crashes. Separately, core_id variable shadowing combined with ctrl.cur_tasks being initialized only for the current core leads to incorrect task detection and access to uninitialized data for tasks on other cores, resulting in invalid backtraces.

Fix in Cursor Fix in Web

msg_handler(opaque, cpu);
}

esp_backtrace_print_task(entry->task_handle, 100, true);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Backtrace in WDT ISR Causes System Instability

Calling esp_backtrace_print_task from the task_wdt_isr is problematic. It uses non-ISR-safe FreeRTOS calls (vTaskSuspend, vTaskResume) and is passed entry->task_handle, which can be NULL for user entries. This can lead to system crashes or undefined behavior.

Fix in Cursor Fix in Web

@0xFEEDC0DE64
Copy link
Contributor Author

0xFEEDC0DE64 commented Sep 22, 2025

Is this some new AI bullshit?
Ok im done, I will never pull-request any of my improvements to esp-idf again if you start wasting my time so much.
Having CI to check on commit messages but not even on the code itself is already quite stupid on its own.

If any of the comments created by AI are incorrect this will be my last improvement shared for sure.

@github-actions github-actions bot changed the title Show stacktrace of task which failed timeout in task watchdog Show stacktrace of task which failed timeout in task watchdog (IDFGH-16499) Sep 22, 2025
@espressif-bot espressif-bot added the Status: Opened Issue is new label Sep 22, 2025
@ESP-Marius
Copy link
Collaborator

@0xFEEDC0DE64 sorry that the BOT annoyed you. It is a trial to see if it can indeed provide anything useful or not. If we find that it is mostly just spamming useless comments we will deactivate it.

Just trying to understand your situation a bit better: am I correct in that you are using esp_task_wdt_add to watch your main task? Because in those cases the backtrace will indeed not print much useful stuff.

@0xFEEDC0DE64
Copy link
Contributor Author

yes correct. my main task kept hitting the watchdog and I need its stacktrace to eliminate blocking operations.

and for the bot: I think there is general consent that AI is only a big waste of time and many other places forbid AI generated content completely. I think you should stop this bot from demotivating other developers asap

@espressif-bot espressif-bot added Status: Selected for Development Issue is selected for development and removed Status: Opened Issue is new labels Oct 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Status: Selected for Development Issue is selected for development

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants