Closed (duplicate)
Project:
Drupal core
Version:
8.4.x-dev
Component:
content_translation.module
Priority:
Critical
Category:
Bug report
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
11 Dec 2016 at 16:25 UTC
Updated:
21 Sep 2017 at 20:08 UTC
Jump to comment: Most recent
Comments
Comment #2
cilefen commentedIs this similar to #2802403: Combination of language negotiation and path aliasing can cause a corrupted route cache, 404s?
Comment #3
pguillard commentedI looks similar, but this not the same diagnostic : my page has no extra fields (Default content type of type "page").
Here is what I get in cache_data before and after clear cache :
Before clear caches (/node/2 gives 404) :
After clear caches (/node/2 gives the node page) :
Comment #4
derheap commentedWe also see this in a live site for a university from time to time.
Clearing the cache fixes the problem.
At least I have found an issue about this issue.
Comment #5
cgmonroe commentedI have seen this regularly on our multilingual site. As people have said, it seems to be related to specific pages.
I have 4 or 5 of them being monitored by pingdom that alert me if they 404. Clearing Drupal cache and Varnish corrects the problem.
I thought it might be memcache related but because of some problems with memcache crashing, we switched to using the DB for caching. Still get the problem.
It also seems to be cache time related. Initially our site had a long cache time. Then we started seeing 404s and other odd artifacts (like the German main menu which was fine on the DE home page, but would show up with English URLs on a DE product page... the menu labels were in German, but the links were to the English pages. So we set the cache time to 15 minutes and the monitored problems dropped to next to nothing.
When we switched to DB caching from Memcache, we raised the cache time to 1 hour. Now we are seeing problems occur again.
The Apache access logs don't show anything like high load or multiple accesses. Just one access it's fine, the the next it's a 404.
FYI - Running current core (8.3.2 as of this writing) with current versions of contrib modules on Acquia Cloud servers.
Comment #6
Mike Dodd commentedI to am seeing this, did anyone get anywhere.
Can reproduce with cache time set to 1 hour problem is with and without memcache, only looks to be a single node and only seems to effect the default language.
Comment #7
heyehren commentedI seem to have the same issue. When i clear the cache, somewhere on the website a page is going to get the 'page not found' error. When i clear the cache again the error is gone. This affects different pages every time.
Core cache is activated and set to 15 min. I am running a multilingual site on the latest Drupal 8 core. Only the default language seems to be affected.
What i found so far is that when clearing the cache i see a peak in the database requests which sometimes exceed my I/O recourse limits. When this happens the host (in this case GoDaddy) limits the resources on my shared hosting account for some time.
I'm now optimizing the site and adding opcache and memcache to see if this will fix the issue.
Comment #8
michaelkoehne commented@kleinermann: This won't fix the problem.
We've the same issue. Multilingual page PHP 7.0.20 with APC and OPC. 256M Memory. Drupal 8.3.2.
I've tested it - with activated cache (1h) and also with deactivated cache - the issue still remains.
Comment #9
heyehren commented@michaelkoehne. Thanks for letting me know. For me this didn't work either. The only way for me to prevent the issue at the moment is to use
drush crto clear the cache instead of clearing it through the Drupal backend.Comment #10
cilefen commentedI am raising this to major.
Comment #11
gagarine commentedI have a very similar bug on Drupal 8.5. It seem that translating node make them sometimes not reachable anymore. Clearing the cache fix it.
I have autopath and URL alias (translatable).
Site web is in DE,FR, EN. Default language English, but fall back language is french.
Comment #12
gagarine commentedThis is critical user and admin can't access the content. The system become unusable from time to time without a cache clear.
Comment #13
catchNote that #2879512: Path aliases can be "forgotten" after a cache rebuild due to race condition in CacheCollector was fixed recently, please make sure if you've reported this issue, that you can still reproduce it in a version with that fix applied.
Additionally, while #2802403: Combination of language negotiation and path aliasing can cause a corrupted route cache, 404s might be a different issue to this one, they're very similar so consider trying patches on that issue, the link field may not be the only way to run into that one.
Comment #14
heyehren commentedAfter a few weeks i still get the Page Not Found error on random pages.
It doesn't happen on the translations, only on the default language. The strange thing is that i deactivated the cache by setting 'Page cache maximum age' to 'no caching'. CSS and JavaScript aggregation is still active though. It makes no difference. When i clear the cache (drush cr) the pages work again.
This time i have even checked all 50 pages on the website directly after clearing the cache to see if the error occurs straight away. But all pages are initially working. Only after some time (the earliest i saw was about 30 min) the errors start popping up.
It also only happens on the live server. My local test environment works fine, with or without cache activated.
I don't understand enough about the Drupal 8 caching system to have an opinion on this.
I hope someone else can help with the issue.
Comment #15
catchThe page cache has nothing to do with this, it's corruption of the route cache (see comment #3 for an example).
@kleinermann please confirm the following:
1. Are you using the link field type?
2. What method of language negotiation are you using?
Moving back to 8.4.x because we try to fix bugs in the lowest version affected where possible.
Comment #16
maacl commentedSorry, wrong Post. Comment was ment for https://www.drupal.org/node/2802403.
Comment #17
timcosgrove commentedJust to add a voice here: we run a D8 site in 29 languages, and we were seeing this issue. We run US English as our default, serve that from /en/foo aliases, and redirect from /foo aliases to /{prefix}/foo aliases according to language negotiation rules.
We were seeing similar behavior, where in some cases /foo aliases were cached as 404s when the intended destination entity was not translated into all languages, and an untranslated redirect request (i.e. /en-gb/foo) was requested and cached.
We implemented the patch from https://www.drupal.org/node/2802403#comment-12217386 and this appears to have successfully resolved our issues. Of note, for this thread: some of the aliases in question were not contained in link fields anywhere.
https://www.drupal.org/node/2802403 appears to be focused on link fields as that was where the bug was first seen, but the issue does ultimately seem to be with bad route caching, as Catch has said
.
I would probably recommend https://www.drupal.org/node/2834638 (this issue) be closed as a duplicate of https://www.drupal.org/node/2802403 and the title of https://www.drupal.org/node/2802403 modified to reflect that it affects more than link field data. I would defer to Catch here.
Comment #18
catchAgreed with #17, marking this as duplicate of the other issue which has more information and patches.