Problem/Motivation

As of Drupal 8.0-alpha9 release (19. Feb. 2014) it's possible to install Drupal when running PostgreSQL as database backend. Now all remaining issues related to PG need fixing to make all tests pass (temporary) PostgreSQL TestBot.

Now that all major breaking PostgreSQL issues are fixed we can start working at the remaining ones.

Identified test fails:

  • none! :)

Identified test fails caused by bot, e.g not PostgreSQL related

  • none, but random exceptions are possible

Identified open remaining tasks and bugs required to make TestBot passing all tests

  • currently none :)

Nice to have

Fixed issues

User interface changes
None.

API changes
None.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

bzrudi71’s picture

Title: [Meta] Make PostgreSQL work with Drupal 8 » [Meta] Make Drupal 8 work with PostgreSQL
bzrudi71’s picture

Issue summary: View changes

Added: PDOException:Invalid text representation when attempting to load an entity with a string or non-scalar ID
Note, this problem exists currently also outside of entity context. There are a couple of exceptions in PostgreSQL logs regarding string -> int queries...

bzrudi71’s picture

bzrudi71’s picture

bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

FileSize
59.68 KB

As promised, here are the results of PG local testing. All in all absolutely not to bad as we only have two exceptions in the database tests themselves.
Some notes so... first of all some tests (8 in detail) failed to start because of to long table names (63chars limit in PG), mostly entity related. Second 90% of all failing tests are related to broken STRING -> INT comparison querys caused by the entity query builder. So if this is fixed nearly all/most tests will pass :-)
Unfortunately I'm off for 4 weeks and can't work on that before February, so feel free to pick and fix some issues already.

bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

mradcliffe’s picture

Issue summary: View changes

Discovered and created issue #2192877: File content list includes ambiguous column fid in Group By statement regarding the file listing page and the file identifier (fid).

bzrudi71’s picture

Issue summary: View changes

removed #911352: Document that foreign keys may not be used by all drivers (Never ending story and not really needed to make D8 work...)

bzrudi71’s picture

Priority: Normal » Major
Issue summary: View changes

cleanups...

bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

mradcliffe’s picture

I have been focusing on other issues and modules recently so I haven't cycled back to #2181291: Prevent a query from aborting the entire transaction in pgsql yet. I'd probably at least get around to implementing the rest of the query classes at the end of the month @ midcamp.

mradcliffe’s picture

Issue summary: View changes
danblack’s picture

Issue summary: View changes
mradcliffe’s picture

I've been working on a vagrant repository with both mysql and postgresql installed for core developers. I'm not familiar enough with puppet or ruby to write my own so I forked a puphpet repo and started hacking away. I finally got a box up and running after fixing some puppetlabs postgresql issues. I still need to hack in postgresql configuration optimization based on VM memory. Currently spins up a 4GB VM.

andypost’s picture

stefan.r’s picture

stefan.r’s picture

Issue summary: View changes
webchick’s picture

Thanks folks, for all of your work on these issues!

It'd be great for some or all of you who are infrastructure-inclined to check out https://groups.drupal.org/drupal-org-testing-infrastructure and https://www.drupal.org/project/drupalci. This is the future of where testbot is going, and the architecture upon which multiple database testing support will live. AFAIK there are Docker images and what not to allow you set this up locally in the meantime.

ricardoamaro’s picture

I created a site with live tests that will run every 6 hours fetching the latest Drupal8 and running it against a PostgreSQL installation.

http://testbot-pgsql.drupal-pt.org

Feel free to make suggestions.

bzrudi71’s picture

Issue summary: View changes

@ricardoamaro Great to finally see some good progress in PG testing :-) Looking at the logs it seems many test failures are caused by already identified issues. Namely (by priority):

#2279395: The PostgreSQL backend does not handle NULL values for serial fields gracefully
#1003788: PostgreSQL: PDOException:Invalid text representation when attempting to load an entity with a string or non-scalar ID
#998898: Make sure that the identifiers are not more the 63 characters on PostgreSQL

This should help with passing many more tests. However, there are many more exceptions in the log than I have locally. One thing I noticed is related to concurrency, in other words some tests fail when setting concurrency to any value higher than 1. Guess we have to spend a closer look on that. If I find the time I will run the docker image locally to trace this down.

Thanks again!
Moving: #2279363: file_managed.uri should not specify a prefixed unique key to fixed

bzrudi71’s picture

Issue summary: View changes
ricardoamaro’s picture

