Problem/Motivation

Original report

Watchdog wid reaches maximum integer storeable

To reproduce: have a site which generates a large number of Notices and Warnings (eg. uninitialised variables, unset array keys) per page load, and which receives a very large amount of traffic.

Expected behaviour: dblog automatically limits the number of log messages to the specified value, site continues to function without issue.

Actual behaviour: because dblog never resets the wid auto_increment value, the wid eventually reaches 2147483648. At this point the site suffers a White Screen of Death; all requests fail with a 500 code but no errors are logged in the server logs (as is usual with such errors) and altering error logging does not produce any on-screen errors. (Probably because the attempt to log the DB exception raised fails in its own right.)

Detection of issue: the only ways to find out what is happening are a) to know this is a possible issue and check the current value of the auto_increment, or b) to use a debugger to step through the code line-by-line until a notice is generated.

Possible fixes or remediation:

1. Have dblog output the database error to the server logs, to screen, or somewhere accessible to developers.

2. Have dblog be aware of the maximum value an integer can take in the database used, and refrain from attempting to add any more entries once the wid gets close to that maximum.

3. Have dblog periodically reset all extant wids to start at 1, and reset the auto_increment.

Issue was observed in Drupal v7.67, but definitely affects all v7 variants, and may well affect v8 as well.

Steps to reproduce

Proposed resolution

Changing the primary key value from a regular serial field to a big serial field. The maximum value that could be stored was 2147483647 and will become 9223372036854775807.

Remaining tasks

Postponed on #3191391: Schema::changeField() has bug when changing regular serial field to big serial field

User interface changes

API changes

Data model changes

Release notes snippet

CommentFileSizeAuthor
#79 interdiff_76-79.txt2.67 KBArantxio
#79 3081144-79.patch4.17 KBArantxio
#76 3081144_74_76.txt2.86 KB_pratik_
#76 3081144-76.patch4.32 KB_pratik_
#74 interdiff_72-74.txt1.95 KBAkram Khan
#74 3081144-74.patch4.16 KBAkram Khan
#72 interdiff_69-72.txt4.4 KBAkram Khan
#72 3081144-72.patch4.89 KBAkram Khan
#69 interdiff_68-69.txt1009 bytesArantxio
#69 3081144-69.patch4.45 KBArantxio
#68 interdiff-3081144-66-68.txt794 bytesdagmar
#68 3081144-68.patch4.7 KBdagmar
#66 3081144-66.patch4.64 KBdagmar
#49 interdiff_46_49.txt2.5 KBanmolgoyal74
#49 3081144-49.patch4.95 KBanmolgoyal74
#46 interdiff_45-46.txt1.65 KBmindbet
#46 3081144-46.patch5.64 KBmindbet
#45 interdiff_44-45.txt2.89 KBmindbet
#45 3081144-45.patch6.48 KBmindbet
#44 interdiff_44-43.txt1.47 KBmindbet
#44 3081144-44.patch4.5 KBmindbet
#43 interdiff_42-43.txt2.91 KBmindbet
#43 308114-43.patch4.61 KBmindbet
#42 interdiff_30-42.txt1.82 KBmindbet
#42 308114-42.patch4.6 KBmindbet
#39 interdiff_30-39.txt583 bytesmindbet
#39 3081144-39.patch3.43 KBmindbet
#38 interdiff_36-38.txt1.49 KBmindbet
#38 3081144-38.patch844 bytesmindbet
#36 interdiff_18-36.txt1.12 KBmindbet
#36 3081144-36.patch935 bytesmindbet
#30 3081144-30-PASS.patch3.52 KBphenaproxima
#30 3081144-30-FAIL.patch2.38 KBphenaproxima
#24 3081144-24.patch2.1 KBphenaproxima
#28 3081144-28.patch2.53 KBphenaproxima
#18 3081144-18.patch433 bytesmindbet
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Niall Jackson created an issue. See original summary.

