[[!meta copyright="Copyright © 2008, 2009, 2012, 2014 Free Software Foundation, Inc."]] [[!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 License|/fdl]]."]]"""]] [[!meta title="Fix and Complete File Locking Support"]] 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"]]. Possible mentors: Samuel Thibault (youpi) 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 :-)