aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/barfs_on_recentchange_entry_for_a_change_removing_an_invalid_pagespec.mdwn
blob: 2f21d71c37d1009b24f703e595136a92f0af5030 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
I have a commit doing

    -\[[map pages="link(tag/<TMPL_VAR name>) and !papers/*"]]
    +\[[map pages="link(sourcepage()) and !papers/*"]]

ikiwiki now fails to compile the site, barfing:

    Use of uninitialized value in subroutine entry at /usr/share/perl5/IkiWiki.pm line 1288.
    ikiwiki.setup: Can't use string ("") as a subroutine ref while "strict refs" in use at /usr/share/perl5/IkiWiki.pm line 1288.
    BEGIN failed--compilation aborted at (eval 6) line 200.

after forcefully entering the Perl mode of thinking, I reduced this to line
1285 of IkiWiki.pm (2.53), which apparently returns `undef`:

    my $sub=pagespec_translate($spec);

Why does it even bother parsing the diffs of `recentchanges`?

I have not recompiled this site in ages, so I am not sure when this problem
was introduced, but it wasn't there when I worked on the site last about
a year ago in September 2007.

-- [[madduck]]

> I can't reproduce this problem. When I try, the generated
> `recentchanges/change_$sha1._change` file has the diff properly escaped,
> so that the map is not expanded at all.
> 
> I also tried de-escaping that, and still failed to reproduce any crash.
> The bogus pagespec simply expands to nothing. The line directly after the
> line you quoted checks for syntax errors in the pagespec translation
> eval and seems to be working fine:
> 
>	joey@kodama:~>perl -e 'use IkiWiki; my
>	$sub=IkiWiki::pagespec_translate("link(tag/<TMPL_VAR name>) and !papers/*"); print "caught failure:".$@'
>	caught failure:syntax error at (eval 14) line 1, near "|| &&"
> 
> Based on your line numbers, you are not running a current version of
> ikiwiki. (Doesn't quite seem to be version 2.53.x either) Try with a current
> version, and see if you can send me a source tree that can reproduce the
> problem? --[[Joey]]

Did not hear back, so calling this [[done]], unless I hear differently.
--[[Joey]]

Just in case someone else sees this same error message:
I was able to reproduce this by having an incomplete (not upgraded) rcs backend that didn't provide rcs_commit_staged() when attempting to submit a blog comment.
--[[JeremyReed]]