EPrints Technical Mailing List Archive

Message: #08248


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

Re: [EP-tech] use of uninitialized value in string eq during eprint->commit


Hi David,

 

Thank you!  That is brilliant use of grep.  Using this method, I was able to pinpoint the line, super helpful!

We are on 3.3.12, but the problematic line comes from the orcid_support_advance plugin version 1.5.1 from the bazaar.

It is this line:

 

Line 384:                   if( $old_c->{putcode} eq $new_c->{putcode} )

 

In this file: /cfg/cfg.d/z_orcid_support_advance.pl

That is actually line 384 in the default file from the bazaar: https://bazaar.eprints.org/1138/1/epm/orcid_support_advance/cfg/cfg.d/z_orcid_support_advance.pl

I see that this line is actually updated/fixed on GitHub, I guess it just didn’t make its way to the Bazaar yet?

 

Line 384:                  if( defined $old_c->{putcode} && defined $new_c->{putcode} && $old_c->{putcode} eq $new_c->{putcode} )

 

https://github.com/eprints/orcid_support_advance/blob/master/cfg/cfg.d/z_orcid_support_advance.pl

 

I know I mentioned line 379, but that’s because I was testing on two different dev servers where that same line was in position 379 on a different server, but also being flagged on commit.

 

Thanks again!

Tomasz

 

 

From: David R Newman <drn@ecs.soton.ac.uk>
Sent: July 10, 2020 6:13 PM
To: eprints-tech@ecs.soton.ac.uk; Tomasz Neugebauer <Tomasz.Neugebauer@concordia.ca>
Subject: Re: [EP-tech] use of uninitialized value in string eq during eprint->commit

 

 

 

Hi Tomasz,

I have do deal with these sorts of issues quite a lot.  As you probably won't be surprised to hear, I do not know of the top of my head what is causing this issue.  However, what typical I do is grep over the archive's cfg and possibly bin directories to see if I can spot any code that may relate to this error.  Using the following command you will find any code that could lead to that error on line 379:

grep -rn " eq " EPRINTS_PATH/archives/ARCHIVE_NAME/cfg/ EPRINTS_PATH/archives/ARCHIVE_NAME/bin/  | grep ":379:"

If you don't find anything then it may be worth having a look in perl_lib, lib, flavours/pub_lib. ingredients, site_lib etc.  The reason for the "(eval 173)" is probably due to line 379 calling a user-defined function (sub).

If you can tell me the specific version of EPrints you are running I can probably have a look though the code codebase to give some suggestions.  There is a good chance that line 379 will be in the core codebase and line 173 will be the line in the archive level user-defined function.

Regards

David Newman

 

On 10/07/2020 23:01, Tomasz Neugebauer via Eprints-tech wrote:

I just finished a CLI script that updates some metadata field values in some items in my repository. Everything is working fine as far as I can tell, values get saved/updated, except that when I run the script, I get this warning every time I do $eprint->commit:

 

“Use of uninitialized value in string eq at (eval 173) line 379.”

 

Has anyone seen this before?  It is rather cryptic and I can’t even tell what file it is referring to?

 

Tomasz

 



*** 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