Issue summary: View changes
ricardoamaro’s picture

Hello all,

I've updated the URL above and would like to update that from now on I'll be keeping record of each build downloadable from the site so everyone can check the progress. If you have any suggestion please send me a direct contact message via d.o
Really looking forward that this improves testing!

mradcliffe’s picture

Issue summary: View changes

Added issue with installing Drupal 8 on standard profile again.

mradcliffe’s picture

Issue summary: View changes

Can't reproduce the issue I filed a day or so ago.

mradcliffe’s picture

Although @ricardoamaro's test bot seems to be reproducing that issue on non-migrate tests. It can't create a table because it already exists. This may be because the bot isn't tearing down the schema properly, which I think was my issue too. Or it could be unrelated of course.

steinmb’s picture

bzrudi71’s picture

bzrudi71’s picture

mradcliffe’s picture

ricardoamaro’s picture

All core interations running on http://coreresults.drupal-pt.org/

mradcliffe’s picture

Issue summary: View changes

Removed #2188615: Insert-query with multiple values fails on Postgresql as I could not reproduce it in Drupal\system\Tests\Database\InsertTest::testInsertFieldOnlyDefinintion() which seems to insert multiple values just fine and asserts such.

mradcliffe’s picture

Issue summary: View changes
bzrudi71’s picture

bzrudi71’s picture

Issue summary: View changes

Added #1060476: Multiple issues when PostgreSQL is used with non-public schema to testbot breaking issues section. I found some migrate_drupal tests failing because of that ;-(

<?xml version="1.0"?>
<testsuite><testcase classname="Drupal\migrate_drupal\Tests\d6\MigrateAggregatorFeedTest" name="testAggregatorFeedImport()"><failure type="failure" message="Completion check">The test did not complete due to a fatal error.</failure></testcase><testcase classname="Drupal\migrate_drupal\Tests\d6\MigrateAggregatorFeedTest" name="setUp()"/><testcase classname="Drupal\migrate_drupal\Tests\d6\MigrateAggregatorFeedTest" name="display()"><failure type="failure" message="migrate">Migration failed with source plugin exception: SQLSTATE[3F000]: <strong>Invalid schema name:</strong> 7 ERROR:  schema "build_2014_10_10_141908" does not exist
LINE 4: LEFT OUTER JOIN build_2014_10_10_141908.simpletest971774migr...
                        ^</failure></testcase></testsuite>
bzrudi71’s picture

Issue summary: View changes
stefan.r’s picture

Issue summary: View changes
bzrudi71’s picture

bzrudi71’s picture

Issue summary: View changes

Moving #571548: Identifiers longer than 63 characters are truncated, causing Views to break on Postgres out of the way. Seems fixed in the meanwhile and it doesn't seem we have any failing tests because of this...

bzrudi71’s picture

bzrudi71’s picture

Issue summary: View changes

Moved #1565972: Remove static caching of array in mapConditionOperator() to fixed. Already committed and just open for discussion...

bzrudi71’s picture

Moved #1565972: Remove static caching of array in mapConditionOperator() to fixed. Already committed and just open for discussion...

bzrudi71’s picture

Moved #1565972: Remove static caching of array in mapConditionOperator() to fixed. Already committed and just open for discussion...

bzrudi71’s picture

Issue summary: View changes

Moved #1148856: Postgres schema doesn't support keylength on a unique index to nice to have section as it doesn't seem to break any tests currently...

bzrudi71’s picture

Issue summary: View changes

Moved #567148: Use ONLY_FULL_GROUP_BY for MySQL out of the queue, this is MySQL only and not a PostgreSQL issue.

stefan.r’s picture

Issue summary: View changes
bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

Issue summary: View changes

Here we go. Created sub issues of all failing test groups ;-)

bzrudi71’s picture

bzrudi71’s picture

bzrudi71’s picture

bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

Issue summary: View changes

Moved #2356993: PostgreSQL: Fix tests in rest test group out of the way, as fails were not related to PostgreSQL. The root cause is the docker web container not supporting application/json mime type...

bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

chx’s picture

Let me note https://www.drupal.org/node/2306083 as well. Some problems might be easier solved by swapping a whole service and using a different schema and PostgreSQL features et al than just changing a query.

bzrudi71’s picture

Issue summary: View changes

Moved #2386379: PostgreSQL: Fix tests in book test group over to fixed. No longer an issue in current HEAD!

bzrudi71’s picture

Issue summary: View changes

