Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
I get this error after clicking "Install Update", and the files have been downloaded:
Error: Call to undefined method DatabaseConnection_mysql::utf8mb4IsConfigurable() in _system_check_db_utf8mb4_requirements() (line 549 of /app/modules/system/system.install).
If I refresh the page with F5, it continues to the "Drupal database update" page, and I can complete the update from Drupal 7.40 to 7.64 by clicking "Continue".
My process with Lando:
wget https://ftp-origin.drupal.org/files/projects/drupal-7.40.tar.gz
tar -xvzf drupal-7.40.tar.gz && rm drupal-7.40.tar.gz
cd drupal-7.40
lando init --recipe drupal7 --webroot . --name updates
lando start
drush site-install --db-url=mysql://drupal7:drupal7@database/drupal7 --account-pass=content -y
# get core_update module and log in to web site
drush dl core_update && drush en core_update -y
drush uli -l http://updates.lndo.site
Comment | File | Size | Author |
---|---|---|---|
#8 | db-error-undefined-method.png | 33.25 KB | ressa |
Comments
Comment #2
ressa CreditAttribution: ressa at Ardea commentedComment #3
ressa CreditAttribution: ressa at Ardea commentedComment #4
ressa CreditAttribution: ressa at Ardea commentedComment #5
mbayntonSo to clarify, are you saying that you're on a page with a progress bar that says it's downloaded the latest version, and then you immediately get an error message originating from the file /app/modules/system/system.install, before you've been redirected to the database update script (/update.php)?
That seems hard for me to reconcile with the flow of control: system.install is a part of Drupal core that is of course only run during installation and database schema updates, and no part of Drupal core is invoked between the download of the latest version and the redirect to /update.php.
Comment #6
mbayntonComment #7
mbayntonI ask because if your report is correct, then I definitely need to look into that, but if you've actually been redirected to /update.php or if the error appeared in logs that were created during the site install, then it's a Drupal thing that I can't do anything about. Did it just white-screen-of-death upon the 1st click of the update button, and you pulled the message from a logfile?
Comment #8
ressa CreditAttribution: ressa at Ardea commentedIt happens right after the progress bar, but on the /update.php page and with the styling of the update theme. It was printed to the screen, as you can see in this image:
Also, I can't see any errors in the Drupal log.
Comment #9
ressa CreditAttribution: ressa at Ardea commentedComment #10
mbayntonGotcha. This looks to be a problem with core files being inconsistent with each other, at least as the interpreter sees them. Especially given that waiting a few seconds and hitting f5 fixes it makes me strongly suspect there's some sort of filesystem (your setup involves nfs as I recall?) or opcocde caching that's responsible and the core_update module actually did its job correctly, but if I'm wrong that'd be a really bad issue and plus if it happens for you it'll happen for others, so I'll see if I can replicate and mitigate it.
Comment #11
mbayntonIf you still have this install on disk, can you try running this, from the same working directory as the wget at the start of the commands in the issue summary, and toss the output in here? This'll verify the integrity of the files in your drupal-7.40 directory.
The only differences should be like settings.php, all the actual code files should jive.
Comment #12
ressa CreditAttribution: ressa at Ardea commentedI use Ubuntu 18.04, but have switched from Virtualbox + Vagrant to the Docker-based Lando, which I think is one of the most popular platforms for Drupal development. Understandably, it's much easier and faster to use than Virtualbox. Here is a great article on how to get started: https://colorfield.be/blog/drupal-and-docker-the-easy-way-with-lando
Here is a diff between the two directories:
Comment #13
mbayntonThanks so much for providing the diff! Looks fine to me so that really helps bisect the problem.
One other question, are you able to reproduce this? I'll play around with the opcache php.ini settings and see if I can create this or similar issues that way, but if it happens consistently for you I'll send patches your way as well.
Comment #14
ressa CreditAttribution: ressa at Ardea commentedYou're welcome! I am glad that it helps a little.
The error has occurred every time I have done the process (4 or 5 times) so it seems to be pretty consistent. I have just run through it once again, with the same result. Have you tried Lando? I ask because so many people use it now, that it might be worth for you to kick the tires of Core update with Lando yourself. I wouldn't be surprised if it ends up first in The 2019 Drupal Local Development Survey.
But feel free to send patches my way, I will test them as soon as I can.
Comment #16
mbayntonI haven't used Lando, but I have been able to reproduce the specific error with a slower opcache.revalidate_freq. I put in and tested the fix for that, worked for me. Would you be willing to clone the latest version from git and see if that fixes it for you too?
Comment #17
ressa CreditAttribution: ressa at Ardea commentedI just tried updating with the latest from git, and the update now goes through without any errors, thanks for fixing it!
Comment #18
mbayntonMost excellent! Really appreciate your report and testing.
Comment #19
ressa CreditAttribution: ressa at Ardea commentedNo problem, I am only glad I could help. Thank you for building Core Update!
Comment #20
mbaynton