Closed (won't fix)
Project:
EVA: Entity Views Attachment
Version:
7.x-1.x-dev
Component:
Code
Priority:
Normal
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
20 Aug 2012 at 17:30 UTC
Updated:
25 Feb 2014 at 10:35 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #1
mkadin commentedI'm guessing this infinite loop must be springing out of an EVA view attached to an entity that displays that same entity. In other words, let's say I have an EVA attached to a node of type 'Article' that shows other 'Articles' (and potentially the same original article). Then the universe explodes.
Is that what you have going on?
Comment #2
aaronbaumanThat sounds more than plausible -- i'll investigate that route and see if I can put together a patch to short-circuit
Comment #3
aaronbaumanOK, here's a kludge on top of a hack that resolved the issue for me.
Using the example that you provided, I actually am relating Articles to other Articles, and I need EVA to accommodate that.
Since this quick fix seems to address the problem, I haven't investigated into why Display Suite seems to be exposing the issue, or whether this issue is actually limited to Display Suite.
Comment #4
mkadin commentedWhat result does this give you? Do you get 3 rendered nodes and does it go no further?
Comment #5
aaronbaumanWell, no, I get the expected results.
In the case i just tested, i have a nodereference field on "article" node type.
I use this to relate 5 other articles to a new node, and the EVA view renders all 5 nodes.
The weird thing is that this issue was appearing on the node/add form, not just the rendered page.
But, now that you mention it, if we get to the end of the hook_view_alter(), we are safe to decrement the recursion flag.
updated patch attached.
Comment #6
mkadin commentedDo the referenced nodes get displayed with a view mode that shows their own EVA view?
Comment #7
aaronbaumanno, the attached EVA view is a fields display - it only shows a node title and link.
Comment #8
mkadin commentedOh that's bad. I'm assuming you have the Node Reference display hidden on the 'Manage Display' tab?
Comment #9
aaronbaumanExactly - I'm using the EVA to display the nodereference'ed nodes, and the fields are hidden via manage display.
Comment #10
mkadin commentedI just tried to reproduce this error for the first time but wasn't able to. Can anyone provide some steps to reproduce this from a fresh drupal install?
Comment #11
mkadin commentedComment #12
Maxime Gilbert commentedThis issue is maybe related to http://drupal.org/node/1264386#comment-5017214
Comment #13
mkadin commentedCertainly could be...I've tried twice to reproduce this from a fresh drupal install and have been unsuccessful...if someone who's experiencing this issue can provide steps, we can tackle this beast.
Comment #14
mkadin commentedIf someone can reproduce this, please open it up again with some clear steps to make it happen.
Comment #15
charlietoleary commentedThis may be a duplicate of this issue: #1296610: Prevent disabled fields from being rendered (performance)
The EVA psuedo fields are enabled on all displays by default, so if you have a display suite layout selected, the fields display settings are not respected in the call to field_extra_fields_get_display(): and will generate an infinite loop of EVA views.
Comment #16
radimklaskaSteps to reproduce:
Tadaaa! :)
Now you can't access front page because there are articles with eva fields causing the issue. (otherwise check /admin/structure/types/manage/article/display and show * - EVA Field)
If you want to make front page accessable again, set "Show: Fields" under "Format" in view settings. Note that "Show: Content" also invokes DS and triggers the issue.
Comment #17
tim.plunkettThis is due to #1296596: Extra fields reported "visible" at first, while placed in "disabled" region, basically what #15 said.
Comment #18
radimklaskaOh, thanks.
So, based on https://drupal.org/node/1296596#comment-6455632 I think we can close this issue as won't fix and work on the underlying problem here: #1256368: Add 'visible' key to hook_field_extra_fields()