I've just released Mojolicious 5.30 with a rather important bug fix. If you're using a preforking server and templates/static files in DATA sections, i strongly recommend you upgrade to save yourself some headaches. Random 404 responses that suddenly disappear again are just one of the possible symptoms.
https://github.com/kraih/mojo/commit/54f0926c118efa2512c0ffec76def0a5aebec8be The fix without context may look rather simple, but is anything but. I've known about this bug for over 2 years, but whenever i tried tracking it down it would just disappear. This time i got lucky though, and it appeared right when i was profiling some optimizations and i ended up with a test case that had a 1 in 50 chance of triggering it. https://github.com/kraih/mojo/blob/v5.30/lib/Mojo/Loader.pm#L53-L56 It's all about these four lines, there is a race condition, and you will most likely not be able to spot it. All forked Perl processes dup DATA handles, but those handles still share a single seek pointer. So, if multiple processes try slurping a DATA section at the same time, they will all throw around the seek pointer, interfering with each other, and you end up with corrupted or missing data, which can then trigger any number of funny symptoms. So do yourself a favor and UPGRADE! :) -- sebastian -- You received this message because you are subscribed to the Google Groups "Mojolicious" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/mojolicious. For more options, visit https://groups.google.com/d/optout.
