lucy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ashley Pond V <ashley.pon...@gmail.com>
Subject [lucy-user] Installation location weirdness under daemon for Lucy libs
Date Thu, 05 Dec 2013 19:37:02 GMT
I am in the process of porting an old (four years) KinoSearch
application to Lucy; from scratch, not drop in, but starting from
small parts and building back up.

I have a stubbed indexer script working appropriately *until* I
daemonize it with Proc::Daemon::Init(), When I do that, a single index
pass/commit or an index pass with truncate => 1 works still but if it
has to build on the current index instead, it bombs out with a
memory/paging/bad-file error from a peculiar location for the Lucy
code; I think it's the build dir.

FATAL - mmap of offset 0 and length 2044 (page size 4096) against
'/usr/local/apv_4045_2/hss/var/lucy/cases/seg_3/cf.dat' failed: Bad
file descriptor
(/usr/local/apv_4045_2/hss/var/lucy/cases/seg_3/lexicon-28.ix)
        S_fill at /root/Lucy-0.3.3/core/Lucy/Store/InStream.c line 206
        at /usr/local/apv_4045_2/hss/lib/StudyShare/Lucy/Indexer.pm line 152

It says Lucy code is in /root/ (where it was built and installed per
the INSTALL doc that comes with the dist). But the code was installed
in the regular site_perl tree-

  perldoc -l Lucy
  /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Lucy.pod

If it's relevant the actual call that is throwing the error is-

    $self->delete_by_term( field => "id", term => $case->id );

If it is commented out, it just moves the error to the ->commit call
but is still related to looking in the wrong place for the Lucy code-

FATAL - mmap of offset 4096 and length 656 (page size 4096) against
'/usr/local/apv_4045_2/hss/var/lucy/cases/seg_7/cf.dat' failed:
Permission denied
(/usr/local/apv_4045_2/hss/var/lucy/cases/seg_7/lexicon-2.ixix)
        S_fill at /root/Lucy-0.3.3/core/Lucy/Store/InStream.c line 206

The self gives the clue that I'm subclassing-
   use base "Lucy::Index::Indexer";

Not sure if that's become a no-no. It worked with KinoSearch.

Any ideas? Why is it looking in /root/? The script is not run as root.
What is it about daemonization is making it wonky?

Thank you!
-Ashley

Mime
View raw message