cilefen’s picture

Title: Watchdog wid reaches maximum integer storeable » Database primary keys can exceed maximum integer storeable (has actually occurred, in watchdog)
Version: 7.67 » 8.8.x-dev
Component: dblog.module » database system
Issue summary: View changes
cilefen’s picture

This could technically happen in any table, but watchdog and cache tables are most susceptible.

Berdir’s picture

cache tables don't have autoincrement primary keys.

cilefen’s picture

Noted!

geek-merlin’s picture

Huh, this is tricky. According to the docs the counter can't be reset to a value smaller than the max.
So we have to either truncate the table or renumber it (e.g. delete and recreate the ID column, plus some voodoo to keep order).

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

catch’s picture

Do we really, really need autoincrement on the watchdog table? What about dropping the column?

Berdir’s picture

How would we identify a single log message then and e.g. view it in the site?

I'm not so sure about the severity here. Yes, it is ugly, but it's also pretty easy to fix, just the clear log confirmation form/action does a TRUNCATE query, that should afaik reset the ID's, so if you run that when it happens then you lost your recent logs, but everything should work again then.

One strange thing is that the wid is apparently signed, so we're wasting 50% of the space we could have.

But even then, it's still quite a big number, and you have a site where this happens, then you should probably fix that so many notices are logged, because both having so many php notices/warnings and logging them into the database is a serious performance issue. Or as a quickfix, use syslog instead of the database.

While personally never saw a big issue with it in our sites, it has been the recommendation for a long time to disable dblog on a high-performance or even any production site and use something else.

So IMHO, I don't think this even qualifies as major yet alone a critical?

catch’s picture

How would we identify a single log message then and e.g. view it in the site?

We might have to use uuid instead of autoincrement ID. Don't love that really either.

But even then, it's still quite a big number, and you have a site where this happens, then you should probably fix that so many notices are logged, because both having so many php notices/warnings and logging them into the database is a serious performance issue.

So, while this is true we're talking about sites that are running for multiple years.

Berdir’s picture

> So, while this is true we're talking about sites that are running for multiple years.

Sure. But unless I made a mistake, if a site logs 10 log entries per second then that's still ~7 years until you reach that limit. Twice as much if we change it to an unsigned integer. At that point, I'm pretty sure that it would be a serious performance issue long before this happens, so you have bigger issues?

If you keep 100k log records, then you can keep your log records for ~3h, at that point, why have dblog enabled at all?

daffie’s picture

I do not think that truncating the whole watchdog table is a good idea.
You want to throw out the old messages, but keep the newer ones.
The problem with that is that the autoincrement counter cannot be reset.
Maybe it would be a good idea to change the autoincrement key to a key that just generates a unique value, uniqid().
Then there will be no more maximum value that can be reached.

geek-merlin’s picture

Here's a SQL fiddle how this can work IF we want this.
http://sqlfiddle.com/#!9/19f165/1

