EPrints Technical Mailing List Archive

Message: #08753


< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First

Re: [EP-tech] Coversheet Plugin Help


CAUTION: This e-mail originated outside the University of Southampton.
Hi David,

Thank you for the advice. I took a step back from it last night because I was losing my mind a bit. Instead of "print" I started using "$self->log( "HERE ONE" );" etc. as is used in OpenOffice.pm.

What I had been doing was running openoffice-local.pl from /opt/eprints3/archives/uolrepo/bin using this command (as the eprints user):

perl openoffice-local.pl uolrepo start

This worked and said it was running and printed the variables as expected.

I then used the same command with the stop argument:

perl openoffice-local.pl uolrepo stop

This gave me an error "Failed to stop OpenOffice"

What this also does is overwrites the log file contents. If I do just the start argument and check the log I see my log statements go through and even an extra one "HERE FOUR" to confirm that the script progresses past  "return undef if( $oo_cmd =~ /\$\([a-z]*\)/i );"


my $dog = "Bonnie";
#print "\n";
#print $oo_path;
#print "\n";
#print $oo_cmd;

$self->log( "$dog" );
return undef unless( defined $oo_path && defined $oo_cmd && (-e $oo_path) );
$self->log( "HERE ONE" );
$oo_cmd =~ s/\$\(([a-z]*)\)/quotemeta($oo_path)/gei;
$self->log( "HERE TWO" );
return undef if( $oo_cmd =~ /\$\([a-z]*\)/i );
$self->log( "HERE FOUR" );
$self->log( "$oo_cmd" );
return $oo_cmd;
}

