X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/a235781b3d83fb2f1513787aa3631f020335acc6..8a8277faf8a084694745cfd20906733df46b4ff9:/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 ea473ac75..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,4 +1,4 @@ -[[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 @@ -12,3 +12,35 @@ This is reproducible, but I cannot provide the source code. > 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]]