Moved #2061879: Remove Schema::copyTable to required section (one database test fails with 'not implemented' error).

stefan.r’s picture

@bzrudi71 does it seem likely we'll get all tests to pass on PostgreSQL for D8 core over the next months?

If so it could be cool to start thinking about contrib and use Berdir's D8 contrib test script to compare MySQL test results for 8.x contrib against PostgreSQL test results. See https://github.com/Berdir/d8modulestatus and http://d8ms.worldempire.ch/

bzrudi71’s picture

FileSize
183.87 KB

@stefan.r

Does it seem likely we'll get all tests to pass on PostgreSQL for D8 core over the next months?

Hopefully yes, as we are as close as never before. But that depends mainly from the time of @mradcliffe and me as currently no one else is working on the remaining issues.
I already spend hours and hours to trace down a problem that affects many of the currently failing test but with no luck so far. That is a - fix one, fix many - thing.
I just did a fresh testbot run today that I will attach to give an impression of where we stand. Some notes so..

  • Please ignore the fails and exceptions in migrate for now as they are based on a MySQL dump file ;-)
  • Please ignore round about 5% of fails and exceptions caused by random 'database is locked' errors (not PG related)

So we are on the right way :-)

Regarding the scripts, I can do a setup on my spare server, just not sure when I have the time. But it's on my agenda now!

mradcliffe’s picture

I attended the Modernizing Testbot Initiative meeting the other night. One of the immediate tasks for that initiative is to create the Ubuntu Docker boxes. @dasrecht volunteered to do this, and I mentioned I could help test.

I am starting to shift back to core development after focusing on contrib (after having ignored it for a while).

bzrudi71’s picture

@mradcliffe great to see you back on track!
While looking at the remaining fails I noticed that around 50% of the fails in the test groups are related to views. So #2357003: PostgreSQL: Fix tests in views test group should have attention first. There is a problem within the views sql query builder. For example I found this in taxonomy views tests:

SQLSTATE[42P01]: Undefined table: 7 ERROR: invalid reference to FROM-clause entry for table "taxonomy_term_field_data" LINE 12: ...rm_data_node__taxonomy_term_field_dataINNER.tid = taxonomy_t... ^ HINT: Perhaps you meant to reference the table alias "taxonomy_term_data_node__taxonomy_term_field_datainner".

And with more info:

Drupal\Core\Database\DatabaseExceptionWrapper: Exception in
    test_groupwise[test_groupwise_term]: SQLSTATE[42P01]: Undefined table: 7
    ERROR:  missing FROM-clause entry for table
    &amp;quot;taxonomy_term_field_data&amp;quot;
    LINE 12: ...rm_data_node__taxonomy_term_field_dataINNER.tid = taxonomy_t...
                                                                  ^ in
    Drupal\views\Plugin\views\query\Sql-&gt;execute() (line 1442 of
    /var/www/core/modules/views/src/Plugin/views/query/Sql.php).
    Drupal\views\Plugin\views\query\Sql->execute(Object)
    Drupal\views\ViewExecutable->execute()
    Drupal\views\Tests\ViewTestBase->executeView(Object)
    Drupal\taxonomy\Tests\Views\RelationshipRepresentativeNodeTest->testRelationship()
    Drupal\simpletest\TestBase->run()
    simpletest_script_run_one_test('21',
    'Drupal\taxonomy\Tests\Views\RelationshipRepresentativeNodeTest')

Wonder how that could pass in MySQL?

bzrudi71’s picture

Issue summary: View changes

Updated infos for test groups.

bzrudi71’s picture

Issue summary: View changes

No more fails in shortcut tests in HEAD, moving #2356995: PostgreSQL: Fix tests in shortcut test group over to fixed section.

bzrudi71’s picture

Issue summary: View changes

Great! Now that #2356967: PostgreSQL: Fix tests in comment test group is in, we have 100% pass in comment tests... (moved to fixed section)

webchick’s picture

Great work! Keep it up. :)

bzrudi71’s picture

Issue summary: View changes

I setup a (simple) PostgreSQL testbot on a spare server that runs all tests once a day against HEAD. This should help us to keep better track of PostgreSQL issues. And the first that I noticed is a new failing test in block_content. So created #2424951: PostgreSQL: Fix tests in block_content test group...

bzrudi71’s picture

Issue summary: View changes

Just discovered failing tests because of INDEX ALREADY EXISTS, so opened #2425127: Prevent PostgreSQL from creating duplicated index names within schema to fix that globally as this happens in various test groups.

