[OpenAFS] Using a file lock to avoid race conditions?

Edgecombe, Jason jwedgeco@uncc.edu
Tue, 15 Mar 2011 12:14:32 -0400


This is a multi-part message in MIME format.

------_=_NextPart_001_01CBE32C.120A608E
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_002_01CBE32C.120A608E"


------_=_NextPart_002_01CBE32C.120A608E
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi everyone,

=20

We're working on a script to fetch mail from an IMAP server and put it
into a web-based ticketing system. The script should be run from one of
our five Linux web servers in our fail-over pool. The script should
still run even if one server is down. A late run of 2-3 times the
frequency is acceptable.

=20

I'm thinking of using a file lock (i.e. flock) in AFS to determine who
fetches the email, but I need to know about the failure scenarios. Does
the lock persist if the machine freezes or dies? Will an orphaned lock
expire, and if so, how long does it take to expire?

=20

Any other suggestions are welcome.

=20

Sincerely,

Jason

=20

------------------------------------------------------------------------
---

Jason Edgecombe | Linux and Solaris Administrator

UNC Charlotte | The William States Lee College of Engineering

9201 University City Blvd. | Charlotte, NC 28223-0001

jwedgeco@uncc.edu <mailto:jwedgeco@uncc.edu>  | http://coe.uncc.edu
<http://coe.uncc.edu/>  |   <https://www.facebook.com/UNCCEngr> =20
Facebook <https://www.facebook.com/UNCCEngr>=20

------------------------------------------------------------------------
---

If you are not the intended recipient of this transmission or a person
responsible for delivering it to the intended recipient, any disclosure,
copying, distribution, or other use of any of the information in this
transmission is strictly prohibited. If you have received this
transmission in error, please notify me immediately by reply e-mail or
by telephone at 704-687-3514.  Thank you.

=20


------_=_NextPart_002_01CBE32C.120A608E
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" =
xmlns:p=3D"urn:schemas-microsoft-com:office:powerpoint" =
xmlns:a=3D"urn:schemas-microsoft-com:office:access" =
xmlns:dt=3D"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" =
xmlns:s=3D"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" =
xmlns:rs=3D"urn:schemas-microsoft-com:rowset" xmlns:z=3D"#RowsetSchema" =
xmlns:b=3D"urn:schemas-microsoft-com:office:publisher" =
xmlns:ss=3D"urn:schemas-microsoft-com:office:spreadsheet" =
xmlns:c=3D"urn:schemas-microsoft-com:office:component:spreadsheet" =
xmlns:odc=3D"urn:schemas-microsoft-com:office:odc" =
xmlns:oa=3D"urn:schemas-microsoft-com:office:activation" =
xmlns:html=3D"http://www.w3.org/TR/REC-html40" =
xmlns:q=3D"http://schemas.xmlsoap.org/soap/envelope/" =
xmlns:rtc=3D"http://microsoft.com/officenet/conferencing" =
xmlns:D=3D"DAV:" xmlns:Repl=3D"http://schemas.microsoft.com/repl/" =
xmlns:mt=3D"http://schemas.microsoft.com/sharepoint/soap/meetings/" =
xmlns:x2=3D"http://schemas.microsoft.com/office/excel/2003/xml" =
xmlns:ppda=3D"http://www.passport.com/NameSpace.xsd" =
xmlns:ois=3D"http://schemas.microsoft.com/sharepoint/soap/ois/" =
xmlns:dir=3D"http://schemas.microsoft.com/sharepoint/soap/directory/" =
xmlns:ds=3D"http://www.w3.org/2000/09/xmldsig#" =
xmlns:dsp=3D"http://schemas.microsoft.com/sharepoint/dsp" =
xmlns:udc=3D"http://schemas.microsoft.com/data/udc" =
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" =
xmlns:sub=3D"http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/"=
 xmlns:ec=3D"http://www.w3.org/2001/04/xmlenc#" =
xmlns:sp=3D"http://schemas.microsoft.com/sharepoint/" =
xmlns:sps=3D"http://schemas.microsoft.com/sharepoint/soap/" =
xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" =
xmlns:udcs=3D"http://schemas.microsoft.com/data/udc/soap" =
xmlns:udcxf=3D"http://schemas.microsoft.com/data/udc/xmlfile" =
xmlns:udcp2p=3D"http://schemas.microsoft.com/data/udc/parttopart" =
xmlns:wf=3D"http://schemas.microsoft.com/sharepoint/soap/workflow/" =
xmlns:dsss=3D"http://schemas.microsoft.com/office/2006/digsig-setup" =
xmlns:dssi=3D"http://schemas.microsoft.com/office/2006/digsig" =
xmlns:mdssi=3D"http://schemas.openxmlformats.org/package/2006/digital-sig=
nature" =
xmlns:mver=3D"http://schemas.openxmlformats.org/markup-compatibility/2006=
" xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns:mrels=3D"http://schemas.openxmlformats.org/package/2006/relationshi=
ps" xmlns:spwp=3D"http://microsoft.com/sharepoint/webpartpages" =
xmlns:ex12t=3D"http://schemas.microsoft.com/exchange/services/2006/types"=
 =
