diff options
Diffstat (limited to 'doc/developer-guide/Bug-Triage.md')
-rw-r--r-- | doc/developer-guide/Bug-Triage.md | 400 |
1 files changed, 0 insertions, 400 deletions
diff --git a/doc/developer-guide/Bug-Triage.md b/doc/developer-guide/Bug-Triage.md deleted file mode 100644 index bcd475e81fb..00000000000 --- a/doc/developer-guide/Bug-Triage.md +++ /dev/null @@ -1,400 +0,0 @@ -Bug Triage Guidelines -===================== - -- Triaging of bugs is an important task; when done correctly, it can - reduce the time between reporting a bug and the availability of a - fix enormously. - -- Triager should focus on new bugs, and try to define the problem - easily understandable and as accurate as possible. The goal of the - triagers is to reduce the time that developers need to solve the bug - report. - -- A triager is like an assistant that helps with the information - gathering and possibly the debugging of a new bug report. Because a - triager helps preparing a bug before a developer gets involved, it - can be a very nice role for new community members that are - interested in technical aspects of the software. - -- Triagers will stumble upon many different kind of issues, ranging - from reports about spelling mistakes, or unclear log messages to - memory leaks causing crashes or performance issues in environments - with several hundred storage servers. - -Nobody expects that triagers can prepare all bug reports. Therefore most -developers will be able to assist the triagers, answer questions and -suggest approaches to debug and data to gather. Over time, triagers get -more experienced and will rely less on developers. - -**Bug triage can be summarised as below points:** - -- Is there enough information in the bug description? -- Is it a duplicate bug? -- Is it assigned to correct component of GlusterFS? -- Are the Bugzilla fields correct? -- Is the bug summary is correct? -- Assigning bugs or Adding people to the "CC" list -- Fix the Severity And Priority. -- Todo, If the bug present in multiple GlusterFS versions. -- Add appropriate Keywords to bug. - -The detailed discussion about the above points are below. - -Weekly meeting about Bug Triaging ---------------------------------- - -We try to meet every week in \#gluster-meeting on Freenode. The meeting -date and time for the next meeting is normally updated in the -[agenda](https://public.pad.fsfe.org/p/gluster-bug-triage). - -Getting Started: Find reports to triage ---------------------------------------- - -There are many different techniques and approaches to find reports to -triage. One easy way is to use these pre-defined Bugzilla reports (a -report is completely structured in the URL and can manually be -modified): - -- New **bugs** that do not have the 'Triaged' keyword [Bugzilla - link](https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&f1=keywords&keywords=Triaged%2CFutureFeature&keywords_type=nowords&list_id=3014117&o1=nowords&product=GlusterFS&query_format=advanced&v1=Triaged) -- New **features** that do not have the 'Triaged' keyword (identified - by FutureFeature keyword, probably of interest only to project - leaders) [Bugzilla - link](https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&f1=keywords&f2=keywords&list_id=3014699&o1=nowords&o2=allwords&product=GlusterFS&query_format=advanced&v1=Triaged&v2=FutureFeature) -- New glusterd bugs: [Bugzilla - link](https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&product=GlusterFS&f1=keywords&o1=nowords&v1=Triaged&component=glusterd) -- New Replication(afr) bugs: [Bugzilla - link](https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&component=replicate&f1=keywords&list_id=2816133&o1=nowords&product=GlusterFS&query_format=advanced&v1=Triaged) -- New distribute(DHT) bugs: [Bugzilla - links](https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&component=distribute&f1=keywords&list_id=2816148&o1=nowords&product=GlusterFS&query_format=advanced&v1=Triaged) - -- New bugs against version 3.6: - [<https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&product=GlusterFS&f1=keywords&f2=version&o1=nowords&o2=regexp&v1=Triaged&v2>=\^3.6 - Bugzilla link] -- New bugs against version 3.5: - [<https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&product=GlusterFS&f1=keywords&f2=version&o1=nowords&o2=regexp&v1=Triaged&v2>=\^3.5 - Bugzilla link] -- New bugs against version 3.4: - [<https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&product=GlusterFS&f1=keywords&f2=version&o1=nowords&o2=regexp&v1=Triaged&v2>=\^3.4 - Bugzilla link] - -- [<https://bugzilla.redhat.com/page.cgi?id=browse.html&product=GlusterFS&product_version>=&bug\_status=all&tab=recents - bugzilla tracker] (can include already Triaged bugs) - -- [Untriaged NetBSD - bugs](https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&keywords=Triaged&keywords_type=nowords&op_sys=NetBSD&product=GlusterFS) -- [Untriaged FreeBSD - bugs](https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&keywords=Triaged&keywords_type=nowords&op_sys=FreeBSD&product=GlusterFS) -- [Untriaged Mac OS - bugs](https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&keywords=Triaged&keywords_type=nowords&op_sys=Mac%20OS&product=GlusterFS) - -In addition to manually checking Bugzilla for bugs to triage, it is also -possible to receive emails when new -bugs are filed or existing bugs get updated. - -If at any point you feel like you do not know what to do with a certain -report, please first ask [irc or mailing -lists](http://www.gluster.org/community/index.html) before changing -something. - -Is there enough information? ----------------------------- - -To make a report useful, the same rules apply as for -[bug reporting guidelines](./Bug Reporting Guidelines.md). - -It's hard to generalize what makes a good report. For "average" -reporters is definitely often helpful to have good steps to reproduce, -GlusterFS software version , and information about the test/production -environment, Linux/GNU distribution. - -If the reporter is a developer, steps to reproduce can sometimes be -omitted as context is obvious. *However, this can create a problem for -contributors that need to find their way, hence it is strongly advised -to list the steps to reproduce an issue.* - -Other tips: - -- There should be only one issue per report. Try not to mix related or - similar looking bugs per report. - -- It should be possible to call the described problem fixed at some - point. "Improve the documentation" or "It runs slow" could never be - called fixed, while "Documentation should cover the topic Embedding" - or "The page at <http://en.wikipedia.org/wiki/Example> should load - in less than five seconds" would have a criterion. A good summary of - the bug will also help others in finding existing bugs and prevent - filing of duplicates. - -- If the bug is a graphical problem, you may want to ask for a - screenshot to attach to the bug report. Make sure to ask that the - screenshot should not contain any confidential information. - -Is it a duplicate? ------------------- - -Some reports in Bugzilla have already been reported before so you can -[search for an already existing -report](https://bugzilla.redhat.com/query.cgi?format=advanced). We do -not recommend to spend too much time on it; if a bug is filed twice, -someone else will mark it as a duplicate later. If the bug is a -duplicate, mark it as a duplicate in the resolution box below the -comment field by setting the **CLOSED DUPLICATE** status, and shortly -explain your action in a comment for the reporter. When marking a bug as -a duplicate, it is required to reference the original bug. - -If you think that you have found a duplicate but you are not totally -sure, just add a comment like "This bug looks related to bug XXXXX" (and -replace XXXXX by the bug number) so somebody else can take a look and -help judging. - -You can also take a look at -https://bugzilla.redhat.com/page.cgi?id=browse.html&product=GlusterFS&product_version>=&bug\_status=all&tab=duplicates's -list of existing duplicates - -Is it assigned to correct component of GlusterFS? -------------------------------------------------- - -Make sure the bug is assigned on right component. Below are the list of -GlusterFs components in bugzilla. - -- access control - Access control translator -- BDB - Berkeley DB backend storage -- booster - LD\_PRELOAD'able access client -- build - Compiler, package management and platform specific warnings - and errors -- cli -gluster command line -- core - Core features of the filesystem -- distribute - Distribute translator (previously DHT) -- errorgen - Error Gen Translator -- fuse -mount/fuse translator and patched fuse library -- georeplication - Gluster Geo-Replication -- glusterd - Management daemon -- HDFS - Hadoop application support over GlusterFS -- ib-verbs - Infiniband verbs transport -- io-cache - IO buffer caching translator -- io-threads - IO threads performance translator -- libglusterfsclient- API interface to access glusterfs volumes - programatically -- locks - POSIX and internal locks -- logging - Centralized logging, log messages, log rotation etc -- nfs- NFS component in GlusterFS -- nufa- Non-Uniform Filesystem Scheduler Translator -- object-storage - Object Storage -- porting - Porting GlusterFS to different operating systems and - platforms -- posix - POSIX (API) based backend storage -- protocol -Client and Server protocol translators -- quick-read- Quick Read Translator -- quota - Volume & Directory quota translator -- rdma- RDMA transport -- read-ahead - Read ahead (file) performance translator -- replicate- Replication translator (previously AFR) -- rpc - RPC Layer -- scripts - Build scripts, mount scripts, etc. -- stat-prefetch - Stat prefetch translator -- stripe - Striping (RAID-0) cluster translator -- trace- Trace translator -- transport - Socket (IPv4, IPv6, unix, ib-sdp) and generic transport - code -- unclassified - Unclassified - to be reclassified as other components -- unify - Unify translator and schedulers -- write-behind- Write behind performance translator -- libgfapi - APIs for GlusterFS -- tests- GlusterFS Test Framework -- gluster-hadoop - Hadoop support on GlusterFS -- gluster-hadoop-install - Automated Gluster volume configuration for - Hadoop Environments -- gluster-smb - gluster smb -- puppet-gluster - A puppet module for GlusterFS - -Tips for searching: - -- As it is often hard for reporters to find the right place (product - and component) where to file a report, also search for duplicates - outside same product and component of the bug report you are - triaging. -- Use common words and try several times with different combinations, - as there could be several ways to describe the same problem. If you - choose the proper and common words, and you try several times with - different combinations of those, you ensure to have matching - results. -- Drop the ending of a verb (e.g. search for "delet" so you get - reports for both "delete" and "deleting"), and also try similar - words (e.g. search both for "delet" and "remov"). -- Search using the date range delimiter: Most of the bug reports are - recent, so you can try to increase the search speed using date - delimiters by going to "Search by Change History" on the [search - page](https://bugzilla.redhat.com/query.cgi?format=advanced). - Example: search from "2011-01-01" or "-730d" (to cover the last two - years) to "Now". - -Are the fields correct? ------------------------ - -### Summary - -Sometimes the summary does not summarize the bug itself well. You may -want to update the bug summary to make the report distinguishable. A -good title may contain: - -- A brief explanation of the root cause (if it was found) -- Some of the symptoms people are experiencing - -### Adding people to the "CC" or changing the "Assigned to" field - -Normally, developers and potential assignees of an area are already -CC'ed by default, but sometimes reports describe general issues or are -filed against common bugzilla products. Only if you know developers who -work in the area covered by the bug report, and if you know that these -developers accept getting CCed or assigned to certain reports, you can -add that person to the CC field or even assign the bug report to -her/him. - -To get an idea who works in which area, check To know component owners , -you can check the "MAINTAINERS" file in root of glusterfs code directory -or querying changes in [Gerrit](http://review.gluster.org) (see -[Simplified dev workflow](./Simplified Development Workflow.md)) - -### Severity And Priority - -Please see below for information on the available values and their -meanings. - -#### Severity - -This field is a pull-down of the external weighting of the bug report's -importance and can have the following values: - - Severity |Definition - -------------|------------------------------------------------------------------------------------------------------------------------------------------------------------- - urgent |catastrophic issues which severely impact the mission-critical operations of an organization. This may mean that the operational servers, development systems or customer applications are down or not functioning and no procedural workaround exists. - high |high-impact issues in which the customer's operation is disrupted, but there is some capacity to produce - medium |partial non-critical functionality loss, or issues which impair some operations but allow the customer to perform their critical tasks. This may be a minor issue with limited loss or no loss of functionality and limited impact to the customer's functionality - low |general usage questions, recommendations for product enhancement, or development work - unspecified |importance not specified - -#### Priority - -This field is a pull-down of the internal weighting of the bug report's -importance and can have the following values: - - Priority |Definition - -------------|------------------------ - urgent |extremely important - high |very important - medium |average importance - low |not very important - unspecified |importance not specified - - -### Bugs present in multiple Versions - -During triaging you might come across a particular bug which is present -across multiple version of GlusterFS. Here are the course of actions: - -- We should have separate bugs for each release (We should - clone bugs if required) -- Bugs in released versions should be depended on bug for mainline - (master branch) if the bug is applicable for mainline. - - This will make sure that the fix would get merged in master - branch first then the fix can get ported to other stable - releases. - -*Note: When a bug depends on other bugs, that means the bug cannot be -fixed unless other bugs are fixed (depends on), or this bug stops other -bugs being fixed (blocks)* - -Here are some examples: - -- A bug is raised for GlusterFS 3.5 and the same issue is present in - mainline (master branch) and GlusterFS 3.6 - - Clone the original bug for mainline. - - Clone another for 3.6. - - And have the GlusterFS 3.6 bug and GlusterFS 3.5 bug 'depend on' - the 'mainline' bug - -- A bug is already present for mainline, and the same issue is seen in - GlusterFS 3.5. - - Clone the original bug for GlusterFS 3.5. - - And have the cloned bug (for 3.5) 'depend on' the 'mainline' - bug. - -### Keywords - -Many predefined searches for Bugzilla include keywords. One example are -the searches for the triaging. If the bug is 'NEW' and 'Triaged' is no -set, you (as a triager) can pick it and use this page to triage it. When -the bug is 'NEW' and 'Triaged' is in the list of keyword, the bug is -ready to be picked up by a developer. - -**Triaged** -: Once you are done with triage add the **Triaged** keyword to the - bug, so that others will know the triaged state of the bug. The - predefined search at the top of this page will then not list the - Triaged bug anymore. Instead, the bug should have moved to [this - list](https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&keywords=Triaged&product=GlusterFS). - -**EasyFix** -: By adding the **EasyFix** keyword, the bug gets added to the [list - of bugs that should be simple to fix](./Easy Fix Bugs.md). - Adding this keyword is encouraged for simple and well defined bugs - or feature enhancements. - -**Patch** -: When a patch for the problem has been attached or included inline, - add the **Patch** keyword so that it is clear that some preparation - for the development has been done already. If course, it would have - been nicer if the patch was sent to Gerrit for review, but not - everyone is ready to pass the Gerrit hurdle when they report a bug. - -You can also add the **Patch** keyword when a bug has been fixed in - mainline and the patch(es) has been identified. Add a link to the - Gerrit change(s) so that backporting to a stable release is made - simpler. - -**Documentation** -: Add the **Documentation** keyword when a bug has been reported for - the documentation. This helps editors and writers in finding the - bugs that they can resolve. - -**Tracking** -: This keyword is used for bugs which are used to track other bugs for - a particular release. For example [3.6 tracker - bug](https://bugzilla.redhat.com/showdependencytree.cgi?maxdepth=2&hide_resolved=1&id=glusterfs-3.6.0) - -**FutureFeature** -: This keyword is used for bugs which are used to request for a - feature enhancement ( RFE - Requested Feature Enhancement) for - future releases of GlusterFS. If you open a bug by requesting a - feature which you would like to see in next versions of GlusterFS - please report with this keyword. - -Add yourself to the CC list ---------------------------- - -By adding yourself to the CC list of bug reports that you change, you -will receive followup emails with all comments and changes by anybody on -that individual report. This helps learning what further investigations -others make. You can change the settings in Bugzilla on which actions -you want to receive mail. - -Bugs For Group Triage ---------------------- - -If you come across a bug/ bugs or If you think any bug should to go -thorough the bug triage group, please set NEEDINFO for bugs@gluster.org -on the bug. - -Resolving bug reports ---------------------- - -See the [Bug report life cycle](./Bug report Life Cycle.md) for -the meaning of the bug status and resolutions. - -Example of Triaged Bugs ------------------------ - -This Bugzilla -[filter](https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&keywords=Triaged&keywords_type=anywords&list_id=2739593&product=GlusterFS&query_format=advanced) -will list NEW, Triaged Bugs |