bzrudi71’s picture

Issue summary: View changes
catch’s picture

catch’s picture

Priority: Major » Critical
bzrudi71’s picture

Issue summary: View changes

#2424951: PostgreSQL: Fix tests in block_content test group is in, so moved to fixed. There is consensus to remove copyTable #2061879: Remove Schema::copyTable, so moved out of needed section.

mradcliffe’s picture

@bzrudi71: on your simple testbot site the log has "
Fatal error: Allowed memory size of 335544320 bytes exhausted (tried to allocate 83 bytes) in /var/www/core/scripts/run-tests.sh on line 1156" at the bottom. Is that in reference to the tests as a whole or one specific test?

bzrudi71’s picture

@mradcliffe: This is just with DCI_TESTGROUPS = --all where simpletest runs out of memory for the results reporting. It works for single test groups so... I already suggested to write the results in chunks and not in a whole but can't find the issue. But it's a known issue, please see #2347493: Writing test results leads to FATAL because of memory_limit

bzrudi71’s picture

Issue summary: View changes

Moved #1013034: PostgreSQL constraints do not get renamed by db_rename_table() to required section, needed to make Database SchemaTest pass.

jaredsmith’s picture

Issue summary: View changes
bzrudi71’s picture

xjm’s picture

@catch, I guess we should downgrade #2160433: [policy, no patch] Move PostgreSQL driver support into contrib to major then and tag it "Revisit before release"?

jaredsmith’s picture

Issue summary: View changes
bzrudi71’s picture

Issue summary: View changes
jaredsmith’s picture

Issue summary: View changes

Issue affecting locale tests (and some of the system tests) committed, updating issue summary.

jaredsmith’s picture

Issue summary: View changes

Moving system test group to fixed issues.

jaredsmith’s picture

Issue summary: View changes

Moving the 'options" test group to fixed, as a recent commit fixed the failing tests in that test group.

jaredsmith’s picture

Issue summary: View changes

Moving 'entity_reference' test group to fixed, as a recent commit fixed the failing tests in that test group.

stefan.r’s picture

Issue summary: View changes
mradcliffe’s picture

I've had a terrible cold since last Friday so I haven't been able to make any progress.

I noticed that there may be some new test failures introduced by recent Drupal 8 changes after looking at @bzrudi71's testbot results.

Specifically aggregator module has a test fail with exception, and a new test AddFeedTest

CommentPagerTest now has fails when it didn't before.

And I think there are several other new test failures. So we need to bisect, and raise visibility for the issues that caused the regressions and create follow-up issues.

jaredsmith’s picture

FileSize
1.94 KB

I've re-run the tests on the Aggregator module, both using the drupalci testing infrastructure and manually running simpletest from my browser. I'm using the following settings:

DCI_PHPVERSION=5.4
DCI_DRUPALBRANCH=8.0.x
DCI_TESTGROUPS=aggregator
DCI_UPDATEREPO=true
DCI_DBTYPE=pgsql
DCI_DBVER=9.3

I've attached the results, showing that all the tests pass.

bzrudi71’s picture

@all: I'm sorry my fault! The test was run on my experimental speed improved bot code, so please forget the new fails and exceptions ;-) As soon as #1600670: Cannot query Postgres database that has column names with capital letters is in and we filter out random bot fails (like CommentPagerTest) and the fails that also occur with MySQL (StyleSerializerTest, SessionHttpsTest) we are that low in failing tests that we can create an issue for each single one. So please, next step forward #1600670: Cannot query Postgres database that has column names with capital letters :-)

bzrudi71’s picture

Issue summary: View changes

IS cleanup...

mradcliffe’s picture

Issue summary: View changes

Confirmed a couple of new test failures that popped up recently. I think only comment module may need a follow-up issue depending on the root cause.

bzrudi71’s picture

Issue summary: View changes

Nice, #1600670: Cannot query Postgres database that has column names with capital letters is in and fixed many of the remaining fails and exceptions! We have 100% pass in #2356979: PostgreSQL: Fix tests in file test group now, so moving to fixed. Created #2443627: PostgreSQL: Fix sub-system tests in system test group to have better overview of failing system sub-tests.

bzrudi71’s picture

Issue summary: View changes

Listed each single test failing to get better overview. We need separate issues for each test now.

bzrudi71’s picture

bzrudi71’s picture

Doh, all sub-issues created - happy hacking ;-)

bzrudi71’s picture

bzrudi71’s picture

bzrudi71’s picture

