[Bug 1657256] Re: Percona crashes when doing a a 'larger' update

ChristianEhrhardt 1657256 at bugs.launchpad.net
Tue Oct 17 14:27:09 UTC 2017


I was asked to help with the review and on a first glimpse agree with
Robie c#62.

TL;DR:
1. munching various changes together makes it hard to review
2. several changes are not clear why they were added to the debdiff
2. We are in Final Freeze already, so SRU Rules apply -> lets fix the FTBFS and drop all not needed changes which make the change easier to grasp, better to review and safer to apply.

If you could adapt a git based workflow for complex uploads that would
help review and changes as well.

I'll rework the patch in a way I assume it might work.
Then I ask Jorge to review if this is still ok with him.

I can recreate the build errors on the last upload.
It matches those in [1].

I checked Robies comments above and referencing his changes I did:
1. really not needed atm - dropping
2. really not needed atm - dropping
3. the effect of this depends on defines like IB_STRONG_MEMORY_MODEL
   For Intel this is still a no-op (as the other defines), just now a defined
   instead of an undefined no-op define.
   => keep this change
4. Yes this is like "compiler please check nothing" which I think is too much
   The code actually already takes a very detailed list of ignores to run with -Werror despite 
   some warnings. If you look at [1] you see e.g. -Wno-error=nonnull-compare and
   -Wno-error=unused-result in combination with -Werror. That way it is safe, but just allows 
   a few.
   Dropping -Werror in general and even setting fpermissive [2] is much more than needed
   This is new in gcc7 [3] and that is what we look for.
   => use -Wno-error=implicit-fallthrough which will keep the warning, but make it non fatal
   => tests showed a more cases that are needed like format-overflow, ... (added as needed)
   => See below for details on permissive
5. nice cleanup but not needed
   => drop
6. This might be to make the defines available earlier?
   I tested to build without and it was fine on x86.
7. I'll have to rewrite the changelog anyway, so that will be cleaned

This exercise (other than review) of rewriting the fix was mostly disabling the new errors, but one was special. It now better detects ISO standard violations.
That causes:
  "error: ISO C++ forbids comparison between pointer and integer [-fpermissive]"#
Now one might think, lets add that because the doc says:
 -fpermissive
     Downgrade some diagnostics about nonconformant code from errors
     to warnings.  Thus, using -fpermissive allows some nonconforming
     code to compile.

But that makes something that is an error a warning, which still is an error with -Werror.
You can't further downgrade this with -Wno-... [4]
Instead these errors need to be fixed in code - otherwise we would have to drop -Werrror which I would not like.

Test Program:
#include <iostream>
using namespace std;

int main() 
{
    const char *str = "Foo";
    if (str != '\0')
    {
        cout << "Hello, World!";
    }
    return 0;
}

I fixed it with a in-source fix "fix-gcc7-compiler-errors.patch".
I'd ask you Jorge, to please discuss to upstream this.

After quite some iterations I was successful with that on a local build.
Switching to cross arch build on Launchpad to be entirely sure - this is still building, so further respins might be needed if something shows up there.

@Jorge - If a test would fast and the build succeeds, please consider
testing the ppa at [5].

I upload this for review (Jorge if you want, Rbasak for sure but it should be easier to look at now) and sponsoring (Rbasak).
Please look at the changes suggested in [6], I wasn't sure if you want a normal MP after so much review was on the debdiff. But if you want there would be one in [7] - that would give us commentary functions of LP.

[1]: https://launchpadlibrarian.net/336371437/buildlog_ubuntu-artful-amd64.percona-xtradb-cluster-5.6_5.6.34-26.19-0ubuntu3_BUILDING.txt.gz
[2]: https://gcc.gnu.org/onlinedocs/gcc-4.0.4/gcc/C_002b_002b-Dialect-Options.html#index-fpermissive-140
[3]: https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/
[4]: https://stackoverflow.com/questions/19214645/how-to-suppress-warnings-for-void-to-foo-conversions-reduced-from-errors
[5]: https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/2994
[6]: https://code.launchpad.net/~paelzer/ubuntu/+source/percona-xtradb-cluster-5.6/+git/percona-xtradb-cluster-5.6/+ref/bug-1657256-FTBFS-cleanup
[7]: https://code.launchpad.net/~paelzer/ubuntu/+source/percona-xtradb-cluster-5.6/+git/percona-xtradb-cluster-5.6/+merge/332357

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1657256

