Steps to reproduce:
1) Install D7 site
2) enable locale module
3) add second language
4) dump database and try to run D8 upgrade
Fatal error: Class 'Drupal\locale\StringDatabaseStorage' not found in /home/andypost/www/core8/core/modules/locale/locale.module on line 417
Yet one
#1919002-10: Upgrade to D8 broken when D7 has more then one language enabled
Proposed Resolution
TBD
Remaining tasks
- write tests. contributor task doc for how to write tests: http://drupal.org/node/1468170
- decide on a proposed resolution
- make a patch
Comment | File | Size | Author |
---|---|---|---|
#27 | language_content_upgrade.png | 21.44 KB | andypost |
Comments
Comment #1
BerdirWe have language upgrade path tests, wondering why they don't fail, can you have a look at that?
Comment #2
andypostI'm now trying, because of #731724: Convert comment settings into a field to make them work with CMI and non-node entities depends on it. Probably this depends on comments but I tested this on vanila HEAD
Comment #3
andypostphp.log
http://qa.drupal.org/pifr/test/446893 shows again #1916556-1: Random test failures - The string cannot be saved
Comment #4
YesCT CreditAttribution: YesCT commentedtagging novice to do manual testing to reproduce
Comment #5
sunDrush's upgrade facility might not be fully ported yet. In any case, @andypost, can you make sure that you're able to reproduce this without Drush?
Comment #6
andypost@sun issue summary filed with error I got in browser. #3 the php error log and attempt in drush
Comment #7
andypostStill waiting for confirmation
Comment #8
Gábor Hojtsy@andypost: would be great to track down why is locale_storage() called (that is where the error is coming from). It could be t() "accidentally" called in the upgrade path.
Comment #9
Gábor HojtsyCrosspost.
Comment #10
vijaycs85Here is what I did git a new error:
1. git clone 7.x
2. Installed
3. Enabled locale and added new language
4. git checkout 8.x
5. visit update.php
Getting
PHP Fatal error: Call to a member function get() on a non-object in E:\htdocs\drupal-7\core\includes\theme.maintenance.inc on line 59
and line:59 is$module_handler = drupal_container()->get('module_handler');
UPDATE:
Adding log for more info:
Comment #11
andypostConfirm #10 for now it seems like some t() or format_plural() called too early
Comment #12
jthorson CreditAttribution: jthorson commentedRE: #8 ... in #1907960-61: Helper issue for "Comment field", I tracked down which string was tripping the exception for that issue.
Comment #13
andypostThe issue with "helper" is different - we can't use
get_t()
inhook_update_N()
So it lives in #1916556: Random test failures - The string cannot be savedThis one is different. And I also fount that we have wrong node-type in upgrade tests file
drupal-7.filled.standard_all.database.php
node_types table defines D7 (article) type but actual data was copy-pasted as D6(story)
Comment #14
Gábor Hojtsy@andypost: you should not use any get_t(), t(), st() or whatever in the upgrade path anyway. It could be possible to make it work, but I'm not sure... Anyway, that would already happen with one foreign language I guess, so not sure what special is happening with 2.
Comment #15
andypost@Gabor issue about usage of t() in updates #1916556-5: Random test failures - The string cannot be saved
This one about upgrade that currently broken
Comment #16
andypostNeeds manual testing again after #1892728: PoHeader::__construct() throws warning and breaks localized installs
Comment #16.0
danielnolde CreditAttribution: danielnolde commentedUpdated issue summary.
Comment #17
danielnolde CreditAttribution: danielnolde commentedHehe, i up the ante:
1. D7 download
2. Enable locale.module, add second language (German)
3. Dump db and import it into my D8 test instance db (D8 code freshly updated, DB empty)
4. visit update.php
produces:
<:)
Comment #18
danielnolde CreditAttribution: danielnolde commentedNever mind, something seems to be broken with update.php in general or with my very instance, since a mono-lingual D7>D8 update produces the same error as in #17.
Comment #18.0
danielnolde CreditAttribution: danielnolde commentedAdded yet another comment to error list.
Comment #19
fakingfantastic CreditAttribution: fakingfantastic commentedI'm about to try this out manually now.
Comment #20
fakingfantastic CreditAttribution: fakingfantastic commentedI'm getting: PHP Fatal error: Call to a member function get() on a non-object in /path/to/drupal/core/includes/theme.maintenance.inc on line 59
Here's what I did:
Next page load bricks. I noticed this same error happened when my 8.x was behind after coming back to it a week later, and doing a pull.
Comment #21
tstoecklerRe #20: I'm pretty sure that is similar to what I found in #1784312-84: Stop doing so much pre-kernel bootstrapping. Really digging in the dark there, though.
Comment #21.0
tstoecklerRemoved reference to #1919002-17: Upgrade to D8 broken when D7 has more then one language enabled again.
Comment #21.1
YesCT CreditAttribution: YesCT commentedadd remaining tasks section to make it clear what this needs.
Comment #22
YesCT CreditAttribution: YesCT commentedtagging for using the issue summary template.
and to start taggin d8 upgrade path issues.
Comment #23
xjm100% release blocker.
Comment #24
swentel CreditAttribution: swentel commented#10 and #20 are fixed by #1948650: Update is broken
Tried a manual update and had no problems running the upgrade, however, language was disabled for some reason, but re-enabling the module, I still have two languages.
Comment #25
swentel CreditAttribution: swentel commentedOk, scrap that, second run, everything was fine, I was messing around too much with other stuff testing the patch mentioned in #24.
If someone else can confirm it works with the patch in #1948650: Update is broken - we can actually close this one.
Comment #26
chx CreditAttribution: chx commentedPer swentel's report I am closing this. This issue seems to have 3-4 different kinds of bug reports, some already fixed, some bogus, some duplicate so I am closing as duplicated. If someone can reproduce after #1948650: Update is broken goes in (or manually applied) then please reopen with clean reproduction instructions, OS and PHP versions.
Comment #27
andypostYes, #1948650: Update is broken solves install issue!
But after upgrade translations are weird:
But I think it's different issue #1949870: Translation (deprecated) UI broken
The only notices I get after upgrade
Comment #28
swentel CreditAttribution: swentel commentedYeah, I'm getting those notices as well, but that's related to views and node enabling, not sure if there's an existing issue for that.
Comment #29
ParisLiakos CreditAttribution: ParisLiakos commentedfor the debug notices see #1940274: Modules not loaded when they ought to be loaded in \Drupal\Core\Extension\ModuleHandler::buildHookInfo
Comment #30
xjmComment #30.0
xjmUpdated issue summary.