Hello,

I have a CGI Perl script that updates a data file when a user submits a web form. The script uses flock to exclusively lock a secondary file to prevent the data file from being updated by more than one user at a time. I believe this has worked well for some time now.

However, I'm beginning to suspect that occasionally (maybe when the web server is busy) the flock call fails.

Unfortunately, I am not trapping for an error condition each time I call flock because I test for the capability at the beginning of the script. I will soon change this to always test for failure. Then I will know for sure if it ever fails.

In the meantime, reading through the documentation for flock, the only reason I can see for flock to fail is if the operating system doesn't support file locking. Otherwise, unless you tell it not to, it waits indefinitely.

Are there occasions where flock will not wait indefinitely but will instead fail?

Any help would be greatly appreciated.

Richard


In reply to Can flock occasionally fail on systems that support file locking? by rzward

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.