xmlns:ex12m=3D"http://schemas.microsoft.com/exchange/services/2006/messag=
es" =
xmlns:pptsl=3D"http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/=
" =
xmlns:spsl=3D"http://microsoft.com/webservices/SharePointPortalServer/Pub=
lishedLinksService" xmlns:Z=3D"urn:schemas-microsoft-com:" =
xmlns:st=3D"&#1;" xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii"><meta name=3DGenerator content=3D"Microsoft Word 12 =
(filtered medium)"><!--[if !mso]><style>v\:* =
{behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt'>Hi everyone,<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span style=3D'font-size:10.0pt'>We&#8217;re working =
on a script to fetch mail from an IMAP server and put it into a =
web-based ticketing system. The script should be run from one of our =
five Linux web servers in our fail-over pool. The script should still =
run even if one server is down. A late run of 2-3 times the frequency is =
acceptable.<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span style=3D'font-size:10.0pt'>I&#8217;m thinking of =
using a file lock (i.e. flock) in AFS to determine who fetches the =
email, but I need to know about the failure scenarios. Does the lock =
persist if the machine freezes or dies? Will an orphaned lock expire, =
and if so, how long does it take to expire?<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span style=3D'font-size:10.0pt'>Any other suggestions =
are welcome.<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt'>Sincerely,<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt'>Jason<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:9.0pt;font-family:"Arial","sans-serif"'>--------------=
-------------------------------------------------------------<o:p></o:p><=
/span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span =
style=3D'font-size:9.0pt;font-family:"Arial","sans-serif"'>Jason =
Edgecombe <b>| </b>Linux and Solaris =
Administrator<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'text-autospace:none'><span =
style=3D'font-size:9.0pt;font-family:"Arial","sans-serif"'>UNC Charlotte =
<b>| </b>The William States Lee College of =
Engineering<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'text-autospace:none'><span =
style=3D'font-size:9.0pt;font-family:"Arial","sans-serif"'>9201 =
University City Blvd. <b>| </b>Charlotte, NC =
28223-0001<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'text-autospace:none'><span =
style=3D'font-size:9.0pt;font-family:"Arial","sans-serif"'><a =
href=3D"mailto:jwedgeco@uncc.edu"><span =
style=3D'color:windowtext'>jwedgeco@uncc.edu</span></a> <b>| </b><a =
href=3D"http://coe.uncc.edu/"><span =
style=3D'color:blue'>http://coe.uncc.edu</span></a> | </span><a =
href=3D"https://www.facebook.com/UNCCEngr"><span =
style=3D'color:gray;text-decoration:none'><img border=3D0 width=3D16 =
height=3D16 id=3D"Picture_x0020_3" =
src=3D"cid:image001.gif@01CBE30A.4507FA80" =
alt=3Dfacebook-logo></span></a><span style=3D'color:gray'>&nbsp;<a =
href=3D"https://www.facebook.com/UNCCEngr"><span =
style=3D'color:gray'>Facebook</span></a></span><span =
style=3D'font-size:9.0pt;font-family:"Arial","sans-serif"'><o:p></o:p></s=
pan></p><p class=3DMsoNormal style=3D'text-autospace:none'><span =
style=3D'font-size:9.0pt;font-family:"Arial","sans-serif"'>--------------=
-------------------------------------------------------------<o:p></o:p><=
/span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span =
style=3D'font-size:8.0pt;font-family:"Arial","sans-serif"'>If you are =
not the intended recipient of this transmission or a person responsible =
for delivering it to the intended recipient, any disclosure, copying, =
distribution, or other use of any of the information in this =
transmission is strictly prohibited. If you have received this =
transmission in error, please notify me immediately by reply e-mail or =
by telephone at 704-687-3514.&nbsp; Thank you.<o:p></o:p></span></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div></body></html>
------_=_NextPart_002_01CBE32C.120A608E--

------_=_NextPart_001_01CBE32C.120A608E
Content-Type: image/gif;
	name="image001.gif"
Content-Transfer-Encoding: base64
Content-ID: <image001.gif@01CBE30A.4507FA80>
Content-Description: image001.gif
Content-Location: image001.gif

R0lGODlhEAAQANUAAE1rpUJfkipGhzVRkU5omGmDt+3v80Vfn/P0+D5YmElioWh/tDBLjDpVllJp
mTZSknuNuU5mlUxmpDNPkH2TwEFcmyxJiX6QvVBop9vh69zh61NwplZzqE1uqUpsqEZpplRzrVd1
rn6UwVp4sEBko1p9skNnpVBxq1hwrF16siRBf1R1rP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAaMQMQF
RSwaiRcEZEEROZ9QygKCKaSu2Oy1gJGMvmAwh0D4ShShtDq90bBYacUBRK/TM28W/VA5+f9+b4AV
CR2GhwEBb4mGCQ0ekJF5eZANDx+YmZNvmA8TJqChoG+iEwwkqKmob6oMFiWwsbBvshYCACu5uitv
ugACDgO4u7wsuQADDgYRKs3Oz80RBkEAOw==

------_=_NextPart_001_01CBE32C.120A608E--