/!\ Obsolete /!\

This is no longer valid as a Google Summer of Code project.

Over the years, UNIX has acquired a host of different file locking mechanisms. Some of them work on the Hurd, while others are buggy or only partially implemented. This breaks many applications.

The goal is to make all file locking mechanisms work properly. This requires finding all existing shortcomings (through systematic testing and/or checking for known issues in the bug tracker and mailing list archives), and fixing them. The biggest missing feature is record locking, i.e. the lockf variant, which needs a complete implementation.

This task will require digging into parts of the code to understand how file locking works on the Hurd. Only general programming skills are required.

A preliminary patch is available.

Exercise: Find one of the existing issues, either by looking at the task/bug filed on file locking, on trackers on savannah, or by trying things out yourself; and take a go at it. Note though that most of these issues are probably not trivial -- it's quite likely that you won't be able to actually fix any of them in the time available during the application process. However, you might be able to spot something else that could be improved while looking into this.

If after trying for a while you haven't found anything easy enough to improve in the locking-related code, talk to us about some alternative exercise task. Perhaps you actually find something you could do while looking through the bug tracker or trying stuff yourself in search of locking issues :-)