Reporting bugs#
+Writing an effective bug report#
+When reporting a bug, start with the question
+What does a bug report need to tell the developer
.
Generally you want the following parts covered:
+-
+
What is the problem
+How can the developer reproduce the problem (to see it for themselves), to +bisect when it was introduced or to find if it got fixed already.
+At what point does the problem occur
+What environment did this occur in
+
Make sure the above items are covered and the bug is easy to review and parse:
+-
+
Title should clearly describe the problem. Bugs are often sorted from +the issue list which only contains the title
+Logs should generally be attachments (drag & drop or click on bottom bar +when entering issue text) and not inline with the issue.
+Reproduction steps and environment should be clearly highlighted. If +running commands reproduce the issue (very common), the commands should be +in a code block/script format.
+
Describing the problem#
+Make sure the issue is obvious or provide a link explaining why the expected +result is not met.
+Examples:
+-
+
(Core dump) seen
is obvious since there should be no core dumps
+Failure trying to read attribute X in cluster Y which is marked MANDATORY in the spec
+references the spec and describes why attribute read should succeed.
+Failure trying to write attribute X in cluster Y, which is enabled since cluster FeatureMap enabled X and spec describes as writable.
+references the spec and explicitly states that an optional attribute is +enabled based on device status
+Running certification test TC-A-B-C (link included) fails at step 3: test case asks for command to succeed, I get ACCESS_DENIED instead
+describes a pre-defined test case that is expected to pass but fails. Note +that full link to the test description is needed (and should be covered by +‘how to reproduce’ part)
+
Unless manually curated (e.g. few lines showing the problem), logs should be +always attachments and not inlined in the bug as the make the bug report too +long.
+Reproduction steps and when does the issue occur#
+Include all steps needed to reproduce the problem. Link any supporting +documentation.
+If stating something of the form TC-A-B-C step 4 fails
then there should be a
+link to TC-A-B-C and ideally a list of the commands of each step since test
+cases may change over time.
The bug report should contain all the information for a developer to reproduce +the issue without needing to have access to CHIP Test case repository (not +everyone does)
+Environment for reproduction#
+Assume that the developer will want to reproduce the issue and will try to +mirror your environment to a reasonable degree. For this, at a minimum the +platforms on which everything is running is needed.
+Try to provide as much information as seems relevant. At a minimum this could
+look like
+Failed to commission nrf board using chip-tool running on linux. Used build on SHA abcde...
.
+This provides basic information (use nrf board, use chip-tool on linux, default
+build) to get started. Beyond that, you can refine if more items seem relevant:
-
+
Tested on TE9
orTested on interop branch xyz
gives a build reference +point. Useful when branches/tags are used instead of master branch as +development happens on master branch.
+Thread devices fail, tested with qpg and efr32
shows that this seems to be +a general thread issue and developer can investigate on multiple of them
+
-
+
Tested with avahi-build and it passes/fails
helps the developer with +information of non-default builds that pass/fail to narrow down the problem
+Passes with darwin-framework-tool and repl but fails with chip-tool
helps +the developer in narrowing down the problem
+
Additional information#
+Providing additional information that can be helpful is encouraged. Each bug +report is different here. Some examples:
+-
+
This worked last week (around Jan 5) but started failing in recent master builds
+Specification changed this attribute from optional to mandatory so this may be the cause of the issue
+This issue may be related to #1234 as the same error is seen, however the reproduction steps seemed distinct enough that I opened a new issue
+While running this, I observed 100% CPU before the operation finally timed out
+While running this test, I observed device under test rebooting, logs attached.
+This only happens intermittently - I see it about 30% of the time
+