Finding a Project

This page describes how to find a bug to fix, select a project to enhance Lustre, or help with Lustre testing. You can also also contact the Lustre Development Mailing List (often referred to as [mailto:lustre-devel@lists.lustre.org lustre-devel]) to discuss ideas for projects.

Finding a Bug to Fix
Fixing bugs in Lustre is a good way to become familiar with the Lustre code if you've not worked on it before. Having a specific problem to fix requires understanding the flow of operations, and understanding how that maps to specific code. It also provides a concrete goal to investigate the code, rather than reading vaguely through the vast Lustre code base. Both Lustre defects, and features or to-do items are logged in the Bugzilla bug tracking system. Some ways to find a bug you'd like to work on are:


 * Search Bugzilla key words for bugs designated "easy" bugs. Some Lustre developers use this keyword to indicate that a bug could be fixed by someone without in-depth familiarity with the Lustre code.
 * Search Bugzilla for very old Lustre bugs. These are typically non-critical bugs that are not dependent on a release timeline. They can vary widely in complexity.  In particular, doing an empty Bugzilla query and looking at the first 100 items (sorted by bug number) shows a lot of bugs that are either relatively hard to hit, not generally visible to users, and nice-to-have features that no customer has specifically prioritized to be fixed.
 * Porting Lustre to newer kernel versions is an ongoing effort, given the large number of vendor and upstream kernel releases.
 * Testing Lustre under a variety of workloads is always of interest. The more unusual the IO pattern used by a benchmark, application, or testing tool, the more likely it is to find something of interest.

If you have selected something to work on, or are having trouble finding a project that matches your skills and interests, please contact [mailto:lustre-devel@lists.lustre.org lustre-devel] to discuss the best approach to fix the bug, to get assistance finding bugs to fix, and to keep others aware of what you are working on. Note that there are a number of different development areas that Lustre encompasses, including user tools, documentation, disk filesystems, networking, kernel integration, etc. so it is almost always possible to find a project that is interesting and challenging for you.

Selecting a Project to Enhance Lustre
If you'd like to take on a project to enhance or add a new feature to Lustre, consider one of these options:


 * Search Bugzilla for the keyword "small project". Some Lustre developers use this keyword to indicate that an enhancement request or bug is a stand-alone project suitable to be taken on by an external developer. When you have identified a project you'd like to work on, contact [mailto:lustre-devel@lists.lustre.org lustre-devel] to discuss the approach be taken to address it.


 * Assist with keeping Lustre up-to-date with recent kernel changes. For some changes, a simple fix to the Lustre code will be required, while for others, a good understanding of the Linux kernel and how Lustre interfaces with it is needed. For guidance in selecting or proceeding with a project, contact [mailto:lustre-devel@lists.lustre.org lustre-devel].


 * Propose a new feature that can be developed as a separate module on top of Lustre. Be sure to get feedback on your proposal by contacting [mailto:lustre-devel@lists.lustre.org lustre-devel] before you get started.

Helping with Lustre Testing
To find out how you can contribute to the testing of upcoming Lustre releases, see Lustre Test Plans.