CREATE TABLE IF NOT EXISTS `watchdog` (
  `id` int(6) unsigned NOT NULL auto_increment,
  `text` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
INSERT INTO `watchdog` (`text`) VALUES
  ('One'),
  ('Two'),
  ('Three'),
  ('Four');
delete from `watchdog` where id in (1,2);
select min(id) from watchdog; /* 3 */
update watchdog set id=id+1-3;
ALTER TABLE watchdog AUTO_INCREMENT = 1;
INSERT INTO `watchdog` (`text`) VALUES
  ('Five');
geek-merlin’s picture

That said, i'd rather make the WID a bigint.

catch’s picture

The one problem with uniqid() is that autoincrement currently guarantees that watchdog messages can be ordered chronologically - the timestamp doesn't since obviously things can be logged in the same millisecond.

daffie’s picture

The one problem with uniqid() is that autoincrement currently guarantees that watchdog messages can be ordered chronologically - the timestamp doesn't since obviously things can be logged in the same millisecond.

Gets then go for the bigint solution.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

mindbet’s picture

Attached is a patch for suggestions from geek-merlin and daffie.

'wid' => [
'type' => 'serial',
'not null' => TRUE,
+ 'size' => 'big',
'description' => 'Primary Key: Unique watchdog event ID.',
],

daffie’s picture

Issue tags: +Bug Smash Initiative
Berdir’s picture

Status: Active » Needs review

Setting to needs review to let the tests run. Update tests are going to fail, this needs a corresponding update function.

daffie’s picture

Status: Needs review » Needs work
Issue tags: +D9 upgrade path

The patch needs an upgrade path, so that the size of the wid column of the watchdog table in existing sites is changed to big.

Berdir’s picture

Status: Needs work » Needs review

And we also need an explicit test then, because as a non-breaking database structure change, nothing picks this up as a problem right now.

Berdir’s picture

Status: Needs review » Needs work
phenaproxima’s picture

That was really friggin' tricky to write a test for, but I tried. I'm not sure this is exactly what we want, because even with the patch in #18, the test still fails for me. So either the test I wrote is flawed (very likely), or the bigint solution won't work. Thoughts?

Status: Needs review » Needs work

The last submitted patch, 24: 3081144-24.patch, failed testing. View results
- codesniffer_fixes.patch Interdiff of automated coding standards fixes only.

geek-merlin’s picture

So #24 is the test only which fails as it should.
(Yay! we can use anon classes now, was not aware of this!)

If you post test-plus-fix patch, maybe the failure messages give someone a hint.

From a quick glance, it looks to me that the anonymous class does not get $decorated set (but maybe that's my lack of deep phpunit groking).

Berdir’s picture

What I was asking for is an upgrade path test, which should be trivial :). That's certainly a very creative test, but yes of course, the current patch isn't going to fix anything, it's just going to make it happen later.

I still think that we don't have to do more to fix it and also don't think this is critical :) An alternative option would be to do a requirements check that checks if we're getting close to the limit and recommends to empty the table *before* it happens.

If we start to replace autoincrement (ish) fields because of this, where does it stop? it's probably the most likely table to happen, but it's not impossible for others either.

phenaproxima’s picture

Status: Needs work » Needs review
Issue tags: +Needs upgrade path tests
FileSize
2.53 KB

Here's a patch combining the change in #18 with the test from #24. Let's see what it does. Also tagging for an upgrade path test per #27.

Status: Needs review » Needs work

The last submitted patch, 28: 3081144-28.patch, failed testing. View results
- codesniffer_fixes.patch Interdiff of automated coding standards fixes only.

phenaproxima’s picture

Okay, here's an attempt at a tested update path.

This should be probably be signed off on by someone who's more knowledgeable than me when it comes to databases, since it relies on PHP_INT_SIZE and assumes that a "normal" integer column will not contain a 64-bit value (which is likely incorrect on SQLite, for a start).

phenaproxima’s picture

For the record, I agree with this:

the current patch isn't going to fix anything, it's just going to make it happen later.

I don't know what an alternative would be, but making the column support big integers is just kicking the can down the road, and may very well fail at a certain scale.

Why, exactly, can't we switch to using UUIDs?

Status: Needs review » Needs work

The last submitted patch, 30: 3081144-30-PASS.patch, failed testing. View results

mindbet’s picture

Thank you for letting me chime in; I hope I don't muddy the waters further.

Cleanest solution would be to log to watchdog using microtime()
and not use an autoincrement primary key (wid).

We would need to change to pruning function in dblog_cron so that it prunes
based on a time span rather than a number of records, but that might actually
be conceptually clearer for users.

The issue of a INT database primary key reaching maximum integer is possible,
but rare.

2^31 log entries at 1k per entry is 2 TB of data -- most hosts would stop you
long before you reached that.

But if you were hosting on AWS, and had not set a database size limit, and
if you were the victim of DDOS attack, you could possibly reach autoincrement max.

