Problem/Motivation

Three months after Drupal 8.0.0 comes out, security support for Drupal 6 ends. That means before we release 8.0.0, we need to ensure that it's possible for the 130,000+ sites still running Drupal 6 to move to a newer version.

Proposed resolution

We need one or both of the following:

  • A working upgrade path with no data loss from Drupal 6 to Drupal 7. (No critical "D7 upgrade path" issues).
  • A working Drupal 6 => Drupal 8 migration path (already in core) that's exposed through a UI available to site builders.

Remaining tasks

As of June 1 2015, the following are the outstanding issues blocking this meta from closing:

D6 to D7

D6 to D8

Comments

catch’s picture

Issue tags: +D8 upgrade path

Tagging.

catch’s picture

Title: [meta] Can't upgrade from Drupal 6 to Drupal 7 » [meta] Data loss in Drupal 6 to Drupal 7 upgrade path

Better title.

David_Rothstein’s picture

Here's a slightly different link:

https://drupal.org/project/issues/search/drupal?status[]=Open&priorities[]=1&categories[]=bug&version[]=7.x&issue_tags=D7+upgrade+path

This includes all "open" issues which might be useful in case we bump something to "maintainer needs more info" (don't want to lose it from the list in that case).

Someone should probably also check the non-critical upgrade issues to see if any of them deserve to be. Here's the full list:

https://drupal.org/project/issues/search/drupal?status[]=Open&categories[]=bug&version[]=7.x&issue_tags=D7+upgrade+path

Not too bad overall, but a couple of the non-critical ones look pretty scary.

catch’s picture

I've looked through a couple of times and there's a couple like #1211796: Drupal 6 -> 7 upgrade can fail due to unique indexes added in Drupal 6 which are fatal errors on upgrade (that one is only upgrading from Drupal 5-6-7 though), but couldn't see any which were data loss. Would be great to have another set of eyes on them since it's a little while since I did that.

webchick’s picture

Issue tags: +beta blocker

Tagging all critical D8 upgrade path issues as "beta blocker."

catch’s picture

Status: Active » Closed (duplicate)

Now that we've moved to migrate, this doesn't block a 6-8 upgrade path any more, so just going to close it.

Obviously the 7.x issues this references are still critical/major against 7.x, but once we have migrate I'd not expect anyone to go 6-7 update.php then 7-8 migrate.

xjm’s picture

Issue summary: View changes
Issue tags: -beta blocker
David_Rothstein’s picture

Title: [meta] Data loss in Drupal 6 to Drupal 7 upgrade path » [meta] Ensure that Drupal 6 sites have a functional upgrade path to either Drupal 7 or 8 before Drupal 6 loses security support
Status: Closed (duplicate) » Active

I think the reason this was closed doesn't agree with the idea (at least according to #2297213: [meta] Ensure that there are no critical Migrate issues before releasing the migration path) that critical issues in the D6-to-D8 migration path won't block a Drupal 8.0.0 release...

On top of that, there's only a short 3 month window where Drupal 6 and Drupal 8 are both supported, so someone who wanted to get their site off Drupal 6 core and have security support the whole way has a very short window to do a migration to Drupal 8. Especially because in practice it is likely that data loss bugs will be found in the migration path for a while after people start using it on real sites. (And this doesn't even consider the need to migrate data from contrib modules.)

So I think this issue is still valid (and presumably still critical) as long as we retitle it a bit. In practice, it is probably more likely to be achieved by fixing the remaining D6-to-D7 data loss issues, as originally envisioned.

The links in my above comment don't work anymore so here are new ones.

Critical D6-to-D7 upgrade issues:
https://www.drupal.org/project/issues/search/drupal?project_issue_follow...

All D6-to-D7 upgrade issues:
https://www.drupal.org/project/issues/search/drupal?project_issue_follow...

These would still need some triage to find anything that actually is actually critical and/or involves data loss. Previously, I remember there were 3 issues in the above critical list that seemed legitimate (all involving system_update_7061... yikes!). Two I wrote patches for years ago; they didn't get fully reviewed and tested until recently, and I just committed them both to Drupal 7 now.

This leaves one issue that looks like it probably is critical:

#1260938: d6 to d7 update fails on file duplicates '#7061 Integrity constraint violation'

(Note that given the nature of that issue, it likely affects the D6-to-D8 migration path too - I will leave a comment there.)

Other issues marked critical were bumped to critical more recently and I'm not sure they actually are:

#863318: Wrong sort order of aliases for different languages
#1239370: Module updates of new modules in core are not executed

So it's possible there's only one left? Although I haven't checked the ones not marked critical myself, I am at least somewhat hopeful that if it's actually critical someone would have marked it that way by now - when people err in the issue priority for these types of things they rarely get it wrong in that direction :)

xjm’s picture

Issue tags: -D8 upgrade path
YesCT’s picture

YesCT’s picture

ultimike’s picture

alexpott’s picture

Issue tags: +Triaged D8 critical

Discussed with @effulgentsia, @webchick and @xjm - this is critical for Drupal 8 because we need to have minor and bug fix upgrade path testing.

