Help → Startup problems on Debian

Startup problems on Debian

Hi all,

I'm starting just now to play with popfile, using the SVN HEAD o' the day.

I had already installed the debian package of popfile, but I wanted to try with the SVN version so I stopped the popfile service.

Then when I try to run popfile.pl I get this error:

 copy of POPFile appears to be running.
 Attempting to signal the previous copy.
 Waiting 10 seconds for a reply.

The other POPFile (31807) failed to signal back, starting new copy (31968)
         {core: config history logger mq} 
install_driver(SQLite) failed: Can't locate DBD/SQLite.pm in @INC (@INC contains: . /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl) at (eval 134) line 3.
Perhaps the DBD::SQLite perl module hasn't been fully installed,
or perhaps the capitalisation of 'SQLite' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite2, Sponge, mysql.
 at Classifier/Bayes.pm line 901
         {classifier:

This arises some question:

1) I noticed that the Debian version of popfile is 0.22.4-1.2, while the SVN version I'm using is 1.1.1 (SVN 3361). Why there is such a discrepancy between the Debian and upstream version numbers?

2) Debian package seems to work even if no DBD::SQLite package is installed, apparently it is using libdbd-sqlite2-perl, how's that possible (debian version using another version of DBD::SQLite)?

3) How popfile check about the existence of another running instance?
The error issued seems wrong as I'm quite sure there are no other instances running.

I'll appreciate any help, greets.

  • Message #1236

    > 2) Debian package seems to work even if no DBD::SQLite package is installed, apparently it is using libdbd-sqlite2-perl, how's that possible (debian version using another version of DBD::SQLite)?

    Self-reply.

    I just noticed the popfile.pck file used by popfile in Debian doesn't have the line:

    OPTIONAL-SQLite3 backend        0.0.0   DBD::SQLite
    

    Is the user supposed to edit that file?

    Also if the package is marked to be optional, why popfile is failing to start?

    Greets again.

  • Message #1237

    3) How popfile check about the existence of another running instance?
    The error issued seems wrong as I'm quite sure there are no other instances running.

    I checked the code, POPFILE/Configuration.pm:161:

     $self->{pid_file__} = $self->get_user_path( $self->config_( 'piddir' ) . 'popfile.pid', 0 );
    

    Also popfile prints a nice trace on startup:

    Starting...     
            {core:pid file is: ././popfile.pid
    

    Since I'm manually killing popfile that explains all.

    Greets.

  • Message #1238

    These are pretty good questions.

    1) The POPFile Debian package currently seems to be orpahned, i.e. it doesn't currently have a maintainer and thus new versions of POPFile aren't going to be packaged for Debian (and haven't been for quite a while).

    2) The current POPFile source code relies on the Perl SQLite module and won't work without it. I really don't remember what database support was required in 0.22.4.

    3) POPFile writes out a file containing its pid. If you start POPFile and it finds an existing pid file, you get exactly the warning you quoted. If POPFile dies during startup, it will not remove the pid file and the next instance will issue this warning.

    • Message #1239

      2) The current POPFile source code relies on the Perl SQLite module and won't work without it. I really don't remember what database support was required in 0.22.4.

      Thanks, I installed DBD::SQLite with cpan -i and now it is working fine.

      Many thanks for the clear answers, greetings.

  • Message #1240

    It seems I was not quick enough with this reply! I'll post it anyway as it may help someone else:

    the Debian version of popfile is 0.22.4-1.2, while the SVN version I'm using is 1.1.1 (SVN 3361)

    POPFile 0.22.4 was released more than 4 years ago (22 February 2006). POPFile 1.1.1 was released 26 September 2009.

    We have some semi-official Debian packages available that are based upon POPFile 1.1.1:

    http://getpopfile.org/docs/howtos:debian

    http://getpopfile.org/docs/howtos:debian#semi-official_package

    Debian package seems to work even if no DBD::SQLite package is installed

    The SQLite situation is very complicated! The key thing is that POPFile 0.22.4 uses DBD::SQLite2 (which uses SQLite 2.x format databases) but the current POPFile 1.1.1 release needs DBD::SQLite (which uses SQLite 3.x format databases).

    POPFile 1.1.1 will automatically upgrade an old SQLite 2.x format database to the new format (and will therefore also need DBD::SQLite2 to allow it to read the old database).

    I just noticed the popfile.pck file ... Is the user supposed to edit that file?

    No, that file is automatically generated by the Makefile when a new release is prepared.

    Brian