(The "4dog variable was to check whether I need speech marks around a perl variable when printing to the log file). If I check the contents of the log after the stop command I get only "OpenOffice executable not found" from earlier on in OpenOffice.pm in "sub new". Basically I'm unable to stop openoffice, which matches up with what I'm seeing in the EPrints GUI where the button only gives me the option to stop OpenOffice and when clicked it fails with a big red warning telling me so. My assumption now is that it's running and either hanging or failing somewhere along the way at a point with no output.

Running ps aux I see these two that were started yesterday:

eprints  14252  0.0  1.6 376904 138680 ?       S    Oct06   0:00 perl openoffice-local.pl uolrepo start
eprints  14253  0.0  0.0   4448   640 ?        S    Oct06   0:00 sh -c \/opt\/openoffice\.org3\/program\/soffice\.bin "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -norestore -nofirststartwizard -nologo -headles
eprints  14254  0.0  0.5 501828 48740 ?        Sl   Oct06   0:00 /opt/openoffice.org3/program/soffice.bin -accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager -norestore -nofirststartwizard -nologo -headless

I'm going to investigate the pids a bit and maybe kill them to see what happens. I'm slightly concerned about killing these processes because my presumption is that they're supposed to be there. OpenOffice is supposed to be ready and waiting to be used. Anyway, we shall see.

Thanks,
James

On Wed, Oct 6, 2021 at 8:24 PM David R Newman <drn@ecs.soton.ac.uk> wrote:

Hi James,

This is very odd.  You are basically saying I print out the variable $oo_cmd and then a few lines later the unless statement causes a return with undef as the "defined $oo_cmd" clause is not satisfied.  I would advise using "print STDERR" rather than just print as this could lead to problems.  However, not anything I can think should lead to the oddity you have reported.

Do you get past the line:

return undef if( $oo_cmd =~ /\$\([a-z]*\)/i );

As you do not have another log line.  I would assume not as the prior unless statement suggests $oo_cmd is not set somehow.

I very much suspect if I was fixing this problem, I would be banging my head against a wall for a while.  There are numerous things I would try but I think it would take forever for me to say, try A and tell me what happens and them I might suggest B or C depending on the result.  If I was doing this on my own EPrints instance if it had this issue, I could get to the end of the alphabet quite quickly but trying to do this over email, we could still be here next week and not really any further forward.  So for now my best suggestions are to switch to "print STDERR" and add another log line after the penultimate return statement.

Regards

David Newman

On 06/10/2021 19:59, James Kerwin wrote:
CAUTION: This e-mail originated outside the University of Southampton.
Right, I've done the unthinkable and edited OpenOffice.pm in plugins/EPrints/Plugin/OpenOffice.pm in order to see why I'm getting the "OpenOffice executable not found" in the openoffice.log. Using some imaginative logs and prints I've determined that something is happening in my:

sub get_command (starts around line 394). It gets through the if/else and comes out with the bits it needs. According to my print statements the relevant variables are:

$oo_path = /opt/openoffice.org3/program/soffice.bin
$oo_cmd = $(openoffice) "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -norestore -nofirststartwizard -nologo -headless

This is what I expect looking at the conf files. Then for some reason at line 412 it fails and returns undef to  "sub new" at line  131 and subsequently fails and gives my error mentioned above. 

If I delete "&& defined $oo_cmd" from :

Line 412: return undef unless( defined $oo_path && defined $oo_cmd && (-e $oo_path) );

It progresses to my other log phrases I'm using to track progression (HERE One and HERE TWO):

sub get_command
{
my( $self ) = @_;

my ( $oo_path, $oo_cmd );

if( defined $self->{session} )
{
# Attempt to read the paths from a local conf file
$oo_path = $self->{session}->config( 'executables', 'openoffice' );
$oo_cmd = $self->{session}->config( 'invocation', 'openoffice' );
}
else
{
$oo_path = EPrints::Config::get( "executables" )->{"openoffice"};
$oo_cmd = EPrints::Config::get( "invocation" )->{"openoffice"};
}
#my $dog = "Bonnie";
print "\n";
print $oo_path;
print "\n";
print $oo_cmd;

$self->log( "HERE THREE" );
return undef unless( defined $oo_path && defined $oo_cmd && (-e $oo_path) );
$self->log( "HERE ONE" );
$oo_cmd =~ s/\$\(([a-z]*)\)/quotemeta($oo_path)/gei;
$self->log( "HERE TWO" );
return undef if( $oo_cmd =~ /\$\([a-z]*\)/i );

return $oo_cmd;
}
From playing around outside of EPrints I'm anticipating the end result of this subroutine is to produce something like this:

\/opt\/openoffice\.org3\/program\/soffice\.bin "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -norestore -nofirststartwizard -nologo -headless

I've struggled to work out what's happening and can only assume I'm missing something really obvious or something isn't quite doing what I think it is. Maybe something weird happens in the openoffice->invocation part of the config, although it shouldn't matter as I've copied it from both the wiki and the file in the Bazaar (this bit: $c->{invocation}->{openoffice} = '$(openoffice) "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -norestore -nofirststartwizard -nologo -headless';)

Thanks,
James




On Wed, Oct 6, 2021 at 2:25 PM John Salter <J.Salter@leeds.ac.uk> wrote:

The 'unexpected absence' is caused by OpenOffice not running.

 

If you get that fixed, all should work J

 

 

From: eprints-tech-bounces@ecs.soton.ac.uk [mailto:eprints-tech-bounces@ecs.soton.ac.uk] On Behalf Of James Kerwin via Eprints-tech
Sent: 06 October 2021 13:50
To: David R Newman <drn@ecs.soton.ac.uk>
Cc: eprints-tech@ecs.soton.ac.uk
Subject: Re: [EP-tech] Coversheet Plugin Help

 

CAUTION: This e-mail originated outside the University of Southampton.

Right so I checked the logs:

 

openoffice.log is very clear with:

OpenOffice executable not found

indexer.log says this for each attempt (with the correct Doc ID n each case):

[uolrepo] [Convert::AddCoversheet] Failed to add coversheet to document '79108'
[uolrepo] [Convert::AddCoversheet] Unexpected absence of coversheet files.
[uolrepo] [Event::AddCoversheet] Couldn't create coversheet document

 

I'm a little confused with the indexer.log output because the coversheet file is there in [archive_name]/cfg/static/coversheets/1/frontfile.odt and the permissions are rwx for owner, group and others (to help rule out permissions issues).

 

There was an email detailing a very similar problem back in 2015, but I can't see how it ended.

 

On Wed, Oct 6, 2021 at 12:50 PM James Kerwin <jkerwin2101@gmail.com> wrote:

Hi David,

 

I accessed the Bazaar through the repository admin section (Admin -> System Tools -> EPints Bazaar and so on). It says on there that I am using V.1.0.4

One thing I've noticed just now when stopping the indexer is that I have a button saying "Stop OpenOffice". When I click this I get a red warning with "Failed to stop OpenOffice". This might be something for me to look at as I think I should probably be able to stop that if everything was working as expected.

 

Thanks,

James

 

On Wed, Oct 6, 2021 at 12:19 PM David R Newman <drn@ecs.soton.ac.uk> wrote:

Hi James,

So we are not cross purpose, please could you tell me which version of the coversheets plugin you are using.  Is it the one that can be currently downloaded from:

http://bazaar.eprints.org/350/

If not please could you tell me where it is from.  Not having the cfg/static/coversheets / directory in your local archive will be a problem.  You will also need to copy the variously numbered sub-directories from you live repository.

There does seem to be some confusion on the correct location for the stitchPDF scripts should go according to the coversheets wiki page [1].  I think $c->{archiveroot} . "/bin/tools/stitchPDFs " is the more appropriate location.  So it is probably better to move the script that change the command.  I will update the wiki page to that effect.

If you reinstate the coversheets directory as describe above, coversheets should start being applied but also I would expect an error id they were not.  The other things to sort out are making sure OpenOffice is running.  It is possible that something may still be at issue that does not cause the indexer task to fail and it "succeeds" to quickly for you to see in the event queue.  I would look in EPRINTS_PATH/var/indexer.log to see if you can see anything going on?

Regards

David Newman

[1] http://wiki.eprints.org/w/Coversheets

 

On 06/10/2021 12:03, James Kerwin via Eprints-tech wrote:

CAUTION: This e-mail originated outside the University of Southampton.

Hello everyone,

 

I hope we are all keeping well.

 

Can anybody help me with the coversheets plugin? I have installed it and the dependencies, uploaded a coversheet template, set it to active and deposited several items that should be suitable for a coversheet to be generated.

 

When I deposit an item (through Elements) to the repository it goes into the review and no coversheet tasks appear in the Indexer. I move it to the live archive and no coversheets appear. The item does not have a coversheet added to it.

Even if there is some way to troubleshoot this or logs I could look at to get a clue.

 

At the moment the sheet is set to be added to items of type "Thesis".

There were some things I noticed and have changed. First being the template couldn't be uploaded. There was no "coversheets" folder in cfg/static so I added one and it worked. Permissions fully open as it's on the test server and I'm narrowing down problems.

The next thing I changed was in z_coversheet.pl:

$c->{gs_pdf_stich_cmd} = $c->{archiveroot} . "/bin/tools/stitchPDFs ";

to:

$c->{gs_pdf_stich_cmd} = $c->{archiveroot} . "/bin/stitchPDFs ";

because that matches the actual location of  stitchPDFs.

 

Looking in bin I can see the following aren't set to be  allowed to be executed by any user or group:

DocumentConverter.py

remove_coversheets

 

I will open them up and have another attempt, but if anybody has any more guidance it will be massively appreciated.

Thanks,

James



*** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
*** Archive: http://www.eprints.org/tech.php/
*** EPrints community wiki: http://wiki.eprints.org/

Virus-free. www.avg.com