From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 208443858D39; Tue, 14 Mar 2023 09:02:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 208443858D39 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1678784542; bh=7xX1TrrpKVAOb8ExKazBT6AzwmRVDC5ge2ArDLHDTaQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=cM2nC6XguB6QqXTdiEW9QgcdMGfOPODOmW5hes0UOEtLshdZ1dufl3t+KZHgVHvAz 0wCV01bd2dGuJNlIqhPKKebXIKBKBVNBxKt+fnAhKdNmq9pMMuCHiL+COYruq2ELTJ yNhKXVCJFq1MgOEid5DD4VmPgqwLhXbqmwTZtg/M= From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/109109] [13 Regression] mariadb fails in tests on i586 (non-LTO mode) after r13-4435-g2c089640279614e3 Date: Tue, 14 Mar 2023 09:02:20 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 13.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D109109 --- Comment #13 from Jakub Jelinek --- (In reply to Martin Li=C5=A1ka from comment #12) > So the problem happens here: >=20 > static > uint32_t > trx_undo_free_page( >=20 > trx_rseg_t* rseg, > bool in_history, >=20 > uint32_t hdr_page_no, > uint32_t page_no, >=20 > mtr_t* mtr, >=20 >=20 > dberr_t* err) > { > do { if (__builtin_expect(!(ulint) (hdr_page_no !=3D page_no), (0))) { > ut_dbg_assertion_failed("hdr_page_no !=3D page_no", > "/home/abuild/rpmbuild/BUILD/mariadb-10.11.2/storage/innobase/trx/trx0und= o. > cc", 744); } } while (0); >=20 > buf_block_t* undo_block =3D buf_page_get_gen(page_id_t(rseg->space->id, > page_no), > 0, RW_X_LATCH, nullptr, > 10, mtr, err); > if (__builtin_expect(!undo_block, (0))) { > return 0xFFFFFFFFU; > } > buf_block_t* header_block =3D buf_page_get_gen(page_id_t(rseg->space->id, > hdr_page_no), <---- HERE > 0, RW_X_LATCH, nullptr, > 10, mtr, err); > if (__builtin_expect(!header_block, (0))) { > return 0xFFFFFFFFU; > } > ... >=20 > the function arguments are: > #1 0x570e8874 in trx_undo_free_page (rseg=3D0x57a56c40 , > in_history=3Dfalse, hdr_page_no=3D807, page_no=3D817, mtr=3D0xef4ac434, > err=3D0xef4ac3dc) at /tmp/trxundo.ii:181925 >=20 > and the construction of: > page_id_t(rseg->space->id, hdr_page_no) > ends in callee (buf_page_get_gen) with the argument: >=20 > (gdb) p page_id > $5 =3D {m_id =3D 0} >=20 > while in good run it should be {m_id =3D 807} ! Ok, can you please print *rseg , rseg->space[0], *mtr and *err at the start= of the function, so that I can try to construct a self-contained testcase? I assume both buf_page_get_gen return something non-NULL and it doesn't rea= lly matter otherwise what for the reproducer, since e.g. all the further calls = can be noipa handled as completely dummy or even exit (0).=