[[!meta copyright="Copyright © 2008, 2009, 2012, 2014, 2018 Free Software
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
is included in the section entitled [[GNU Free Documentation
[[!meta title="Fix and Complete File Locking Support"]]
[[!template id=highlight text="""/!\ 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 [[!GNU_Savannah_patch 332 desc="available"]].
Exercise: Find one of the existing issues, either by looking at the task/bug
filed on [[open_issues/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 :-)