[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