X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/569545968a71179e216ee9e4ec3b9246aa89b304..638cef639d97ff9065e8a05f1a7923c0d51d6de4:/doc/bugs/recentchangesdiff_crashes_on_commits_which_remove_a_lot_of_files.mdwn diff --git a/doc/bugs/recentchangesdiff_crashes_on_commits_which_remove_a_lot_of_files.mdwn b/doc/bugs/recentchangesdiff_crashes_on_commits_which_remove_a_lot_of_files.mdwn index 663e7d4fe..b3578f26a 100644 --- a/doc/bugs/recentchangesdiff_crashes_on_commits_which_remove_a_lot_of_files.mdwn +++ b/doc/bugs/recentchangesdiff_crashes_on_commits_which_remove_a_lot_of_files.mdwn @@ -1,9 +1,46 @@ -[[plugin/recentchangesdiff]] causes rendering to segfault if a commit removes a lot of contents. I removed close to 400 files, total size of about 950Kb in a single commit and now `ikiwiki` segfaults on refresh and rebuild: +[[plugins/recentchangesdiff]] causes rendering to segfault if a commit removes a lot of contents. I removed close to 400 files, total size of about 950Kb in a single commit and now `ikiwiki` segfaults on refresh and rebuild: [...] rendering recentchanges.mdwn [1] 5541 segmentation fault ikiwiki --verbose --setup ikiwiki.setup --refresh +If I disable the plugin, the segfault does not happen, but I have to remove `wc/recentchanges/*` or else it will crash just as well. + This is reproducible, but I cannot provide the source code. -If I disable the plugin, the segfault does not happen. +> Can you provide a sanitised version of the source code? I've tried +> ikiwiki on some files that are just large, and cannot reproduce any +> problems, so it must be something in the specific file. (A perl bug is +> also clearly involved here.) --[[Joey]] + +The tarball is at http://scratch.madduck.net/__tmp__recentchanges-segfault.tgz - unpack it in `/tmp` and `chdir()` to /tmp/cdt.taF18912, then run + + ikiwiki --setup ikiwiki.setup + # segfaults + git checkout HEAD^ + ikiwiki --setup ikiwiki.setup + # segfaults + rm -rf wc/recentchanges + ikiwiki --setup ikiwiki.setup + # works + +> I can reproduce it fine with that, thanks, and it's really looking like a +> pure perl bug, that is triggered by markdown. Here's a simpler test case: + + joey@kodama:/tmp>markdown < f + zsh: segmentation fault markdown < f + +> Where f is a 6.3 mb file that I +> extracted from ikiwiki's rendering pipeline. + +> It seems to be crashing at markdown line 345, which is a big nasty +> `s///` statement. + +> The good news: markdown version 1.0.2~b8-2 does not trigger this perl bug. +> I only see it with 1.0.1. (Bad news: Newer versions of markdown are +> slooooooow, especially on such large files.) + +> I'm calling this [[done]] since I've filed [[!debbug 470676]] on perl, and +> also have modified recentchangesdiff to only show the first 200 lines of +> diff, which should be enough without bloating the recentchanges into +> perl-crashing territory. --[[Joey]]