Posted on 2008-04-29 17:39:14-07 by milan
SOLUTION: Fatal error 'Recurse on a private mutex.'
Hi, I ran into a problem that someone else might encounter, so in the spirit of open-source I will contribute the problem and solution.

I installed sqlite (the distribution) prior installing DBD-SQLite (the Perl module) - I know, I know this is not needed since DBD-SQLite contains the engine, etc... but I needed some of the tools. Something happened in my system that started spitting out the error Fatal error 'Recurse on a private mutex.' in my log files causing 505 errors on my website. Unless my system has been compromised, no known changes had been made to any libraries, etc...
After having debugged it, I found that removing sqlite's (the distribution) header files from your system's include folder (on my system it is /usr/local/include). The two files would be:

/usr/local/include/sqlite3.h /usr/local/include/sqlite3ext.h

If you have already begun compiling the DBD-SQLite module, simply go back to the root folder of the module where you were compiling it and run the following:

make clean perl Makefile.PL make make test make install

I am aware that most people will never encounter this error, but you never know :-)

Hope that this will prove useful to someone.

Milan Adamovsky
Direct Responses: Write a response
Perl Weekly newsletter
A free weekly newsletter for people who are busy to read all the blogs. click here to check it out.