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::'}
        };

Attachment: syms.b
Description: chemical/molconn-z

Attachment: signature.asc
Description: Digital signature

Reply via email to