Alternate approach:

In DbLog.php, catch the database error and turn off the dblog module

\Drupal::service('module_installer')->uninstall(['dblog']);

Berdir’s picture

> 2^31 log entries at 1k per entry is 2 TB of data -- most hosts would stop you long before you reached that.
> But if you were hosting on AWS, and had not set a database size limit, and if you were the victim of DDOS attack, you could possibly reach autoincrement max.

Deleting records doesn't reset the ID, so you don't actually have 2 TB of data, you could reach that with the limit set to 1000.

catch’s picture

Why, exactly, can't we switch to using UUIDs?

@phenaproxima the autoincrement gives us a definite sequence to sort by, for debugging we need to the sort to be more accurate than per-second.

As @mindbet mentions in #33 another option might be to log with microtime() but we'd need to make that change at the same time and update any sorts.

mindbet’s picture

Here is an updated patch to convert the watchdog primary key (wid) to bigint.

mindbet’s picture

Comments on approach:

It is easily possible to add 25 log events per second to watchdog.
I was able to do this in local dev using ab.

At 25 logs/sec, the INT space (2^31) will be full in 2.72 years.
The BIGINT space (2^63) will last 11+ billion years.

The microtime suggestion, on further consideration, is not a good route.

microtime produces either a float or a string

The float is limited precision.

The string looks something like this:

0.88814800 1593953860

That string would need to be processed for every log entry.

https://www.php.net/manual/en/function.microtime.php

I tested the SQL command

ALTER TABLE `watchdog` CHANGE `wid` `wid` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique watchdog event ID.'

on local, on 100,000 records, and it took about 2 seconds.

There is a lot of discussion of the INT to BIGINT problem online, for example see:

https://sqlperformance.com/2016/01/sql-indexes/widening-identity-column-1

mindbet’s picture

Corrected patch from #36.

mindbet’s picture

geek-merlin’s picture

As of the suggestion to use microtime: It sounds appealing on first hear.
But with an autoincrement ID we get a sort of integrity constraint that we know when a log entry is deleted. We'd lose that.

mindbet’s picture

mindbet’s picture

Here is a revised patch.

I used some direct SQL statements to work around issues where it did not appear that $schema->changeField was making all of the necessary changes.

There is no db_type specific code for sqlite because sqlite appears to handle 8-byte integers out of the box, so no update needed.

The test in #30 still needs work IMHO — we need to check that watchdog.wid can accept a value greater than 2**31, but also need to check that subsequent writes to watchdog are successful.

mindbet’s picture

Code syntax fixes
Mostly to get Postgres test working.

mindbet’s picture

Trying another way to get Postgres changefield to work.

mindbet’s picture

Postgres changes are now made using the schema api.

In order to do this, I needed to make changes to the pgsql driver, in part based on code in this issue:

https://www.drupal.org/project/drupal/issues/3028706

mindbet’s picture

Patch 46 fixes some things in patch 45.

This is removed:

function updateSequenceOwnership

because it belongs to issue 3028706, not this issue.

Also there was parameter commented out for testing that is now restored:

