Antoine Beaupré wrote: > Thing is: this happens after I change a setting (disabling the txt > plugin) in the frontend, so the .setup file I am testing on is not the > one that provokes the bug...
While I have been unable to find a simpler test case either, I now know
some interesting things..
If ikiwiki is modified to
use YAML;
rather than its current on-demand load:
eval q{use YAML};
die $@ if $@;
The bug doesn't happen. So I could workaround this by making ikiwiki
slower in all cases.
More interestingly, *where* the eval q{use YAML} is run determines if
it succeeds or fails. In IkiWiki::CGI::getsession(), if I put it above
the line that calls CGI::Session->new, it succeeds. Below this line,
it fails.
Clearly, YAML::Mo is doing some gross disgusting stuff with the symbol
table in its line 5. The line in question, to be clear, is 1329
characters of line noise that appears machine-generated. And no, I don't
just mean it's perl code. :-P
Perhaps CGI::Session puts something into the symbol table that
YAML::Mo then chokes on? That would explain why letting the use YAML
happen at startup avoids the problem.
I got as far as dumping out the perl symbol table before and after that
line (see attachments), but while it does change it, I don't see any red
flags. Also, just calling CGI::Session->new is not sufficient to
reproduce the problem; nor is calling it with the same query string
generated when posting the form. So, I have no good test case.
Anyway, it turns out that if I eval q{use YAML::XS}; the
YAML::Mo(nstrosity?) module is not loaded, and everything works.
Filed an upstream bug:
https://rt.cpan.org/Ticket/Display.html?id=74487
--
see shy jo
$VAR1 = {
'_</usr/lib/perl/5.14/Storable.pm' =>
*{'::_</usr/lib/perl/5.14/Storable.pm'},
'_<Encode.c' => *{'::_<Encode.c'},
'version::' => *{'::version::'},
'/' => *{'::/'},
'stderr' => *::stderr,
'Apache::' => *{'::Apache::'},
'SIG' => *::SIG,
'_</usr/share/perl/5.14/CGI/Util.pm' =>
*{'::_</usr/share/perl/5.14/CGI/Util.pm'},
'Tie::' => *{'::Tie::'},
'_</usr/share/perl/5.14/warnings.pm' =>
*{'::_</usr/share/perl/5.14/warnings.pm'},
'18' => *{'::18'},
'_</usr/lib/perl/5.14/DynaLoader.pm' =>
*{'::_</usr/lib/perl/5.14/DynaLoader.pm'},
'_</usr/lib/perl/5.14/auto/Cwd/Cwd.so' =>
*{'::_</usr/lib/perl/5.14/auto/Cwd/Cwd.so'},
'16' => *{'::16'},
'_</usr/lib/perl/5.14/auto/POSIX/load_imports.al' =>
*{'::_</usr/lib/perl/5.14/auto/POSIX/load_imports.al'},
'Cwd::' => *{'::Cwd::'},
'_<highlight_wrap.cpp' => *{'::_<highlight_wrap.cpp'},
'_<ListUtil.c' => *{'::_<ListUtil.c'},
'_</usr/lib/perl5/auto/highlight/highlight.so' =>
*{'::_</usr/lib/perl5/auto/highlight/highlight.so'},
'APR::' => *{'::APR::'},
'Authen::' => *{'::Authen::'},
'Encode::' => *{'::Encode::'},
'Regexp::' => *{'::Regexp::'},
'' => *{'::'},
'^' => *{'::^'},
'UNIVERSAL::' => *{'::UNIVERSAL::'},
'overload::' => *{'::overload::'},
'$' => *{'::$'},
'11' => *{'::11'},
'_</usr/share/perl/5.14/constant.pm' =>
*{'::_</usr/share/perl/5.14/constant.pm'},
'\\' => *{'::\\'},
'Errno::' => *{'::Errno::'},
'File::' => *{'::File::'},
'Image::' => *{'::Image::'},
'-' => *{'::-'},
'_<perlmain.c' => *{'::_<perlmain.c'},
'_</usr/bin/ikiwiki' => *{'::_</usr/bin/ikiwiki'},
'!' => *{'::!'},
'feature::' => *{'::feature::'},
'_</usr/share/perl5/IkiWiki.pm' =>
*{'::_</usr/share/perl5/IkiWiki.pm'},
'' => *{'::'},
'15' => *{'::15'},
'CGITempFile::' => *{'::CGITempFile::'},
'Markdown::' => *{'::Markdown::'},
'RPC::' => *{'::RPC::'},
'_</usr/lib/perl/5.14/auto/Storable/Storable.so' =>
*{'::_</usr/lib/perl/5.14/auto/Storable/Storable.so'},
'Config::' => *{'::Config::'},
'warnings::' => *{'::warnings::'},
'Time::' => *{'::Time::'},
'EPOC::' => *{'::EPOC::'},
'' => *{'::'},
'=' => *{'::='},
'IPC::' => *{'::IPC::'},
'17' => *{'::17'},
'2' => *{'::2'},
'_<Cwd.c' => *{'::_<Cwd.c'},
'ARNING_BITS' => *{'::ARNING_BITS'},
'stdin' => *::stdin,
'_</usr/lib/perl5/auto/Search/Xapian/Xapian.so' =>
*{'::_</usr/lib/perl5/auto/Search/Xapian/Xapian.so'},
'ARGV' => *::ARGV,
'INC' => *::INC,
'_</usr/share/perl5/CGI/Session.pm' =>
*{'::_</usr/share/perl5/CGI/Session.pm'},
'highlight::' => *{'::highlight::'},
'14' => *{'::14'},
'?' => *{'::?'},
'vars::' => *{'::vars::'},
'_</usr/lib/perl/5.14/Encode/Alias.pm' =>
*{'::_</usr/lib/perl/5.14/Encode/Alias.pm'},
'XSLoader::' => *{'::XSLoader::'},
'_<perlio.c' => *{'::_<perlio.c'},
'_</usr/share/perl/5.14/Getopt/Long.pm' =>
*{'::_</usr/share/perl/5.14/Getopt/Long.pm'},
':' => *{':::'},
'Digest::' => *{'::Digest::'},
'main::' => *{'::main::'},
'AutoLoader::' => *{'::AutoLoader::'},
'Carp::' => *{'::Carp::'},
'Win32::' => *{'::Win32::'},
'_</usr/lib/perl/5.14/Encode.pm' =>
*{'::_</usr/lib/perl/5.14/Encode.pm'},
'_</usr/share/perl/5.14/IPC/Open3.pm' =>
*{'::_</usr/share/perl/5.14/IPC/Open3.pm'},
'0' => *{'::0'},
'_</usr/share/perl/5.14/XSLoader.pm' =>
*{'::_</usr/share/perl/5.14/XSLoader.pm'},
'GTop::' => *{'::GTop::'},
'@' => *{'::@'},
'_<Storable.c' => *{'::_<Storable.c'},
'SelectSaver::' => *{'::SelectSaver::'},
'_</usr/share/perl5/Log/Agent/Priorities.pm' =>
*{'::_</usr/share/perl5/Log/Agent/Priorities.pm'},
']' => *{'::]'},
'' => *{'::'},
'ExtUtils::' => *{'::ExtUtils::'},
'threads::' => *{'::threads::'},
'IkiWiki::' => *{'::IkiWiki::'},
'8' => *{'::8'},
'MIME::' => *{'::MIME::'},
'STDERR' => *::STDERR,
'_<Parser.c' => *{'::_<Parser.c'},
'_<POSIX.c' => *{'::_<POSIX.c'},
'Apache2::' => *{'::Apache2::'},
'_</usr/lib/perl/5.14/auto/File/Glob/Glob.so' =>
*{'::_</usr/lib/perl/5.14/auto/File/Glob/Glob.so'},
'base::' => *{'::base::'},
'URI::' => *{'::URI::'},
'5' => *{'::5'},
'open::' => *{'::open::'},
'Memoize::' => *{'::Memoize::'},
'LWPx::' => *{'::LWPx::'},
'7' => *{'::7'},
',' => *{'::,'},
'_</usr/share/perl5/URI/_punycode.pm' =>
*{'::_</usr/share/perl5/URI/_punycode.pm'},
'_</usr/share/perl/5.14/File/Temp.pm' =>
*{'::_</usr/share/perl/5.14/File/Temp.pm'},
'utf8::' => *{'::utf8::'},
'"' => *{'::"'},
'blosxom::' => *{'::blosxom::'},
'constant::' => *{'::constant::'},
're::' => *{'::re::'},
'' => *{'::'},
'mro::' => *{'::mro::'},
'DynaLoader::' => *{'::DynaLoader::'},
'stdout' => *::stdout,
'strict::' => *{'::strict::'},
'_</usr/share/perl/5.14/Time/Local.pm' =>
*{'::_</usr/share/perl/5.14/Time/Local.pm'},
'' => *{'::'},
'_<MD5.c' => *{'::_<MD5.c'},
'|' => *{'::|'},
'highlightc::' => *{'::highlightc::'},
'Fcntl::' => *{'::Fcntl::'},
'Net::' => *{'::Net::'},
'Storable::' => *{'::Storable::'},
'_<Glob.xs' => *{'::_<Glob.xs'},
'PEN' => *{'::PEN'},
'10' => *{'::10'},
'_</usr/lib/perl/5.14/auto/Digest/MD5/MD5.so' =>
*{'::_</usr/lib/perl/5.14/auto/Digest/MD5/MD5.so'},
'' => *{'::'},
'Log::' => *{'::Log::'},
'integer::' => *{'::integer::'},
'E_TRIE_MAXBUF' => *{'::E_TRIE_MAXBUF'},
'_</usr/lib/perl/5.14/auto/Data/Dumper/Dumper.so' =>
*{'::_</usr/lib/perl/5.14/auto/Data/Dumper/Dumper.so'},
'Dos::' => *{'::Dos::'},
'_</usr/lib/perl/5.14/auto/POSIX/POSIX.so' =>
*{'::_</usr/lib/perl/5.14/auto/POSIX/POSIX.so'},
'_</usr/share/perl/5.14/base.pm' =>
*{'::_</usr/share/perl/5.14/base.pm'},
'Data::' => *{'::Data::'},
'~' => *{'::~'},
'_<universal.c' => *{'::_<universal.c'},
'List::' => *{'::List::'},
'_</usr/lib/perl/5.14/auto/Fcntl/Fcntl.so' =>
*{'::_</usr/lib/perl/5.14/auto/Fcntl/Fcntl.so'},
'' => *{'::'},
'AINT' => *{'::AINT'},
'_</usr/lib/perl/5.14/auto/Encode/Encode.so' =>
*{'::_</usr/lib/perl/5.14/auto/Encode/Encode.so'},
'MacPerl::' => *{'::MacPerl::'},
'_</usr/share/perl/5.14/utf8_heavy.pl' =>
*{'::_</usr/share/perl/5.14/utf8_heavy.pl'},
'IO::' => *{'::IO::'},
'' => *{'::'},
'%' => *{'::%'},
'12' => *{'::12'},
'_' => *::_,
'+' => *{'::+'},
'Exporter::' => *{'::Exporter::'},
'Internals::' => *{'::Internals::'},
'_<Xapian.c' => *{'::_<Xapian.c'},
'STDIN' => *::STDIN,
'Pod::' => *{'::Pod::'},
'DB::' => *{'::DB::'},
'19' => *{'::19'},
'CGI::' => *{'::CGI::'},
'_</usr/lib/perl/5.14/auto/IO/IO.so' =>
*{'::_</usr/lib/perl/5.14/auto/IO/IO.so'},
'_<perl.c' => *{'::_<perl.c'},
'MultipartBuffer::' => *{'::MultipartBuffer::'},
'_<mro.c' => *{'::_<mro.c'},
'_<IO.c' => *{'::_<IO.c'},
'1' => *{'::1'},
'_<Fcntl.c' => *{'::_<Fcntl.c'},
'swig_runtime_data::' => *{'::swig_runtime_data::'},
'CORE::' => *{'::CORE::'},
'Search::' => *{'::Search::'},
'_<DynaLoader.c' => *{'::_<DynaLoader.c'},
'LWP::' => *{'::LWP::'},
'>' => *{'::>'},
'ENV' => *::ENV,
'Scalar::' => *{'::Scalar::'},
'fields::' => *{'::fields::'},
'_</usr/lib/perl5/auto/HTML/Parser/Parser.so' =>
*{'::_</usr/lib/perl5/auto/HTML/Parser/Parser.so'},
'_<Glob.c' => *{'::_<Glob.c'},
'Sys::' => *{'::Sys::'},
'HTML::' => *{'::HTML::'},
'B::' => *{'::B::'},
'Getopt::' => *{'::Getopt::'},
'Fh::' => *{'::Fh::'},
'POSIX::' => *{'::POSIX::'},
'VMS::' => *{'::VMS::'},
'Symbol::' => *{'::Symbol::'},
'PerlIO::' => *{'::PerlIO::'},
'' => *{'::'},
'.' => *{'::.'},
'' => *{'::'},
'13' => *{'::13'},
';' => *{'::;'},
'6' => *{'::6'},
'STDOUT' => *::STDOUT,
'_</usr/share/perl5/IkiWiki/Plugin/comments.pm' =>
*{'::_</usr/share/perl5/IkiWiki/Plugin/comments.pm'},
'3' => *{'::3'},
'9' => *{'::9'},
'Text::' => *{'::Text::'},
'' => *{'::'},
'encoding::' => *{'::encoding::'},
'_</usr/lib/perl/5.14/auto/List/Util/Util.so' =>
*{'::_</usr/lib/perl/5.14/auto/List/Util/Util.so'},
'_</usr/share/perl/5.14/Memoize.pm' =>
*{'::_</usr/share/perl/5.14/Memoize.pm'},
'_<Dumper.c' => *{'::_<Dumper.c'},
'_</usr/share/perl5/HTML/Template.pm' =>
*{'::_</usr/share/perl5/HTML/Template.pm'},
'bytes::' => *{'::bytes::'},
'4' => *{'::4'},
'VERSION' => *::VERSION,
'XML::' => *{'::XML::'}
};
syms.b
Description: chemical/molconn-z
signature.asc
Description: Digital signature

