Tue Jul 28 07:18:28 2009: Request 48240 was acted upon. Transaction: Correspondence added by wfelipe Queue: PAR Subject: MODULE object version 1.YYY does not match $MODULE::VERSION 1.XXX at /usr/lib/perl/5.10/DynaLoader.pm Broken in: 0.994 Severity: Important Owner: Nobody Requestors: wfel...@gmail.com Status: open Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=48240 >
On Tue Jul 28 06:35:36 2009, RSCHUPP wrote: > Does the simple example > > pp -p testdbi -e 'use DBI; print "OK"' > > (when moved to the machine with a different version of DBI) > show the same problem? > > BTW, it's OK that shared libs are packed with their real name > into the .par (or executable), but have mangled hash.so names > when extracted into the cache area. PAR patches DynaLoader > to make it look for the mangled name. The example runs with no problems. Looking deep into the problem, I realized two things: - using strace to read the syscalls to get the stat and open, it always stat the hash.so, and then stat DBI.so installed in the operating system (outside par package), and then open and read DBI.so from the operating system - the module PAR::Heavy, there is a routine override in DynaLoader: *{'DynaLoader::dl_findfile'} = \&_dl_findfile; that override doesn't seem to work, because it's never called