diff -u b/core/modules/dblog/dblog.install b/core/modules/dblog/dblog.install
--- b/core/modules/dblog/dblog.install
+++ b/core/modules/dblog/dblog.install
@@ -17,7 +17,7 @@
'wid' => [
'type' => 'serial',
'not null' => TRUE,
-# 'size' => 'big',
+ 'size' => 'big',

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

daffie’s picture

Status: Needs review » Needs work
  1. +++ b/core/modules/dblog/tests/src/Functional/UpdatePathTest.php
    @@ -0,0 +1,76 @@
    +    if (PHP_INT_SIZE !== 8) {
    

    Can we change !== to <.

  2. +++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
    @@ -958,7 +961,7 @@ EOD;
    -      $this->connection->query("CREATE SEQUENCE " . $seq);
    +      $this->connection->query("CREATE SEQUENCE IF NOT EXISTS " . $seq . " OWNED BY {" . $table . "}." . $field_new);
    

    I think that this change is out of scope for this issue.

  3. +++ b/core/modules/dblog/dblog.install
    @@ -97,3 +100,46 @@ function dblog_schema() {
    +  if ($db_type == 'pgsql') {
    ...
    +  if ($db_type == 'mysql') {
    

    Can we just have one script for all databases and then add exceptions for specific databases.

  4. +++ b/core/modules/dblog/dblog.install
    @@ -97,3 +100,46 @@ function dblog_schema() {
    +    \Drupal::messenger()->addMessage('pgsql');
    ...
    +    \Drupal::messenger()->addMessage('Added sequence');
    ...
    +    \Drupal::messenger()->addMessage('mysql');
    

    These messages are not necessary.

  5. +++ b/core/modules/dblog/tests/src/Functional/UpdatePathTest.php
    @@ -0,0 +1,76 @@
    +    $this->runUpdates();
    

    Can we check before running the update script what the database field value is for "wid". Regular serial field and not big.

  6. +++ b/core/modules/dblog/tests/src/Functional/UpdatePathTest.php
    @@ -0,0 +1,76 @@
    +    $insert = Database::getConnection()->insert('watchdog');
    

    I do not this this is necessary. Just query the database for the field values of the field "wid". It should be big now.

anmolgoyal74’s picture

Assigned: Unassigned » anmolgoyal74
FileSize
4.95 KB
2.5 KB

Addressed point => 1,2,4.
WIll be working on the remaining 3.

daffie’s picture

Assigned: anmolgoyal74 » Unassigned
daffie’s picture

Title: Database primary keys can exceed maximum integer storeable (has actually occurred, in watchdog) » [PP-1] Database primary keys can exceed maximum integer storeable (has actually occurred, in watchdog)
Status: Needs work » Postponed
Related issues: +#3191391: Schema::changeField() has bug when changing regular serial field to big serial field

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

stephencamilo’s picture

Status: Postponed » Closed (won't fix)
hestenet’s picture

Status: Closed (won't fix) » Postponed

Reset issue status.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

quietone’s picture

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

Add template and add postponed issue to remaining tasks.

larowlan credited vacho.

larowlan’s picture

Adding credit from #3024410: Watchdog wid column should be unsigned which I closed as a duplicate

andypost’s picture

dagmar’s picture

Status: Postponed » Needs work

#3191391: Schema::changeField() has bug when changing regular serial field to big serial field was merged for D10 and I just provided the backport for D9.5 I think this is now unblocked.

dagmar’s picture

Title: [PP-1] Database primary keys can exceed maximum integer storeable (has actually occurred, in watchdog) » Database primary keys can exceed maximum integer storeable (has actually occurred, in watchdog)
dagmar’s picture

Upgraded to work with Drupal 10.1.x. The lines from patch #49 regarding core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php now seems included in another file core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php.

I think I also addressed comment .3 from #48

Status: Needs review » Needs work

The last submitted patch, 66: 3081144-66.patch, failed testing. View results

dagmar’s picture

Arantxio’s picture

Thanks for this input @dagmar, I think we could make this .install function even shorter using some inspiration from issue #3191391.

Let's see if this breaks the tests or not.

dagmar’s picture

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

I updated the issue summary to describe the proposed solution.

daffie’s picture

+++ b/core/modules/dblog/tests/src/Functional/UpdatePathTest.php
@@ -0,0 +1,79 @@
+    $insert = Database::getConnection()->insert('watchdog');
+
+    $connection = $this->prophesize(Connection::class);
+    $connection->getTarget()->willReturn(DbLog::DEDICATED_DBLOG_CONNECTION_TARGET);
+    $connection->insert('watchdog')->willReturn(new class ($insert) {
+
+      /**
+       * The decorated query object.
+       *
+       * @var \Drupal\Core\Database\Query\Insert
+       */
+      private $decorated;
+
+      /**
+       * Constructor for this anonymous class.
+       *
+       * @param \Drupal\Core\Database\Query\Insert $decorated
+       *   The decorated query object.
+       */
+      public function __construct(Insert $decorated) {
+        $this->decorated = $decorated;
+      }
+
+      /**
+       * Overrides \Drupal\Core\Database\Query\Insert::fields().
+       *
+       * Purposefully sets the 'wid' column of the query to a value which will
+       * overflow the 32-bit integer limit.
+       */
+      public function fields(array $fields, array $values = []) {
+        $fields['wid'] = PHP_INT_MAX;
+        return $this->decorated->fields($fields, $values);
+      }
+
+    });
+    $this->container->set('database', $connection->reveal());
+    $this->generateLogEntries(1);

Can we replace this part with:
- insert row into table with a value for wid that is bigger than the regular maximum integer value.
- test that the row exists in the table with the correct value for the wid field
- insert another row without a value for wid. With the auto-increment functionality it should get the previous wid value plus 1.
- test that the new row exists in the table with the correct value for the wid field.

Akram Khan’s picture

added updated patch and addressed #71

daffie’s picture

  1. +++ b/core/modules/dblog/tests/src/Functional/UpdatePathTest.php
    @@ -0,0 +1,78 @@
    +    $connection = $this->prophesize(Connection::class);
    

    We do not need to prophesize the database connection. Just use the regular one

  2. +++ b/core/modules/dblog/tests/src/Functional/UpdatePathTest.php
    @@ -0,0 +1,78 @@
    +      $fields['wid'] = PHP_INT_MAX;
    

    Can we change the value of PHP_MAX_INT with its value times 1000. That will be 2147483647000.

All we need to do is to test that we can insert a value for the wid field that is bigger than 2147483647 and that for values bigger than that the auto increment functionality works. No prophesize functionality needed.

Akram Khan’s picture

daffie’s picture

  1. +++ b/core/modules/dblog/tests/src/Functional/UpdatePathTest.php
    @@ -0,0 +1,63 @@
    +    $insert->fields(['wid' => PHP_INT_MAX]);
    ...
    +      ->condition('wid', PHP_INT_MAX)
    ...
    +      ->condition('wid', PHP_INT_MAX + 1)
    

    Can you replace PHP_INT_MAX with 2147483647000.

  2. +++ b/core/modules/dblog/tests/src/Functional/UpdatePathTest.php
    @@ -0,0 +1,63 @@
    +    $insert = Database::getConnection()->insert('watchdog');
    ...
    +    $insert = Database::getConnection()->insert('watchdog');
    ...
    +    $result = Database::getConnection()->select('watchdog')
    ...
    +    $result = Database::getConnection()->select('watchdog')
    

    Can we use the variable $connection. Please add: $connection = Database::getConnection();

_pratik_’s picture

Addressed #75 comment.
Thanks

Status: Needs review » Needs work

The last submitted patch, 76: 3081144-76.patch, failed testing. View results

daffie’s picture

@Akram Khan and @pratik: You are supposed to run the test you are working on your local machine. To make sure that it passes. Now it is not.

Arantxio’s picture

I've adjusted the patch so the test don't fail. The dblog table has a lot of not-null fields, so we need to fill these to insert the log.

I've also removed the use cases for FakeLogEntries and ProphecyTrait, we still pass the test and we don't need to alter the baseline anymore.

daffie’s picture

All code changes look good to me.
I have updated the IS.
For me it is RTBC.

  • catch committed e9a82dd9 on 10.1.x
    Issue #3081144 by mindbet, phenaproxima, Akram Khan, Arantxio, dagmar,...
catch’s picture

Status: Reviewed & tested by the community » Fixed

Committed e9a82dd and pushed to HEAD. Thanks!

Status: Fixed » Closed (fixed)

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