xjm’s picture

@alexpott, sounds like you were thinking of #2447573: [meta] Make sure 8.x - 8.x hook_update_N() testing is possible rather than this issue?

alexpott’s picture

@xjm you are correct - I have too many issues (in my head).

My gut reaction was that this should not be critical because this is about have a working d6 to d7 update path and the issues to fix that should be critical - but they would be filed against d7 so having this meta issue filed against d8 seems a sane way of tracking the dependency and making sure we don;t forget it.

Discussed with @effulgentsia, @webchick and @xjm in the critical triage call and everyone felt it should remain critical.

webchick’s picture

Issue summary: View changes

Fixing link in issue summary.

webchick’s picture

Looked into the sub-issues here today, which I assume are critical issues with the "D7 upgrade path" tag. If so, we're down to one: #1260938: d6 to d7 update fails on file duplicates '#7061 Integrity constraint violation' And truthfully, I'm not sure that last one is critical either, it sounds extremely edge-case.

As part of this exercise I also descoped #1239370: Module updates of new modules in core are not executed (comment #37 made it sound like this is an edge-case with a workaround, not "the system is unusable" situation), and #863318: Wrong sort order of aliases for different languages (no data loss, no security issue).

Comments/feedback? Would love to close this out. Particularly given that D6 sites are far more likely to move directly to D8 via the migration path vs. wrangle with D7 as an intermediate step, I'm no longer sure we should hold up D8's release on this.

catch’s picture

This issue as titled means that you need to be able to get from 6.x to either 7.x or 8.x before 8.0.0 comes out.

Particularly given that D6 sites are far more likely to move directly to D8 via the migration path vs. wrangle with D7 as an intermediate step, I'm no longer sure we should hold up D8's release on this.

We agreed not to hold up the 8.x release on the 6.x-8.x migration path being fully supported as well. We can do either or both, but not neither - so as a meta for either one of these being fully supported with no critical issues I think David was right to bump this issue back to critical.

I do think we can close it once the file issue is done though (since that's easy to run into just with a core install it doesn't feel like an edge case to me - it should be possible to get from 5-6-7 without fatal errors and you wouldn't even need a contrib module to end up in that situation - then you need manual intervention and SQL knowledge to resolve it).

webchick’s picture

Ok, I'm comfortable with that. Thanks!

dawehner’s picture

iantresman’s picture

@catch. I shall be waiting for a direct migration path from D6 to D8. It doesn't make sense to go via D7, especially when I have 50 sites to migrate/upgrade.

dawehner’s picture

@catch. I shall be waiting for a direct migration path from D6 to D8. It doesn't make sense to go via D7, especially when I have 50 sites to migrate/upgrade.

Well, one thing which makes sense is to upgrade to D7 in order to get security updates again.

iantresman’s picture

@dawehner

Well, one thing which makes sense is to upgrade to D7 in order to get security updates again.

I was hesistant because there doesn't appear to be an upgrade path from Views 6.x-2.x to Views 6.x-3.x. The Views project page mentions "an upgrade bug in 6.x-2.x that causes upgraded views to break".

dawehner’s picture

I was hesistant because there doesn't appear to be an upgrade path from Views 6.x-2.x to Views 6.x-3.x. The Views project page mentions "an upgrade bug in 6.x-2.x that causes upgraded views to break".

Well, this issue is also about core, and that problem is much less of a problem than missing security updates for core.

neclimdul’s picture

As someone also following this for the d6->d8 path, I'm not really concerned. We run other "d7 updates" in migrate_drupal so once we have the d6->d7 update written we can translate that. The logic is the important part.

webchick’s picture

Issue summary: View changes
Issue tags: -Needs issue summary update

Ok, that issue summary was horribly out of date, and mentioned things like thresholds, and the fact that migrate was only in contrib, and so on. :) Fixed up now.

Interestingly, the number of D6 sites out there has been about halved since this issue summary was originally written (250K => 130K). Presumably some portion of those are using the D6 => D7 upgrade path. :)

xjm’s picture

Issue summary: View changes
dawehner’s picture

I'm curious whether we really should close the issue, once the last critical subissue is done. (yeah is RTBC)
There are still a couple of major issues, which could kinda matter.

For sure moving this issue to major could certainly be done.

webchick’s picture

We could. What do you see as the advantage of having this meta open when the issues themselves are already tracked in 7.x?

dawehner’s picture

Fair question. I guess a major tracking issue for D7 issues won't add so much power to fixing them.

dawehner’s picture

Status: Active » Reviewed & tested by the community

Technically this issue is kinda RTBC :)

plach’s picture

Status: Reviewed & tested by the community » Active

