WARNING: This is the _old_ Lustre wiki, and it is in the process of being retired. The information found here is all likely to be out of date. Please search the new wiki for more up to date information.
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 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 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 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 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 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.