Title:
  Percona crashes when doing a a 'larger' update

Status in OpenStack Charm Test Infra:
  Confirmed
Status in percona-xtradb-cluster-5.5 package in Ubuntu:
  Confirmed
Status in percona-xtradb-cluster-5.6 package in Ubuntu:
  In Progress
Status in percona-xtradb-cluster-5.5 source package in Trusty:
  Confirmed
Status in percona-xtradb-cluster-5.6 source package in Xenial:
  Confirmed
Status in percona-xtradb-cluster-5.6 source package in Zesty:
  Confirmed
Status in percona-xtradb-cluster-5.6 source package in Artful:
  In Progress

Bug description:
  [Impact]

   * Percona will segfault when exposed to medium load, almost imediately
   * This is because of a bug in upstream, which manifests only on PPC

  [Test Case]

   * Install and configure percona-xtradb-cluster-server
    * Run sysbench against configured node (only one node is needed, no need for proper cluster):
     # sysbench --test=oltp --oltp-test-mode=complex --max-time=60 --num-threads=110 run
   * mysqld will segfault seconds withing starting the test

  [Regression Potential]

   * This is a cherry-pick from an upstream fix (https://jira.mariadb.org/browse/MDEV-6450)
   * This is not fixed in upstream Percona becasue Percona does not officially support non-intel archs.
   * Because code adds additional memory barriers there was a chance of performance degradation on i386/amd64. However, intensive sysbench syntetic loads proved this is not the case - there are no performance penalties.

  [Other Info]

   *  percona-xtradb-cluster-5.5 is only available for Trusty.
  $ rmadison percona-xtradb-cluster-5.5
   percona-xtradb-cluster-5.5 | 5.5.34-25.9+dfsg-0ubuntu4          | trusty/universe          | source
   percona-xtradb-cluster-5.5 | 5.5.37-25.10+dfsg-0ubuntu0.14.04.1 | trusty-security/universe | source
   percona-xtradb-cluster-5.5 | 5.5.37-25.10+dfsg-0ubuntu0.14.04.2 | trusty-updates/universe  | source

  * See comment #22 for more context about other releases that offers percona-xtradb-cluster-5.6 : 
  https://bugs.launchpad.net/ubuntu/+source/percona-xtradb-cluster-5.5/+bug/1657256/comments/22

   * Upstream commit:
  https://github.com/MariaDB/server/commit/40497577ffd9f85557b15e08ad913f627b2e9530

  [Original Description]

  I'm trying to set up percona-xtradb-cluster-5.5 on PPC machine. While
  the package installs fine, as soon as I run sysbench oltp becnhmark
  against it, Percona dies (even when I start the benchmark with just
  one connection).

  I can also crash mysql manually, by updating the sbtest table (which
  is created by the sysbench utility):

  mysql> update sbtest set pad = 'mario1' limit 1000000;
  ERROR 2013 (HY000): Lost connection to MySQL server during query

  Sometimes I need to repeat this update (with different values for
  'pad' field) few times. This happens regardless of whether I run the
  UPDATE inside the transaction or not.

  This is the assertion found in the log file:

  170117 21:10:55 InnoDB: Assertion failure in thread 70366668321152 in file buf0buf.ic line 1277
  InnoDB: Failing assertion: block->page.buf_fix_count > 0

  This is a single-node percona-xtradb-cluster server, without
  wsrep_provied configured, run inside 14.04 lxc container on 16.04
  host.

  I'm attaching the full log file, mysql configuration file and the core
  dumped.

  The version of the package installed is this 5.5.37-25.10+dfsg-
  0ubuntu0.14.04.2.

To manage notifications about this bug go to:
https://bugs.launchpad.net/charm-test-infra/+bug/1657256/+subscriptions



More information about the Ubuntu-sponsors mailing list