Issue summary: View changes

Moved #2356987: PostgreSQL: Fix tests in node test group to fixed, we have 100% pass now in node tests - thanks all!

mradcliffe’s picture

> Drupal\system\Tests\Installer\DistributionProfileTest 15 passes 9 fails

I cannot reproduce this new test fail locally (via vagrant) this morning. I'll wait until tomorrow morning to see if it was just a random fail or not.

bzrudi71’s picture

Re #109: Yes, this is the first time I see Drupal\system\Tests\Installer\DistributionProfileTest fail. Can't reproduce locally, nor with bot so let's keep an eye on this before creating an issue.

bzrudi71’s picture

Issue summary: View changes

Adding #1518506: Normalize how case sensitivity is handled across database engines. Would have saved me a hour of debug if that one had the PostgreSQL tag set ;-) This is the root cause for #2443679: PostgreSQL: Fix taxonomy\Tests\TermTest to fail...

mradcliffe’s picture

Hey bzrudi, do you want to embed a d3.js graph on your bot page? ;-)

bzrudi71’s picture

Issue summary: View changes

New fails in views/src/Tests/GlossaryTest.php, caused by #2381217: Views should set cache tags on its render arrays, and bubble the output's cache tags to the cache items written to the Views output cache.

Additional new fails in:
node\Tests\NodeListBuilderTest
system\Tests\Entity\EntityListBuilderTest

Caused by #2445743: Allow views base tables and entity types to define additional cache contexts, but that one was reverted meanwhile.

mradcliffe’s picture

I think that both are probably related to #2443651: PostgreSQL: Fix system\Tests\Cache\DatabaseBackendUnitTest because the that recent issue was regarding adding cache tag support to views.

bzrudi71’s picture

bzrudi71’s picture

bzrudi71’s picture

Issue summary: View changes

House-cleaning. Moved #1072322: Figure out what to do with string concats to fixed as no longer an issue for D8.

bzrudi71’s picture

Issue summary: View changes

Ups, now moved the right issue ;-)

bzrudi71’s picture

Issue summary: View changes
mradcliffe’s picture

So we have 8 issues remaining for test failures and exceptions + migrate + testbot failures (all database drivers).

When the testbot reaches 19 fails, we know we've done it and can start opening HEAD BROKEN Critical issues if it ever goes up. :-)

daffie’s picture

The two tests: rest\Tests\Views\StyleSerializerTest and system\Tests\Session\SessionHttpsTest are not testbot problems, but tests that fail when there is no parent site available. If you run the tests with no settings.php file and an empty database the two tests fail. No idea why.

bzrudi71’s picture

New fails and an exception in:

  • \views\Tests\Handler\SortRandomTest
  • \system\Tests\Installer\InstallerLanguageDirectionTest

However, I ran both tests several times locally and they always pass. Guess theses are randoms as both do some kind of order by check. If we have fails again in some of the next bot runs we need to open an issue I think.

bzrudi71’s picture

Issue summary: View changes
ricardoamaro’s picture

FYI the old coreresults sites using the testbot are gone and we should move on to use the results project.

mradcliffe’s picture

Issue summary: View changes

Added issues related to drupalci_testbot.

mradcliffe’s picture

Drupal\comment\Tests\CommentAdminTest 236 passes 1 exceptions

I ran CommentAdminTest locally, and was not able to reproduce this exception

239 passes, 0 fails, 0 exceptions, 63 debug messages

Edit: Seems like a random fail. Didn't show up today.

stefan.r’s picture

That is a web test, are you running your webserver on PHP7 as well or just the CLI? Oops wrong issue!

xjm’s picture

Issue tags: -Needs Drupal 8 critical triage +D8 critical triage deferred

(Updating certain "Needs D8 critical triage" issues to a less misleading tag name.)

bzrudi71’s picture

Issue summary: View changes

Adding some new issues into nice to have section and removed one identified bot fail that was fixed meanwhile in HEAD.

mradcliffe’s picture

Drupal\entity_reference\Tests\Views\EntityReferenceRelationshipTest 78 passes 8 fails
I can't find the regression in the last 3 days of commits at first glance. Nothing seems to be related to entity reference or views, but the issue has something to do with sorting and entity reference fields in the view (or the test is bad and is putting the wrong value in the entity reference field).

Drupal\system\Tests\Installer\InstallerEmptySettingsTest 13 passes 9 fails
I could not reproduce this one locally: 16 passes, 0 fails, 0 exceptions, 7 debug messages, though the total pass+fail count is different?

