EPrints Technical Mailing List Archive
Message: #08839
< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First
Re: [EP-tech] Internal server error when refreshing views
- To: John Salter <J.Salter@leeds.ac.uk>, "eprints-tech@ecs.soton.ac.uk" <eprints-tech@ecs.soton.ac.uk>
- Subject: Re: [EP-tech] Internal server error when refreshing views
- From: Jim Brinkley <brinkley@uw.edu>
- Date: Mon, 17 Jan 2022 11:32:17 -0800
CAUTION: This e-mail originated outside the University of Southampton.
John, That did it! A few more specifics in case someone else has this problem: The main issue turned out to be that I hadn’t installed XML::LibXML even though I thought I had. I found that out when I tried your suggestion: perl -e 'use XML::LibXML 1.63;' which told me the module wasn’t installed. So in Ubuntu I did apt-get install libxml-libxml-perl, which I saw somewhere is recommended over installing by CPAN (don’t remember where). I don’t know whether
this installed 1.63, but the perl After this “epadmin test” had no errors, as did “generate_views. “, and I no longer get the Internal Server error when I go to a new view. A little more detail: After looking at XML.pm I see (as you note) that the system will try to use LibXML if $c->(enable_libxml) does not exist (which it doesn’t in my case). Given that
I hadn’t installed LibXML properly the "use EPrints::XML::LibXML; 1"; at line 73 will fail and it will default to requiring Eprints::XML::DOM at line 85. (Assuming I remember my perl correctly). I also noted that the $c datastructure comes from SystemSettings:conf, which I believe is written by the installer. So somehow the configure script of the installer
must have throught I did have LibXML . That’s easily possible because I first installed this in 2019 on CentOS after migrating and upgrading from an earlier Eprints2 installation, then migrated again to Ubuntu. So probably I missed some step in the migration
process. In any case it seems to work now. I really appreciate your taking the time to help me with this. And after looking at the code more I also appreciate how much effort
has gone into creating this very nice program. Thanks, Jim From:
John Salter <J.Salter@leeds.ac.uk> Hi Jim, The option to select which XML library to use is: $c->{enable_libxml} From the above, EPrints will try to use LibXML if: $c->{enable_libxml} exists and is set to 1 If either: - the module EPrints::XML::LibXML produces errors then the deprecation warning message is produced. So, try grepping for 'enable_libxml' in
~/lib/ ~/archives/ARCHIVEID/cfg/ ~/cfg/ First I would try checking LibXML is happy. Try running these on the commandline (as the EPrints user): perl -e 'use XML::LibXML::SAX;' If either of the above lines produce errors or warnings, I'd look at fixing them first.
Secondly, I'd try grepping for 'enable_libxml' in: [EPRINTS_ROOT]/lib/ [EPRINTS_ROOT]/cfg/ If it is explicitly disabled, try commenting-out that line, and running: To see if things look happy. Cheers, John From: John Salter
Hi Jim, If memory serves me correctly, somewhere* in the EPrints config, there is an option to use either DOM, or LibXML. This faint memory ties in with your note about previous upgrades. It seems like your install might not be using LibXML, even though you've added the packages to the server. *the 'somewhere' is possibly the crux here. My v3.4 knowledge isn't as ingrained as v3.3, and I'm not at my computer at the moment. If you try grepping for 'DOM' in: ~/lib/cfg ~/perl_lib/SystemSettings.pl ~/cfg/ ~/archives/ARCHIVE_ID/cfg/ do you find any options that say 'use XML::DOM' in some way (although not a literal perl 'use XML::DOM' statement)? Cheers, John From: Jim Brinkley
<brinkley@uw.edu> PS I just noticed that the error I see in the Apache server log whenever I get the Internal Server Error is exactly the same one I see at the end of the output below. From:
Jim Brinkley <brinkley@uw.edu> John, Thanks for you quick reply. My guess is the problem is not to do with the specific subject “3-D Reconconstruction” because it occurs for all subjects in my list, including single word subjects,
such as “MindSeer”. However I just now ran [EPRINTS_ROOT]/bin/generate_views [ARCHIVE_ID] --view subjects
as you suggested, and got the following output: eprints@synapse:/opt/eprints3$ bin/generate_views sigpubs --view subjects *** DEPRECATION WARNING *** In future versions, EPrints will be standardising to only support the LibXML library for providing XML functionality.
Please ensure LibXML is installed before upgrading EPrints. Subroutine parse_xml_string redefined at /opt/eprints3/bin/../perl_lib/EPrints/XML/DOM.pm line 119. Subroutine _parse_url redefined at /opt/eprints3/bin/../perl_lib/EPrints/XML/DOM.pm line 144. Subroutine parse_xml redefined at /opt/eprints3/bin/../perl_lib/EPrints/XML/DOM.pm line 164. Subroutine event_parse redefined at /opt/eprints3/bin/../perl_lib/EPrints/XML/DOM.pm line 211. Subroutine _dispose redefined at /opt/eprints3/bin/../perl_lib/EPrints/XML/DOM.pm line 248. Subroutine clone_and_own redefined at /opt/eprints3/bin/../perl_lib/EPrints/XML/DOM.pm line 261. Subroutine document_to_string redefined at /opt/eprints3/bin/../perl_lib/EPrints/XML/DOM.pm line 276. Subroutine make_document redefined at /opt/eprints3/bin/../perl_lib/EPrints/XML/DOM.pm line 286. Subroutine version redefined at /opt/eprints3/bin/../perl_lib/EPrints/XML/DOM.pm line 295. Can't use an undefined value as an ARRAY reference at /opt/eprints3/bin/../perl_lib/XML/DOM/NamedNodeMap.pm line 142. I’ve seen something like this everytime I’ve run generate_views. I thought maybe I should update LibXML, so in Ubuntu I did apt install libxml-perl, and similar for some of the other ones in the above
list. But from the message above it looks like the perl modules in eprints3..perl_lib are redefining existing ones in Ubuntu, so that last error seems to be happening in the version of XML::DOM in eprints3..perl_lib.
I should also say that the last time I moved sigpubs to a new server (around 2019) I upgraded from Eprints 2 to 3, and I think this problem has been happening ever since. I pretty much ignored it until
now because I didn’t have time to deal with it, and I could always tell people to just refresh the browser, but now I have a bit more time and it would be nice to fix this. Jim From:
John Salter <J.Salter@leeds.ac.uk> Hi Jim, If you have access to the server, and run: [EPRINTS_ROOT]/bin/generate_views [ARCHIVE_ID] --view subjects does it give any additional warnings/errors? Cheers, John From:
eprints-tech-bounces@ecs.soton.ac.uk <eprints-tech-bounces@ecs.soton.ac.uk> on behalf of Jim Brinkley via Eprints-tech <eprints-tech@ecs.soton.ac.uk>
CAUTION: This e-mail originated outside the University of Southampton.
Hi,
I run an eprints3 site at sigpubs.si.washington.edu. It generally works fine except when a view regenerates I get an internal server error.
To recreate this issue I can login, go to Admin:System Tools, and then click on Regenerate Views, which as I understand it, causes all views to be regenerated whenever I request them. For example, I can go to menu Browse:Browse by
Subjects, then click on any of the subjects in my customized subject list, as for example, my first subject, "3-D Reconstruction". I then get "Internal Server Error". If I then refresh the browser page the error goes away and the correct view appears. This
view then remains correct for as long as I've tested it, but I think there may be a timeout when it gets regenerated again.
I looked in the apache server log and find this error whenever I get the Internal Server Error:
Can't use an undefined value as an ARRAY reference at /opt/eprints3/perl_lib/XML/DOM/NamedNodeMap.pm line 142.\n, referer: http://sigpubs.si.washington.edu/view/subjects/
I am running what I think is the latest stable version of Eprints: 3.4.3, on Ubuntu 20.04, perl version 5.30, apache2. Apache is running as www-data.www-data. The repository is owned by eprints.eprints, and www-data is in group eprints
so it can write files to the repository. I don't think permissions are the issue because once I refresh the page the view is OK, and the files in the views directory are changed.
I've searched the web and this mailing list and can't find this particular situation. Any suggestions? Thanks.
Jim Brinkley
Structural Informatics Group
University of Washington
Seattle USA
http//:si.washington.edu |
- Follow-Ups:
- Re: [EP-tech] Internal server error when refreshing views
- From: Jim Brinkley <brinkley@uw.edu>
- Re: [EP-tech] Internal server error when refreshing views
- References:
- [EP-tech] Internal server error when refreshing views
- From: Jim Brinkley <brinkley@uw.edu>
- Re: [EP-tech] Internal server error when refreshing views
- From: John Salter <J.Salter@leeds.ac.uk>
- Re: [EP-tech] Internal server error when refreshing views
- From: Jim Brinkley <brinkley@uw.edu>
- Re: [EP-tech] Internal server error when refreshing views
- From: Jim Brinkley <brinkley@uw.edu>
- Re: [EP-tech] Internal server error when refreshing views
- From: John Salter <J.Salter@leeds.ac.uk>
- Re: [EP-tech] Internal server error when refreshing views
- From: John Salter <J.Salter@leeds.ac.uk>
- Re: [EP-tech] Internal server error when refreshing views
- From: Jim Brinkley <brinkley@uw.edu>
- [EP-tech] Internal server error when refreshing views
- Prev by Date: Re: [EP-tech] Internal server error when refreshing views
- Next by Date: Re: [EP-tech] Internal server error when refreshing views
- Previous by thread: [EP-tech] Sort view with creators_name and corp_creators
- Index(es):