I'll keep you updated if we could make sure it's the "store" from different processes

I very rarely gamble, but I'll bet that this is your problem.

My experience of writing inter-process communication software with shared storage using Storable says that you are having collisions that result in broken writes.

You need to provide adequate exclusive locking mechanisms, which isn't easy.

You're running a CRM. That, by default means you may have multiple entries at once, all the time. You're likely only going to grow, so patching this with locks is not sustainable nor is it scalable.

Rewrite all of it to use a proper database. Doing anything else is a temporary band-aid and will only cost your company money for nothing.

Having a (potentially growing) multi-user input all using the same single output file is like pouring an ever increasing amount of liquid into a funnel and expecting the funnel to allow the increasing amount of liquid to flow through. It won't, no matter what you do.

Even if you successfully manage to set up a proper locking mechanism (trust me, this is hard), there's always the single-file contention. You will forever have problems no matter what.

To further, Storable is a proprietary format. Don't use it for the type of storage you're using it for. Serialize your data in a standard format.


In reply to Re^2: Storable - File empties itself? by stevieb
in thread Storable - File empties itself? by feumw

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.