No longer :(

webchick’s picture

An interesting fact is that two of the people previously having the issue at #1260938: d6 to d7 update fails on file duplicates '#7061 Integrity constraint violation' have commented that they can no longer find a D6 backup to test the patch with. This thus implies they've found other means, such as https://www.drupal.org/project/migrate_d2d, to get off of D6.

Therefore, does it still make sense to keep this issue, given there's obviously a workaround for people determined to get off D6?

webchick’s picture

Issue tags: -Triaged D8 critical

Removing the tag for now, so we can discuss this tomorrow on our triage call.

David_Rothstein’s picture

@webchick, see my comment at #1260938-97: d6 to d7 update fails on file duplicates '#7061 Integrity constraint violation' as well as earlier in this issue - my understanding of that bug is that anyone moving a Drupal 6 site to Drupal 7 (or probably Drupal 8 too) would face some version of it regardless of the method they use. And on the thread itself, the only (edit: almost all of the) workarounds people mentioned seemed to involve coding up custom SQL queries or PHP scripts to run on their site.

In the general case, I would say that upgrade vs. migration is not really apples to apples. To migrate a site from Drupal 6 to Drupal 7 requires a lot of technical skill, and a not-so-simple server setup. I think it's something that generally makes sense for the bigger sites but not small or medium-sized ones.

catch’s picture

Therefore, does it still make sense to keep this issue, given there's obviously a workaround for people determined to get off D6?

As David points out the 'workaround' is for people to use a contributed module that requires command line, or writing custom PHP/SQL to do a version of what the linked patch does prior to running the update.

I don't think either of those meet the definition of core supporting its own upgrade path between releases.

neclimdul’s picture

Yeah, I'm not sure it does either. Anyways, I was waiting for the d7 issue to resolve but it its back getting reivwe so here's a d6 -> d8 version of the file issue for those following along. #2504815: d6 to d8 migration throws integrity contraint warning with duplicate file paths. Working with the migrate team, turns out it might not be as complicated as the d7 version.

effulgentsia’s picture

Category: Bug report » Plan

Our other critical issues whose titles start with "[meta]" are categorized as plans, so making this one match.

xjm’s picture

#1260938: d6 to d7 update fails on file duplicates '#7061 Integrity constraint violation' is RTBC, with manual testing and everything!

I think we should mark this issue fixed once that is in, since #2485119: [meta] The Drupal 8.0.0-rc1 Release Checklist also includes checking for D7 upgrade path blockers in its scope.

Fabianx’s picture

+1 to #39

David_Rothstein’s picture

Note that that issue could still use testing on a real site that experienced the problem (that's a little different from manual testing, which it's had for a while) but if it can't get that at some point we'll have to commit it without that.

plach’s picture

Issue tags: +D8 Accelerate London
webchick’s picture

FWIW I did go on a ping-spree and also sent out a tweet to ~15K Drupal people trying desperately to find someone who had this situation in the "real world" last time that issue got bumped from RTBC a month or so ago. No bites. All of the people I could find who had the issue said either they worked around it long ago with one of the workarounds listed in the issue, or they used Migrate module.

David_Rothstein’s picture

Well, https://www.drupal.org/node/1260938#comment-10024961 was only a few weeks ago so I figure we'd at least see if that person comes back and tests. We have until the next Drupal 7 release to get this in (although we definitely shouldn't wait beyond that).

webchick’s picture

Thanks, missed that comment. Sent scorchio a polite "ahem" in his contact form. :)

effulgentsia’s picture

We have until the next Drupal 7 release to get this in (although we definitely shouldn't wait beyond that).

If that's true, why not commit now? And thereby add the (probably not many) people who run on 7.x tip rather than a tag to our tester pool? They wouldn't necessarily be testing it directly if they don't have the condition in their db, but they could be finding unexpected side effects.

xjm’s picture

I'd also suggest committing it now, but not because it will help many people find it... the chances of someone spontaneously deciding to upgrade a D6 site to D7 using 7.x-dev are pretty slim, I think, if they haven't responded already.

That said, though, this can't breaking existing D7 sites, and it would be really good to get it in sooner than August 5 because it will otherwise be an inactionable issue sitting in the queue right up to what could be the last beta or even the first release candidate of D8, which is not good for morale or for overall perception of D8.

So I'd strongly encourage committing it as soon as possible.

(Edited because I said the opposite of what I meant before.)

David_Rothstein’s picture

The problem is that once a patch is committed it tends to get ignored until after the next release. (Especially if it's related to the upgrade path; I wouldn't think too many people doing a D6->D7 upgrade are running on the latest 7.x-dev.)

But can't we just close this issue now? Especially given the above:

#2485119: [meta] The Drupal 8.0.0-rc1 Release Checklist also includes checking for D7 upgrade path blockers in its scope

If a problem comes up later this will be reopened anyway, so why not just close it now since we think we're done.

webchick’s picture

Hard to argue with that logic. :) I'll leave it for the sprinters to discuss tomorrow though.

catch’s picture

With that patch being very RTBC and the checklist item I think we can close this yeah.

Fabianx’s picture

+1 for closing this one down (with the HEAD on that I reviewed and RTBC'ed the D7 issue).

dawehner’s picture

All attending spinters (@berdir, @plach, @znerol, @pfrenssen) agree to close this down

catch’s picture

Status: Active » Fixed

OK, marking fixed!

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.