PDA

View Full Version : Perl_hv_common_key_len Issue with Rev703:


So_1337
07-07-2009, 04:33 PM
Greetings,

I'm trying to help someone upgrade their server to the newest set of EQEmu binaries and he's having an issue with perl that I'm not sure is related to the "newsXS_flags" issue (http://www.eqemulator.net/forums/showthread.php?t=26643). The issue we're getting instead is "Perl_hv_common_key_len could not be located in the dynamic link library perl58.dll".

The server is running on Windows XP Professional, and was fine before we updated to the latest revision from a revision somewhere in the 400s. I'm really stuck on this. I've tried many different versions of perl, including:

5.8.8.822
5.8.8.824
5.8.9.825
5.8.9.826

We've been careful to uninstall, delete the C:\perl directory, reboot, install the new version, reboot, and then try to run the server, but we keep receiving the same error.

Oh, and I'm particularly vexed on this one because my personal test server that I use for PEQ content building is running fine with revision 703 on Windows Server 2003 with Perl version 5.8.9.825. I can't imagine that the differences between XP Pro and Server 2003 would be vast enough to break the Perl version between the two of them with the exact same binaries.

Any ideas? Thanks for any help, fellas.

Derision
07-07-2009, 04:43 PM
If you Google that error, you will come across this thread:

http://www.perlmonks.org/?node_id=718264

Which states:

If you google for Perl_hv_common_key_len, you'll see it was added in perl-5.10.0 (perl-5.10.0-RC1), and its not available in perl-5.8.8, so you've got a version of something for perl-5.10.0 trying to be loaded by perl-5.8.8, which can't work.


So maybe try installing Perl 5.10.

(Disclaimer: I only use Windows binaries occasionally that I compile myself, so I don't know if this is the issue with the Rev703 binaries on the GoogleCode SVN).

EDIT: OK, I re-read the thread I linked to and the next post down says hv_common_key_len was addded to Perl 5.8.8/5.8.9, so I don't know. All I can suggest is when you uninstall Perl, you do:


C:\> dir perl5*.dll /s


and repeat if you have other drives than C: to ensure you have nuked all copies of Perl .dlls before re-installing.

Producer_BMW
07-07-2009, 05:33 PM
whats the best way to FIND all copies of PERL and nuke it ,

just search for the word Perl?

GnarmustDie
07-07-2009, 05:49 PM
I've got the same problems with Vista. I tried similar steps to the first poster but ran out of time this morning. I was planning on going to perl 5.10 as you suggest since I saw a few people running that in another post. Will try possibly tonight but probably tomorrow morning and see if I can get it to work.

GnarmustDie
07-07-2009, 08:12 PM
Perl 5.10 doesn't work. It has perl510.dll instead of perl58.dll. I have to leave, unfortunately, but I'll try the last rev of perl 5.8 and see if that works: ActivePerl-5.8.9.826-MSWin32-x86-290470.msi.

I'll try later on this evening (hopefully) and post the results.

GnarmustDie
07-08-2009, 07:16 AM
I was able to get 5.8.9.826 to work for me. I adjusted the PATH environment variable myself, and would just manually purge all contents of the directory before reloading. I wouldn't allow the MSI to add to the path; so that way I was able to uninstall/reinstall without rebooting.

Weldarr
07-09-2009, 03:32 PM
When I first ran into this error with my server, I found that upgrading to 826 and then reinstalling the DBI,DBD-mysql, and IO-stringy fixed it. It wouldn't work properly until I made sure to reload those through a command prompt with ppm install.

So_1337
07-20-2009, 09:17 AM
Wonderful idea, thanks, Weldarr. I know that with the past few versions of working Perl, doing those manually wasn't necessary, I hadn't thought to try.

eqemuross
09-02-2009, 12:11 AM
How did you fix this? I am getting the same error...

So_1337
09-02-2009, 08:12 AM
Sorry, I posted the solution over in the main perl error thread (http://www.eqemulator.net/forums/showthread.php?t=26643), on page 2 (http://www.eqemulator.net/forums/showpost.php?p=177022&postcount=22):

It was 5.8.8.824. I used the PPM manager to install the DBI-mysql and IO-stringy modules to be sure, but I just uninstalled them to check, and the server loaded just fine.

Just to reiterate:

EQEmu server (build 884 binaries) running on a Windows XP computer using the 5.8.8.824 installation of perl with no additional modification.

Check your windows/system32 folder for the perl58.dll file and make sure to delete it if it is there.
The problem was that the perl58.dll file was in the system32 folder. That's what was screwing things up. My guess is that without that, nearly any of the versions of perl would've worked. It had only been placed there because someone had posted that it solved their issues, but it wound up causing problems.

eqemuross
09-02-2009, 03:13 PM
Sorry, I posted the solution over in the main perl error thread (http://www.eqemulator.net/forums/showthread.php?t=26643), on page 2 (http://www.eqemulator.net/forums/showpost.php?p=177022&postcount=22):


The problem was that the perl58.dll file was in the system32 folder. That's what was screwing things up. My guess is that without that, nearly any of the versions of perl would've worked. It had only been placed there because someone had posted that it solved their issues, but it wound up causing problems.

yea i don't even know what i did. i reinstalled/installed so many different versions of perl and it just worked, haha.

thanks.

Tharkun
09-02-2009, 04:42 PM
I'm curious about this... and I don't have a means of testing.... could it be that some of this has to do with the version of PERL installed at the time the binaries are compiled?