mradcliffe’s picture

mradcliffe’s picture

- Drupal\system\Tests\Bootstrap\DrupalSetMessageTest is no longer passing (0 passes, 0 fails, 1 exception = bad) and throws an exception.
- Drupal\system\Tests\Database\BasicSyntaxTest is throwing an exception.

I mentioned this in the closed issue regarding FieldGropRowsTest, but there are fails on these tests again. Should a new issue be created?

- Drupal\views\Tests\Handler\FieldGroupRowsTest
- Drupal\views\Tests\Handler\FieldGroupRowsWebTest

bzrudi71’s picture

@mradcliffe, thanks for taking track of new issues ;-) I'm currently low on time but think I can have a look at the broken tests over the weekend, let's see...

bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

mradcliffe’s picture

Thanks, @bzrudi72.

I didn't have much time today (this morning) to create the issues after I looked at your testbot's results. It probably depends on how tired I am tonight.

webchick’s picture

This isn't a direct dependency, but cross-linking #2477413: Increase minimum version requirement for Postgres to 9.1.2 for folks from here to chime in on.

Over in #2467925: [plan] Remove blockers to the "minimum viable" state of DrupalCI to ship Drupal 8 RC1 the DrupalCI folks are recommending 9.1.2 as the version of pgsql we test against, and we'd want to raise core's minimum to that if that's the result. Arguments pro/con welcome.

xjm’s picture

I posted #2477413: Increase minimum version requirement for Postgres to 9.1.2 based on discussion about Postgres testbot support in #2467925: [plan] Remove blockers to the "minimum viable" state of DrupalCI to ship Drupal 8 RC1. It would be great if some of the postgres contributors active here could weigh in on whether the proposed minimum version increase is a good idea or not. Thanks!

bzrudi71’s picture

Drupal\system\Tests\Bootstrap\DrupalSetMessageTest passes locally and on latest bot run. I'm pretty sure the exception was caused by the random SQLite database is locked errors we see from time to time...

Anyway, we need to open issues for:
- Drupal\views\Tests\Handler\FieldGroupRowsTest
- Drupal\views\Tests\Handler\FieldGroupRowsWebTest

They are failing locally also because of an ordering problem. This is the second or third time we have to fix those :-(

amateescu’s picture

I'm pretty sure the exception was caused by the random SQLite database is locked errors we see from time to time...

You won't be seeing that any longer, it was fixed by #2465633: Bring back the custom Statement class for the SQLite driver :)

bzrudi71’s picture

xjm’s picture

stefan.r’s picture

Issue summary: View changes
bzrudi71’s picture

Issue summary: View changes
bzrudi71’s picture

Issue summary: View changes

Adding another nice to have issue #1326848: PostgreSQL: Add support for natural joins as this may affect contrib...

bzrudi71’s picture

mradcliffe’s picture

11 new fails from a critical commit on 5/3 #1867518: Leverage entityDisplay to provide fast rendering for fields. We didn't see it until this morning because of the issue with the testbot yesterday.

dawehner’s picture

@mradcliffe
So yeah please open up a new dedicated issue.

mradcliffe’s picture

bzrudi71’s picture

Issue summary: View changes

We have overseen another one, opened #2484539: PostgreSQL: Fix views\Tests\Handler\FieldFieldTest. As this also fails SQLite I pinged @amateescu for feedback.

webchick’s picture

Title: [Meta] Make Drupal 8 work with PostgreSQL » [Meta] Make Drupal 8 work with PostgreSQL or remove support from core before release

Let's consolidate issues. Folding in #2160433: [policy, no patch] Move PostgreSQL driver support into contrib as a duplicate.

And since this is now captured as part of #2485119: [meta] The Drupal 8.0.0-rc1 Release Checklist, downgrading.

webchick’s picture

Btw, please don't interpret that title change as in any way admonishment of the fantastic efforts that are going on here. We are close! Just trying to get a better handle on what's truly blocking D8's release.

webchick’s picture

Priority: Critical » Major

Let's do what I said, shall we? :P

mradcliffe’s picture

@bzrudi71, I've had success setting up the testbot on the origin/dev branch with the following config set. Since it's in origin/dev the containers still need to be built manually. I think it may be time to switch if you have some time. And it looks like amateescu has support for sqlite in now too in origin/dev from #2484103: Add support for sqlite database testing. It may be in origin/production on Monday or Tuesday (PDT).

sudo ./containers/database/pgsql-9.1/run-server.sh
sudo ./drupalci run simpletest

---------------- Start config set: CURRENT DCI ENVIRONMENT ----------------
Defined in ~/.drupalci/config:
DCI_PHPVERSION: 5.4
DCI_DRUPALBRANCH: 8.0.x
DCI_TESTGROUPS: Database
DCI_UPDATEREPO: TRUE
DCI_DBTYPE: pgsql
DCI_DBVER: 9.1
DCI_DBURL: pgsql://drupaltestbot:drupaltestbotpw@0.0.0.0:32768/drupaltestbot
DCI_DBVERSION: pgsql-9.1
DCI_PHPVERSION: 5.4
DCI_DBUSER: drupaltestbot
DCI_DBPASSWORD: drupaltestbotpw
mradcliffe’s picture

Those commits are in origin/production so the containers should be rebuilt to pull from dockerhub with the drupalci init commands.

bzrudi71’s picture

@mradcliffe, great news! :) Unfortunately I will be out of office in some hours until the end of the week, sorry. So I think it's best to let the legacy bot do it's job until I have the time (hopefully over the weekend) to test and make the switch. Anyway, will do my best to make that happen ASAP!

