I've been trying to upgrade a medium sized Drupal 6 website to Drupal 7 but the update procedure never comes past step 31 of 126 (It's updating the system module). It just stays there with no sign of progress.

- How can I do troubleshoot this? I am not getting any error or warning messages.
- What's happens at step 31?
- Or should I just be enormously patient and have it run over night? It's already sat at step 31 for four hours.

Any pointers would be much appreciated.

Comments

cnolle’s picture

Still no luck getting any further than step 31. Could this have something to do with the new time zone settings?

If I try to run the update again on the same database I get the following warning:

Some user time zones have been emptied and need to be set to the correct values. Use the new time zone options to choose whether to remind users at login to set the correct time zone.

The website I am attempting to upgrade originates in Drupal 5.

cnolle’s picture

I should note that the site was first successfully upgraded to Drupal 6.17 without any issues.

ksenzee’s picture

First, are you running the latest version of HEAD?

Second, there's an existing issue with a system module update at #895176: Upgrade fails because of integrity constraint violation in system_update_7060. Would you apply the patch at http://drupal.org/files/issues/895176-24-fix-system-7060_0.patch and see if the update completes?

Third, if that doesn't work, would it be possible to upload a database dump? The problem is that step 31 will be different for different combinations of installed modules, so there's no way of knowing where your upgrade is failing without having a database to look at.

mr.baileys’s picture

Status: Active » Postponed (maintainer needs more info)

In addition to the steps outlined by ksenzee in #3, you will need to upgrade your D6 site to to most recent minor release (currently 6.19) before attempting a major upgrade (see http://drupal.org/upgrade).

cnolle’s picture

Hey,

Tried the following:

- Upgraded to 6.19 and tried to upgrade, no luck.
- Updated D7 to the latest head, same issue.
- Applying to above patch gives me a bunch of errors, so not sure that the patch is fully working:

--

Hunk #1 FAILED at 44.
1 out of 1 hunk FAILED -- saving rejects to file field_sql_storage.install.rej
patching file simpletest.info
Hunk #1 FAILED at 42.
1 out of 1 hunk FAILED -- saving rejects to file simpletest.info.rej
patching file drupal-6.upload.database.php
patching file upgrade.upload.test
patching file system.install
Hunk #1 FAILED at 2593.
Hunk #2 FAILED at 2728.
Hunk #3 FAILED at 2773.
Hunk #4 FAILED at 2804.
4 out of 4 hunks FAILED -- saving rejects to file system.install.rej

--

All optional modules disabled (not uninstalled though), all optional disabled too.

ksenzee’s picture

The patch applies cleanly to D7 HEAD, so something must be wrong with your install. You might try a fresh checkout.

cnolle’s picture

StatusFileSize
new29.33 KB

I've tried upgrading from the latest D7 HEAD (the patch listed above was applied to D7 HEAD yesterday) but I am still getting a progress bar stuck around the 30 mark with no error messages. The database is 24 MB, so not massive. I have attached a list of the modules that was in use in D6 (6.19). All of these were disabled prior to the export of the database. Just to be even safer I also disabled all optional modules.

cnolle’s picture

I should add if I interrupt and restart the update I get the following warning:

Some user time zones have been emptied and need to be set to the correct values. Use the new time zone options to choose whether to remind users at login to set the correct time zone.

int’s picture

cnolle you have to test again with the today Drupal7-dev with the original D6 database.

Since lots of upgrade fixes here commited yesterday/today.

Note: the tar bals of this moment maybe aren't refresh with the today commit.

cnolle’s picture

Int,

The version of D7 that I was testing with was checked out with CVS a couple of hours ago. I don't think D7 comes any fresher.

ksenzee’s picture

The timezone message just means that user_update_7002 finished successfully, so we know it isn't that.

Some things to try:

1) Uninstall (not just disable) all contrib modules, run the update, and see what happens.
2) When you stop the update and restart it from the beginning, expand the list of pending updates and paste that in here.
3) Can you arrange to send a copy of your database to me (or another core dev) privately? I am even happy to sign an NDA or whatever.

cnolle’s picture

Hey,

I tried another update. I uninstalled all contrib modules, still the same issue.

Just checking regarding the database but should be able to email it over.

When I restart the update this is the list of pending updates:

--

system module

