Re: [EP-tech] Lift_embargos: Can't call method "current_repository" on an undefined value
John Salter via Eprints-tech <[email protected]> Wed, 20 Nov 2019 12:20:59 +0000
| Newsgroups | gmane.comp.web.eprints.devel |
|---|---|
| Message-ID | <EMEW3|68a7013611d21ab0b81f5cdb1044395avAJCLd14eprints-tech-bounces|ecs.soton.ac.uk|DB6PR03MB2934823802BD2155BAD3BDABC44F0@DB6PR03MB2934.eurprd03.prod.outlook.com> |
--===============0358318505718861199== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_DB6PR03MB2934823802BD2155BAD3BDABC44F0DB6PR03MB2934eurp_" --_000_DB6PR03MB2934823802BD2155BAD3BDABC44F0DB6PR03MB2934eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi Robin, *** Firstly, if you have moved from Apache 2.2 to Apache 2.4, make sure you= r restricted documents are restricted! *** There may be a change needed in ~/archives/ARCHIVEID/cfg/cfg.d/security= .pl *** See: https://eur03.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%= 2Fgithub.com%2Feprints%2Feprints%2Fissues%2F322&data=3D01%7C01%7Ceprint= s-tech%40ecs.soton.ac.uk%7C7f14bde310f64b8d753408d76db424af%7C4a5378f929f44= d3ebe89669d03ada9d8%7C0&sdata=3DYmlDeEIZpBPZWC2f8wkqbgekCtHXzhJxprzS9fQ= uDRw%3D&reserved=3D0 On to your reported problem... I would check any 'commit' triggers in your repository config. This might also help (it's a bit crude, but has helped me in the past) - gr= epping for a 'ne' on line 48 of a repository's config: grep -n ' ne ' archives/ARCHVIEID/cfg/ | grep 48 if that doesn't return anything, try other config locations like lib/cfg.d= / I suspect there's a commit trigger that either: - works OK if there's an online session, but not from the command-line - generates a warning that's ignored in an online session, but not in the b= in script - which then fails Does that help at all? Cheers, John From: [email protected] [mailto:eprints-tech-bounces@ecs= .soton.ac.uk] On Behalf Of Robin Sylvestre via Eprints-tech Sent: 19 November 2019 18:42 To: [email protected] Subject: [EP-tech] Lift_embargos: Can't call method "current_repository" on= an undefined value Hello fellow Eprinters, We've been running Eprints 3.3.13 and a modified "lift_embargos" script for= quite some time without any issue. But we noticed lately that the script h= as stopped working. It seems that it is now unable to commit any changes. R= unning in debug mode, I can see that the script fails after calling the "$d= oc->commit(1)" line: Lifting expired embargo on eprint #2957, document #41378 (2019-11-19) main::CODE(0x999baa0)(lift_embargos:149): 149: if( !$dryrun ) 150: { main::CODE(0x999baa0)(lift_embargos:151): 151: $doc->set_value( "security", "public" ); main::CODE(0x999baa0)(lift_embargos:152): 152: $doc->set_value( "date_embargo", undef ); main::CODE(0x999baa0)(lift_embargos:154): 154: $doc->commit( 1 ); # pass force through to parent e= print Use of uninitialized value in string ne at (eval 65)[(eval 55)[/usr/share/e= prints/bin/../perl_lib/EPrints/Config.pm:272]:19] line 48. at (eval 65)[(eval 55)[/usr/share/eprints/bin/../perl_lib/EPrints/Config.pm= :272]:19] line 48. EPrints::Config::Ecole::__ANON__[(eval 65)[(eval 55)[/usr/share/epr= ints/bin/../perl_lib/EPrints/Config.pm:272]:19]:68]('EPrints::DataObj::Docu= ment=3DHASH(0x9a2f8f0)') called at /usr/share/eprints/bin/../perl_lib/EPrin= ts/Repository.pm line 1726 eval {...} called at /usr/share/eprints/bin/../perl_lib/EPrints/Rep= ository.pm line 1726 EPrints::Repository::call('EPrints::Repository=3DHASH(0x4654aa0)', = 'set_document_automatic_fields', 'EPrints::DataObj::Document=3DHASH(0x9a2f8= f0)') called at /usr/share/eprints/bin/../perl_lib/EPrints/DataObj.pm line = 463 EPrints::DataObj::update_triggers('EPrints::DataObj::Document=3DHAS= H(0x9a2f8f0)') called at /usr/share/eprints/bin/../perl_lib/EPrints/DataObj= /Document.pm line 1217 EPrints::DataObj::Document::commit('EPrints::DataObj::Document=3DHA= SH(0x9a2f8f0)', 1) called at lift_embargos line 154 main::__ANON__[lift_embargos:184]('EPrints::Repository=3DHASH(0x465= 4aa0)', 'EPrints::DataSet=3DHASH(0x57200e8)', 'EPrints::DataObj::Document= =3DHASH(0x9a2f8f0)', undef) called at /usr/share/eprints/bin/../perl_lib/EP= rints/List.pm line 664 EPrints::List::map('EPrints::List=3DHASH(0x2ff0af8)', 'CODE(0x999ba= a0)') called at lift_embargos line 184 Can't call method "current_repository" on an undefined value at /usr/share/= eprints/bin/../perl_lib/EPrints/BackCompatibility.pm line 443. Looking at the code, I can see that the session information is passed to th= e other functions, but it doesn't seem to be working anymore as the session= is undefined when calling the method "current_repository" on line 443 of B= ackCompatibility.pm: return $EPrints::HANDLE->current_repository; The only thing that changed in the last few weeks has been a server upgrade= (not sure what was the previous version but we are now running on CentOS 7= with Perl 5.16.3 and Apache 2.4.6). Using the workflow to commit changes s= till work without any issue. Has anyone encountered this error before? Could this be related to Perl or = Apache's configuration? Thank you for your input on this issue! Robin Sylvestre Technicien des syst=E8mes informatis=E9s Biblioth=E8que Louise-Lalonde-Lamarre Polytechnique Montr=E9al 514-340-4711 poste 5973 --_000_DB6PR03MB2934823802BD2155BAD3BDABC44F0DB6PR03MB2934eurp_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr= osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:= //www.w3.org/TR/REC-html40"> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-= 1"> <meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)"> <style><!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; font-size:11.0pt; font-family:"Calibri",sans-serif; mso-fareast-language:EN-US;} a:link, span.MsoHyperlink {mso-style-priority:99; color:#0563C1; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:#954F72; text-decoration:underline;} span.EmailStyle17 {mso-style-type:personal; font-family:"Calibri",sans-serif; color:windowtext;} span.EmailStyle18 {mso-style-type:personal-reply; font-family:"Calibri",sans-serif; color:#1F497D;} .MsoChpDefault {mso-style-type:export-only; font-size:10.0pt;} @page WordSection1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.WordSection1 {page:WordSection1;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--> </head> <body lang=3D"EN-GB" link=3D"#0563C1" vlink=3D"#954F72"> <div class=3D"WordSection1"> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">Hi Robin,<o:p></o:p></= span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">*** Firstly, if you ha= ve moved from Apache 2.2 to Apache 2.4, make sure your restricted documents= are restricted!<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">*** There may be a cha= nge needed in ~/archives/ARCHIVEID/cfg/cfg.d/security.pl<o:p></o:p></span><= /p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">*** See: https://githu= b.com/eprints/eprints/issues/322<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p> </o:p></spa= n></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">On to your reported pr= oblem…<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">I would check any 'com= mit' triggers in your repository config.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">This might also help (= it's a bit crude, but has helped me in the past) - grepping for a 'ne' on l= ine 48 of a repository's config:<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">grep -n ' ne ' archive= s/ARCHVIEID/cfg/ | grep 48<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">if that doesn't return= anything, try other config locations like lib/cfg.d/ <o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p> </o:p></spa= n></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">I suspect there's a co= mmit trigger that either:<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">- works OK if there's = an online session, but not from the command-line<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">- generates a warning = that's ignored in an online session, but not in the bin script - which then= fails<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p> </o:p></spa= n></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">Does that help at all?= <o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p> </o:p></spa= n></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">Cheers,<o:p></o:p></sp= an></p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D">John<o:p></o:p></span>= </p> <p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p> </o:p></spa= n></p> <div> <div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm = 0cm 0cm"> <p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"mso-fareast-languag= e:EN-GB">From:</span></b><span lang=3D"EN-US" style=3D"mso-fareast-language= :EN-GB"> [email protected] [mailto:eprints-tech-bounces@= ecs.soton.ac.uk] <b>On Behalf Of </b>Robin Sylvestre via Eprints-tech<br> <b>Sent:</b> 19 November 2019 18:42<br> <b>To:</b> [email protected]<br> <b>Subject:</b> [EP-tech] Lift_embargos: Can't call method "current_re= pository" on an undefined value<o:p></o:p></span></p> </div> </div> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal"><span lang=3D"FR-CA">Hello fellow Eprinters,<o:p></o= :p></span></p> <p class=3D"MsoNormal"><span lang=3D"FR-CA"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA">We’ve been running Eprint= s 3.3.13 and a modified “lift_embargos” script for quite some t= ime without any issue. But we noticed lately that the script has stopped wo= rking. It seems that it is now unable to <i>commit </i>any changes. Running in debug mode, I can see that the script= fails after calling the “$doc->commit(1)” line: <o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA"><o:p> </o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">Lifting expired embargo on epri= nt #2957, document #41378 (2019-11-19)<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New""><o:p> </o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">main::CODE(0x999baa0)(lift_emba= rgos:149):<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">149: &nb= sp; if( !$dryrun )<o:p></o:p></span></p= > <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">150: &nb= sp; {<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">main::CODE(0x999baa0)(lift_emba= rgos:151):<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">151: &nb= sp; = $doc->set_value( "security", "public" )= ;<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">main::CODE(0x999baa0)(lift_emba= rgos:152):<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">152: &nb= sp; = $doc->set_value( "date_embargo", undef );<o:p></o= :p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">main::CODE(0x999baa0)(lift_emba= rgos:154):<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">154: &nb= sp;  = ; $doc->commit( 1 ); # pass force through to parent eprint<o:= p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New""><o:p> </o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">Use of uninitialized value in s= tring ne at (eval 65)[(eval 55)[/usr/share/eprints/bin/../perl_lib/EPrints/= Config.pm:272]:19] line 48.<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">at (eval 65)[(eval 55)[/usr/sha= re/eprints/bin/../perl_lib/EPrints/Config.pm:272]:19] line 48.<o:p></o:p></= span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New""> &= nbsp; EPrints::Config::Ecole::__ANON__[(eval 65)[(eval 55)[/usr/share= /eprints/bin/../perl_lib/EPrints/Config.pm:272]:19]:68]('EPrints::DataObj::= Document=3DHASH(0x9a2f8f0)') called at /usr/share/eprints/bin/../perl_lib/EPrints/Repository.pm line 17= 26<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New""> &= nbsp; eval {...} called at /usr/share/eprints/bin/../perl_lib/EPrints= /Repository.pm line 1726<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New""> &= nbsp; EPrints::Repository::call('EPrints::Repository=3DHASH(0x4654aa0= )', 'set_document_automatic_fields', 'EPrints::DataObj::Document=3DHASH(0x9= a2f8f0)') called at /usr/share/eprints/bin/../perl_lib/EPrints/DataObj.pm line 463<o:p></o:= p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New""> &= nbsp; EPrints::DataObj::update_triggers('EPrints::DataObj::Document= =3DHASH(0x9a2f8f0)') called at /usr/share/eprints/bin/../perl_lib/EPrints/D= ataObj/Document.pm line 1217<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New""> &= nbsp; EPrints::DataObj::Document::commit('EPrints::DataObj::Document= =3DHASH(0x9a2f8f0)', 1) called at lift_embargos line 154<o:p></o:p></span><= /p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New""> &= nbsp; main::__ANON__[lift_embargos:184]('EPrints::Repository=3DHASH(0= x4654aa0)', 'EPrints::DataSet=3DHASH(0x57200e8)', 'EPrints::DataObj::Docume= nt=3DHASH(0x9a2f8f0)', undef) called at /usr/share/eprints/bin/../perl_lib/EPrints/List.pm line 6= 64<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New""> &= nbsp; EPrints::List::map('EPrints::List=3DHASH(0x2ff0af8)', 'CODE(0x9= 99baa0)') called at lift_embargos line 184<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New";background:yellow;mso-highlight:= yellow">Can't call method "current_repository" on an undefined va= lue at /usr/share/eprints/bin/../perl_lib/EPrints/BackCompatibility.pm line 443.</span><span lang=3D"EN-CA" style=3D"font-family:"Courier Ne= w""><o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-family:"Cour= ier New""><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA">Looking at the code, I can see = that the session information is passed to the other functions, but it doesn= ’t seem to be working anymore as the session is undefined when callin= g the method “current_repository” on line 443 of BackCompatibility.pm:<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA"><o:p> </o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-CA" st= yle=3D"font-family:"Courier New"">return $EPrints::HANDLE->cur= rent_repository;<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA">The only thing that changed in = the last few weeks has been a server upgrade (not sure what was the previou= s version but we are now running on CentOS 7 with Perl 5.16.3 and Apache 2.= 4.6). Using the workflow to commit changes still work without any issue. <o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA">Has anyone encountered this err= or before? Could this be related to Perl or Apache’s configuration? <o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA">Thank you for your input on thi= s issue!<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-CA"><o:p> </o:p></span></p> <div> <p class=3D"MsoNormal"><b><span lang=3D"FR-CA" style=3D"font-size:16.0pt;co= lor:#BF8F00;mso-fareast-language:FR-CA">Robin Sylvestre</span></b><span lan= g=3D"FR" style=3D"mso-fareast-language:FR-CA"><o:p></o:p></span></p> <p class=3D"MsoNormal"><b><span lang=3D"FR-CA" style=3D"mso-fareast-languag= e:FR-CA">Technicien des syst=E8mes informatis=E9s</span></b><span lang=3D"F= R" style=3D"mso-fareast-language:FR-CA"><o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"mso-fareast-language:F= R-CA">Biblioth=E8que Louise-Lalonde-Lamarre</span><span lang=3D"FR" style= =3D"mso-fareast-language:FR-CA"><o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"mso-fareast-language:F= R-CA">Polytechnique Montr=E9al</span><span lang=3D"FR" style=3D"mso-fareast= -language:FR-CA"><o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"mso-fareast-language:F= R-CA">514-340-4711 poste 5973</span><span lang=3D"FR" style=3D"mso-fareast-= language:FR-CA"><o:p></o:p></span></p> </div> <p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"mso-fareast-language:F= R-CA"> </span><span lang=3D"FR-CA"><o:p></o:p></span></p> </div> </body> </html> --_000_DB6PR03MB2934823802BD2155BAD3BDABC44F0DB6PR03MB2934eurp_-- --===============0358318505718861199== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline *** 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/ *** EPrints developers Forum: http://forum.eprints.org/ --===============0358318505718861199==--