The class does multiple cache sets with array('field_info' => TRUE), but that should just be array('field_info'). Somehow this causes those cache entries to never be valid, so there are no cache hits and the information is rebuild every time it is requested.

Discovered in #1810178: field_info_extra_fields() is not language-aware, may return wrong values.

We have written multiple tests already recently that use a new memory counter backend to check the set/get calls within a test. We could do the same here. See #1969814: system_list() does a cache call on every function call, for example. Although I'm not sure if the memory backend behaves the same way as the database... but that would be a bug there, in either of those backends.

CommentFileSizeAuthor
#3 1971418-3.patch2.75 KBswentel
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

swentel’s picture

Issue tags: +Field API

Tagging - will have a look at this evening - unless someone beats me to it.

swentel’s picture

Assigned: Unassigned » swentel

Will look at it this evening, unless someone beats me to it.

swentel’s picture

Status: Active » Needs review
FileSize
2.75 KB

Changes only in the class, the thing is, I don't see any differences - looking at devel query log now on /node - not exactly sure what I miss. Need to work now, will check again this evening.

swentel’s picture

Assigned: swentel » Unassigned

Unassinging for now

Berdir’s picture

Status: Needs review » Closed (won't fix)

Looks like was bogus, it's actually working as designed as the page always clears the cache.