make rendering limits catch recursions only
Ticket
+issues
Currently rendering limits count all inclusions, whether or not they're recursive.
Might also be possible to optimize such that non-relative inclusions on a form are only rendered once (though for permissions reasons they can't be cached with the form...)
I think this may have been fixed in Gerry's refactor already. There are two things to test:
- that recursive inclusions do get caught, and
- that lots of same-level inclusions don't cause problems.
dude, I totally just broke my rule about examples. friggin hypocrite.
--Ethan McCutchen.....Tue Dec 14 10:34:10 -0800 2010
"I am inside myself" fails in the example at the second level, might be okay to let it go 3 or 4.
Inconsistently(?), including the example card on itself does go for a few levels, and then oddly gives an "Oops!" message about "John Abbe+Image" even though that's not what's recursing.
None of this is broken per se, but could be better. Fix for 1.6? Ticket separately...?
--John Abbe.....Tue Dec 21 16:52:32 -0800 2010
Looks to me like "I am inside myself" goes about ten levels before failing. You just couldn't tell because you didn't show anything but the recursed content :)
I suspect there may be a ticket in here somewhere, but it's hard to see what the problem is so far. I would have no idea what to work on. Wonder if there's a good way to flag it without ticketing it? If not, I guess we go with a ticket.
--Ethan McCutchen.....Sun Jan 09 13:04:39 -0800 2011
I'm seeing different result / error messages now on the example than I was before. Maybe more work has been done on this since this ticket was created? Which, by the way, was via Oops! I tried more than the maximum number with your okay. If it handles a chunk of the problem we can close it and ticket remaining issues. I'll test more thoroughly when it's officially moved to testing...
--John Abbe.....Sun Jan 09 14:31:32 -0800 2011
sorry, yeah, that was unclear. This current ticket is definitely needed and I *think* what we've got is getting close to addressing it. You were pointing out some weirdness yet (with the image thing), which seems like potentially another ticket, but I don't know if I get what's happening yet enough to even know how to name the bugger. I'm hoping we can get a little better handle on the behavior -- I might need to have another look at the code.
I did change the content of the "I am inside myself" card, but that's the only thing that I know has changed. we haven't deployed any new code recently, I'm pretty sure.
--Ethan McCutchen.....Sun Jan 09 16:37:04 -0800 2011
ok now we've got new code. I didn't actually change anything related to this except for the error itself, but I now think I understand what's happening.
The check is not examining recursion, per se, but just depth. When it gets to its maximum depth (which I set to 8 down from 10), any inclusion on that level gets the "too deep" error.
I suspect that we'd prefer that only the first inclusion of that level get the error. This is a little trickier and probably an edge concern, but if you think something of the sort is worth ticketing, at least I think we can come up with a decent name now :)
--Ethan McCutchen.....Mon Jan 10 16:55:58 -0800 2011
Technically in testing, but wait 'til refactor inclusion processing is done to fully test this.
--John Abbe.....Mon Jan 24 11:26:55 -0800 2011
Great!
--John Abbe.....Mon Jan 31 12:27:25 -0800 2011