|Think about Loose Coupling|
More on "IO object version does not match bootstrap parameter" errorby jkeenan1 (Deacon)
|on Sep 11, 2005 at 18:25 UTC||Need Help??|
jkeenan1 has asked for the
wisdom of the Perl Monks concerning the following question:
Several days ago, I posted an inquiry (Diagnosing error report: "IO object version 1.21 does not match bootstrap parameter 1.22") concerning certain FAIL reports I was getting at testers.cpan.org (http://tinyurl.com/c8xd5) on uploads of a module I am maintaining. For reasons not clear to me, some (but not all) testers would report massive test failures, all of them starting out something like this:
I noted that I could not reproduce this error and was puzzled because I didn't call IO::Handle in any of my code, nor did I make any use of Dynaloader. (There's no XS in the distro.)
chromatic commented that "that error means that the version in the XS portion of IO does not match the version in the Perl portion of the module. It sounds like an incorrect installation of Perl."
Since that time there have been further developments. First, there have been more confusing automated testing reports. One of the testers who first reported the "IO object version" errors has re-tested ExtUtils-ModuleMaker-0.39 and it is now passing (http://tinyurl.com/awhay). But another tester first reported the distro as passing all tests, then switched to two different architectures (though all Linux) and reported failures -- with the same type of errors -- on those later architectures! (Go to http://tinyurl.com/c8xd5 and look at reports 241985, 242337 and 242426.)
Second, I googled for this error (http://tinyurl.com/7v7dc) and scanned the results. I got 44 hits (including duplicates) going back to 1999 from lists such as comp.lang.perl.misc, debian-user, perl.par, etc. Sometimes the error looks like this:
Sometimes like this:
Sometimes like this:
What's interesting in reviewing these postings is that -- unlike most postings to Perl lists -- the OP's question never gets a definitive answer. Often the answer falls along the lines of "reinstall Perl."
The most thorough answer that I found was (not surprisingly) from Sherm Pendley (http://www.dbforums.com/t1064830.html). Sherm wrote:
So you have the latest IO.pm, which is reporting version 1.21, but when DynaLoader tries to load IO.so, that reports version 1.18. This is a fatal problem, so DynaLoader complains about it and dies.
The thread trailed off there; I don't know if the poster Sherm was helping ever diagnosed the problem further or solved it. But if more than one CPAN tester -- each of whom, I presume, is a highly experienced Perl hacker -- is generating spurious error reports based on this error, then the problem has to be judged a serious one and worthy of serious attention by the community.
Since problems with IO modules, .so objects and perl distributions are beyond my personal expertise, I'm wondering where I should report the problem for further investigation. Suggestions?
Thank you very much.