make rendering limits catch recursions only

Ticket

+commit
 

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:

 

  1. that recursive inclusions do get caught, and
  2. 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