Drupa1ish’s picture

Following the good example of @amateescu (like in #157 and assoc.drupal.org/d8-accelerate-awarded-grants) , @bzrudi71 @mradcliffe why don't you apply for a D8 accelerate grant?

mradcliffe’s picture

Issue summary: View changes

Moving fixed issues.

jaredsmith’s picture

Issue summary: View changes

Issue #2480799: PostgreSQL: Fix views\Tests\Handler\FieldGroupRowsTest (again) has been committed and closed :-)

Moving it to the "Fixed Issues" section.

jaredsmith’s picture

Issue summary: View changes

Moving issue #2443633: PostgreSQL: Fix locale\Tests\LocaleUpdateTest to the "fixed" section, since we're not able to reproduce it any more.

bzrudi71’s picture

I'm working since yesterday to make the switch from legacy PostgreSQL and SQLite bots over to the new drupalci ones. So please DON'T PANIC :) if you see broken test runs around. There are also random exceptions in the new containers no matter of the underlying database, but I think with the help of @amateescu we will know the reason soon :)

bzrudi71’s picture

Issue summary: View changes

Hopefully the bots are back on track now, we will see tomorrow ;) Updated the IS a bit to reflect the new bots...

mradcliffe’s picture

Thanks for updating the bots. I hope the switch wasn't too bad on an actual production system.

Edit: Also just noticed the test bot run time decreased from 3 hours to 1 hour.

webchick’s picture

That's great news! Thanks so much for updating the testbots, bzrudi71! :D

bzrudi71’s picture

Issue summary: View changes

Another one moved to fixed section (-64 exceptions!) #2477845: PostgreSQL: Fix broken migrate table creation.

erik.erskine’s picture

webchick’s picture

Issue tags: +revisit July 1 2015

We spoke about this on our branch maintainer call today. While there's no way to know when we're going to hit the "~5 critical issue" threshold, the DA is in the process of planning a D8 Accelerate sprint from July 2 - 8. So July 1 is a logical date to revisit this and any other "fix it or nix it" issues. (If we still have a ridiculous number of criticals at that point, we'll move the evaluation date.)

xjm’s picture

Issue tags: +blocked by drupalci

Tagging as @Mixologic did with #2296557: [policy] Require PHP 5.5.

daffie’s picture

Issue summary: View changes

Removed #2451749: PostgreSQL: Fix views\src\Tests\GlossaryTest.php from the needs to be fixed list.

bzrudi71’s picture

Issue summary: View changes

Moved #2494415: PostgreSQL: Fix migrate_drupal\Tests\d6\MigrateTaxonomyTermTest to fixed. Yay, just 2 open issues on our way to 100% pass left :)

webchick’s picture

Go team, go!! :D

daffie’s picture

bzrudi71’s picture

Issue summary: View changes

Cleanups!
#2464481: PostgreSQL: deal with case insensitivity is no longer required to have 100% pass as @daffie created a new patch in #2443679: PostgreSQL: Fix taxonomy\Tests\TermTest to just fix the TermTest part (based on the patch in the case sensitive issue). Also moving #1518506: Normalize how case sensitivity is handled across database engines out of nice to have. The decision is to support case insensitivity also for PostgreSQL.

daffie’s picture

Issue summary: View changes

@bzrudi71: In the issue #1314214: MySQL driver does not support full UTF-8 (emojis, asian symbols, mathematical symbols) they are changing the charset from utf8 to utf8mb4. I have no idea if there are consequences for PostgreSQL. The issue is at the moment RTBC. Can you be so kind and run the PostgreSQL testbot with the patch from that issue.

bzrudi71’s picture

@daffie, stefan.r asked for a PG bot run some weeks ago and all was fine :) However, just started a new run with latest patch applied to make sure, let's see...