7004 - Remove hardcoded numeric deltas from all blocks in core.
7005 - Remove throttle columns and variables.
7007 - Convert to new method of storing permissions. This update is in system.install rather than user.install so that all modules can use the updated permission scheme during their updates.
7009 - Rename the variable for primary links.
7011 - Split the 'bypass node access' permission from 'administer nodes'.
7013 - Convert default time zone offset to default time zone name.
7015 - Change the user logout path.
7016 - Remove custom datatype _unsigned in PostgreSQL.
7017 - Change the theme setting 'toggle_node_info' into a per content type variable.
7018 - Shorten the {system}.type column and modify indexes.
7020 - Enable field module.
7021 - Change the PHP for settings permission.
7024 - Add the substr_index() function to PostgreSQL. Note: this should go into the driver itself, but we have no support for driver-specific updates yet.
7027 - Enable field type modules.
7029 - Add new 'view own unpublished content' permission for authenticated users. Preserves legacy behavior from Drupal 6.x.
7032 - Alter field hostname to identifier in the {flood} table.
7033 - Move CACHE_AGGRESSIVE to CACHE_NORMAL.
7034 - Migrate the file_downloads setting and create the new {file_managed} table.
7036 - Split the 'access site in maintenance mode' permission from 'administer site configuration'.
7042 - Upgrade the {url_alias} table and create a cache bin for path aliases.
7044 - Drop the actions_aid table.
7045 - Add expiration field to the {flood} table.
7046 - Switch from the Minnelli theme if it is the default or admin theme.
7047 - Normalize the front page path variable.
7048 - Convert path languages from the empty string to LANGUAGE_NONE.
7049 - Rename 'Default' profile to 'Standard.'
7050 - Change {batch}.id column from serial to regular int.
7051 - make the IP field IPv6 compatible
7052 - Rename file to include_file in {menu_router} table.
7053 - Upgrade standard blocks and menus.
7054 - Remove {cache_}.headers columns.
7055 - Converts fields that store serialized variables from text to blob.
7057 - Increase the size of session-ids.
7058 - Remove cron semaphore variable.
7059 - Create the {file_usage} table.
7060 - Create fields in preparation for migrating upload.module to file.module.
7061 - Migrate upload.module data to the newly created file field.
7062 - Replace 'system_list' index with 'bootstrap' index on {system}.
comment module

7005 - Create the comment_body field.
7006 - Migrate data from the comment field to field storage.
filter module

7005 - Integrate text formats with the user permissions system. This function converts text format role assignments to use the new text format permissions introduced in Drupal 7, creates a fallback (plain text) format that is available to all users, and explicitly sets the text format in cases that used to rely on a single site-wide default.
7008 - Grant usage of all text formats to user roles having the 'administer filters' permission.
7009 - Converts fields that store serialized variables from text to blob.
node module

7006 - Convert body and teaser from node properties to fields, and migrate statuscommentpromote and sticky columns to the {node_revision} table.
7007 - Remove column min_word_count.
7008 - Split the 'administer nodes' permission from 'access content overview'.
7009 - Convert node languages from the empty string to LANGUAGE_NONE.
7010 - Add the {block_node_type} table.
taxonomy module

7002 - Add {vocabulary}.machine_name column.
7003 - Remove the related terms setting from vocabularies. This setting has not been used since Drupal 6. The {taxonomy_relations} table itself is retained to allow for data to be upgraded.
7004 - Move taxonomy vocabulary associations for nodes to fields and field instances.
7005 - Migrate {taxonomy_term_node} table to field storage. @todo: This function can possibly be made much faster by wrapping a transaction around all the inserts.
7006 - Add {taxonomy_term_data}.format column.
7007 - Add index on {taxonomy_term_data}.name column to speed up taxonomy_get_term_by_name().
7008 - Change the weight columns to normal int.
user module

7006 - Add module data to {role_permission}.
7007 - Add a weight column to user roles.
7008 - If 'user_register' variable was unset in Drupal 6, set it to be the same as the Drupal 6 default setting.
7009 - Converts fields that store serialized variables from text to blob.
7010 - Update the {user}.signature_format column.
7011 - Updates email templates to use new tokens. This function upgrades customized email templates from the old !token format to the new core tokens format. Additionally, in Drupal 7 we no longer e-mail plain text passwords to users, and there is no token for a plain text password in the new token system. Therefore, it also modifies any saved templates using the old '!password' token such that the token is removed, and displays a warning to users that they may need to go and modify the wording of their templates.
7012 - Add the user's pictures to the {file_managed} table and make them managed files.
7013 - Add user module file usage entries.
7014 - Rename the 'post comments without approval' permission. In Drupal 7, this permission has been renamed to 'skip comment approval'.

ksenzee’s picture

Hmmm. I'm guessing the next update it's trying to do is node_update_7006, which converts nodes to use fields. If we have a problem there I would *love* to know about it before beta (which could happen any time now). If you get permission to email the database that would be super. Email is my username at gmail.

ksenzee’s picture

Title: Update stops at 31 of 126 » system_update_7004 goes into an infinite loop
Component: update system » system.module
Priority: Normal » Critical
Status: Postponed (maintainer needs more info) » Active

cnolle kindly emailed me the database in question, and the problem is that system_update_7004 never finishes. I haven't yet figured out what's causing it, but I promise I will soon.

int’s picture

Issue tags: +beta blocker
grendzy’s picture

Issue tags: +D7 upgrade path
ksenzee’s picture

Component: system.module » update system
Status: Active » Needs review
StatusFileSize
new472 bytes

One-line fix. The problem was in the query that fetched a batch of users to change their block visibility settings. We weren't ordering by uid. That's fine if your users happen to be in the table in sequential order, but if they aren't, the "last_user_processed" sandbox variable means nothing, and hilarity ensues.

damien tournoud’s picture

Status: Needs review » Reviewed & tested by the community

Makes total sense.

Status: Reviewed & tested by the community » Needs work

The last submitted patch, 922370-17-system-update-7004.patch, failed testing.

ksenzee’s picture

Status: Needs work » Needs review
StatusFileSize
new474 bytes

Pretty bad when you make a dumb mistake in a one-line patch. :)

damien tournoud’s picture

Status: Needs review » Reviewed & tested by the community
webchick’s picture

Status: Reviewed & tested by the community » Fixed

Yay! Committed to HEAD! :D

1 down, 2 to go...

Status: Fixed » Closed (fixed)
Issue tags: -D7 upgrade path, -beta blocker

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