new patch
[ikiwiki] / doc / bugs / undefined_value_as_a_HASH_reference.mdwn
1 Hello,
2
3 does anyone have an idea why I see the following error when I run websetup (Setup button in Preferences)?
4
5     Error: Can't use an undefined value as a HASH reference at /usr/share/perl5/IkiWiki/Plugin/websetup.pm line 82, line 97.
6
7 Maybe, related to this is also
8
9     $ ikiwiki --setup /etc/ikiwiki/auto-blog.setup
10     What will the blog be named? tmpblog
11     What revision control system to use? git
12     What wiki user (or openid) will be admin? wsh
13
14
15     Setting up tmpblog ...
16     Importing /home/wsh/tmpblog into git
17     Initialized empty shared Git repository in /home/wsh/tmpblog.git/
18     Initialized empty Git repository in /home/wsh/tmpblog/.git/
19     [master (root-commit) d6847e1] initial commit
20      8 files changed, 48 insertions(+)
21      create mode 100644 .gitignore
22      create mode 100644 archives.mdwn
23      create mode 100644 comments.mdwn
24      create mode 100644 index.mdwn
25      create mode 100644 posts.mdwn
26      create mode 100644 posts/first_post.mdwn
27      create mode 100644 sidebar.mdwn
28      create mode 100644 tags.mdwn
29     Counting objects: 11, done.
30     Delta compression using up to 4 threads.
31     Compressing objects: 100% (9/9), done.
32     Writing objects: 100% (11/11), 1.53 KiB, done.
33     Total 11 (delta 0), reused 0 (delta 0)
34     Unpacking objects: 100% (11/11), done.
35     To /home/wsh/tmpblog.git
36      * [new branch]      master -> master
37     Directory /home/wsh/tmpblog is now a clone of git repository /home/wsh/tmpblog.git
38     Reference found where even-sized list expected at /usr/share/perl5/IkiWiki/Setup.pm line 177, <GEN4> line 97.
39     Reference found where even-sized list expected at /usr/share/perl5/IkiWiki/Setup.pm line 224, <GEN4> line 97.
40     Use of uninitialized value $section in hash element at /usr/share/perl5/IkiWiki/Setup.pm line 226, <GEN4> line 97.
41     Use of uninitialized value $section in hash element at /usr/share/perl5/IkiWiki/Setup.pm line 227, <GEN4> line 97.
42     Use of uninitialized value $section in concatenation (.) or string at /usr/share/perl5/IkiWiki/Setup.pm line 233, <GEN4> line 97.
43     /etc/ikiwiki/auto-blog.setup: Can't use an undefined value as a HASH reference at /usr/share/perl5/IkiWiki/Setup.pm line 252, <GEN4> line 97.
44
45     usage: ikiwiki [options] source dest
46            ikiwiki --setup configfile
47
48 I'm on Debian unstable.
49
50 Thanks,
51 -Michal
52
53 > Some plugin has a broken getsetup hook, and is feeding a corrupted setup list in. Both the websetup and the auto.setup files cause all plugins to be loaded and all their setup to be available. 
54
55 > This command will help you find the plugin. Here it prints some noise around the rst plugin, for unrelated reasons,
56 > but what you're looking for is the plugin printed before the "even sized list" message.
57
58 <pre>
59 perl -le 'use warnings; use strict; use Data::Dumper; use IkiWiki; %config=IkiWiki::defaultconfig(); use IkiWiki::Setup; my @s=IkiWiki::Setup::getsetup(); foreach my $pair (@s) { print "plugin ".$pair->[0]; my $setup=$pair->[1]; if ($pair->[0] eq "rst") { print Dumper($setup)} my %s=@{$setup} }'
60 </pre>
61
62 > I was able to replicate this by making a plugin's getsetup hook return a list reference, rather than a list, 
63 > and have put in a guard against that sort of thing.
64 >  --[[Joey]]
65
66 >> Thanks. Your command didn't helped me, but with trial and error approach I found that the victim an old version asciidoc plugin. For some reason, asciidoc was never listed in the output of the command. --[[wentasah]]  
67
68 >>> Ok. My fix should prevent the problem, so [[done]] --[[Joey]]