UPDATE: bot finished and all seems good :)
FYI: Because of #2296557: [policy] Require PHP 5.5 I changed all bots to run PHP-5.5 as of today! So let's hope we don't see any new fails after the next run...

bzrudi71’s picture

Okay, we have the first bot results for PHP-5.5 testing. Looks pretty good, but I see a new fail in database connection test for both, PostgreSQL and SQLite. Created #2508777: Database Connection test fails on PHP-5.5.

bzrudi71’s picture

bzrudi71’s picture

In preparation of revisit on July 1st I like to mention that there are just two open issues on the way to 100% pass:

Both are RTBC! So actually I think we made it :)

webchick’s picture

Went to commit #2443679: PostgreSQL: Fix taxonomy\Tests\TermTest, but it already is! :D

bzrudi71’s picture

Issue summary: View changes

Moving #2443679: PostgreSQL: Fix taxonomy\Tests\TermTest out of the way (even if there is some discussion for a better fix). The last remaining issue #2477853: PostgreSQL: Add support for reserved field/column names is RTBC again.

daffie’s picture

@bzrudi71: #2477853: PostgreSQL: Add support for reserved field/column names has landed. Can you run the testbot on http://d8pgsqlbot.erwanderbar.de/ so that we can mark this issue as fixed!

bzrudi71’s picture

Issue summary: View changes

Champagne! What should I say :) After 18 months and 85 fixed issues it seems we finally made it - yay!
I don't think we should close this issue, better rename it and work further at the stuff within the nice-to-have section? Anyway, thanks @all!
BTW: Bot is running and will spit out the results within the next hour...

bzrudi71’s picture

Well, bot finished with 0 fails and with just 2 of the usual exceptions :)
BTW: The root cause of the randoms seems to be identified (table exists exceptions), please see #2508567: DrupalCI SQLite random failures. I think this is something for @dawehner and/or @amateescu ;)

webchick’s picture

Status: Active » Fixed
FileSize
45.16 KB

OMG WOWWWWWW!!! YOU FOLKS ARE AMAZING!!!

Since we already have #2508567: DrupalCI SQLite random failures to track the random exceptions in pgsql/sqlite, it is with GREAT pleasure that I mark this issue...

...at last...

...after much INCREDIBLE effort by so many people...

...whose improvements not only found legit bugs, but made Drupal's database layer 8 gabillion times more robust...

...FIXED!!! :D :D

GREAT work, everyone! Please go pass out. :)

Crell’s picture

*happy dance*

webchick’s picture

Though it's only a small gesture, it's the best that I can do, so saving the following as issue credit for this issue:

Giving credit to bzrudi71, jaredsmith at Bluehost, mradcliffe, stefan.r, daffie

If I'm missing someone (they have to have commented on this issue, sadly), please let me know!

bzrudi71’s picture

Thank you for the flowers @webchick :) I think we should wait with the commit for a day or so to give contributors the chance the get them on the list. I really don't remember all the helping hands :)
Thanks again for all your support!

jaredsmith’s picture

It was nice to come back from vacation and see the sweet news! A big thanks to everyone who helped along the way to make this possible!

Status: Fixed » Closed (fixed)

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

bzrudi71’s picture

pedro7’s picture

Version: 8.0.x-dev » 8.0.4
Status: Closed (fixed) » Active

In PostgreSQL, is needed to know in which schema is Drupal website installed. Table prefix is NOT enough. It's needed to have another parameter like "dbchema" in settings.php.

Install Drupal website in other schema then public is important. I think, it's not good idea to have every website in separate database, because in this case joining tables from different websites is impossible. Another reason is save resources. Connections are relatively expensive.

I explained some mistakes in this comment. I'm not able to fix it correctly, so i'd like to ask some experienced Drupal developer to do it. Thanks for understanding.

mradcliffe’s picture

Status: Active » Closed (fixed)

Please see #1060476: Multiple issues when PostgreSQL is used with non-public schema for improving Drupal support for running in a non-public schema.