[MDEV-27436] binlog corruption (/tmp no space left on device at the same moment) Created: 2022-01-07  Updated: 2024-01-14  Resolved: 2023-10-31

Status: Closed
Project: MariaDB Server
Component/s: Replication
Affects Version/s: 10.3.32, 10.6.5
Fix Version/s: 10.4.33, 10.5.24, 10.6.17, 10.11.7, 11.0.5, 11.1.4, 11.2.3, 11.3.2

Type: Bug Priority: Major
Reporter: Richard DEMONGEOT Assignee: Kristian Nielsen
Resolution: Fixed Votes: 1
Labels: corruption

Attachments: File 50-server-data.cnf    
Issue Links:
Blocks
Relates
relates to MDEV-27803 MariaDB binlog corruption when "No sp... Open

 Description   

Hello,

We have seen a binlog coruption on the leader.
Replication was working fine for 1+ years without incident.
It's a positionnal replication. Mono replication flow, but named.

On this Mariadb instance we are running several LOAD DATA in file, who can be concurrents.
They are loaded on several MyISAM tables (mainly partitionned)

Server partitions are :
/ (with tmp & logs) : EXT4 ~100G
/var/lib/mysql2 (Data dir) ZFS - ~7To available
/var/log/mysql-data2 (binlog dir) ZFS - ~7To available

All replicas had stopped at the same position, same time.

2022-01-05 10:03:23 9 [ERROR] Master 'DATA': Error reading packet from server: binlog truncated in the middle of event; consider out of disk space on master; the first event 'mysql-bin.006827' at 440437307, the last event read from 'mysql-bin.007462' at 974385541, the last byte read from 'mysql-bin.007462' at 974385560. (server_errno=1236)
2022-01-05 10:03:23 9 [ERROR] Master 'DATA': Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'binlog truncated in the middle of event; consider out of disk space on master; the first event 'mysql-bin.006827' at 440437307, the last event read from 'mysql-bin.007462' at 974385541, the last byte read from 'mysql-bin.007462' at 974385560.', Internal MariaDB error code: 1236

Binlogs had never been out of space on the leader.

Post mortem analysis permit us to see :

  • A no space left on device on tmpdid (located on /tmp/, ext4 filesystem, root partition) at the time of this corruption.
  • No space left on device on the log directory (same / partition)

    2022-01-05 10:03:22 1853903 [ERROR] Error writing file '/var/log/mysql2/mariadb-slow.log' (errno: 28 "No space left on device")
    2022-01-05 10:03:24 1466973 [ERROR] mysqld: Disk full (/tmp/#sql_4b7c_0.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
    

And the binlog seems good until the last played position, and seems to mixed several events at the corruption time.

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 974385541
#220105 10:03:23 server id 29641  end_log_pos 977305379 CRC32 0x30303a30        Query   thread_id=1853903       exec_time=0     error_code=0
use `DATA_V3`/*!*/;
SET TIMESTAMP=1641373403/*!*/;
SET @@session.pseudo_thread_id=1853903/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
SET @@session.sql_mode=1411383296/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=45/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
REPLACE INTO TMP_COMPUTED_MODULATION_SITE_RESULT VALUES ("8458","1039510","2022-01-05 09:40:00","2022-01-05 09:40:00","2022-01-05 09:50:00","2022-01-05 09:50:00","101270","CITYCODE","TOWN","1530823","1019625","0","1","1","1","1","1")ANONYMIZED and cutted

COMMENT ###### Multi row insert ANONYMIZED & cutted

, ("32270","1039510","2022-01-05 09:40:00","2022-01-05 09:40:00","2022-01-05 09:50:00","2022-01-05 09:<DB>^<D5>a^B<C9>s^@^@L^@^@^@<D1>q^T:^L^@<CF>I^\^@^@^@^@^@^G^@^@^Z^@^@^@^@^@^@^A^@^@ T^@^@^@^@^F^Cstd^D^H^@^H^@-^@DATA_V3^@COMMIT<ED>nESC^D<DB>^<D5>a<A2><C9>s^@^@*^@^@^@<FB>q^T^@<E9>A^X^B^@^@^@^@^B^@^@^@)^@^@^@^@^@^@! <94>K<DB>^<D5>a^B<C9>s^@^@<96>^@^@^@<91>r^T:^D^@<CF>I^\^@^@^@^@^@^G^@^@^Z^@^@^@^@^@^@^A^@^@ T^@^@^@^@^F^Cstd^D!^@^H^@-^@DATA_V3^@DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `TMP_COMPUTED_MODULATION_SITE_RESULT`'<BE>_&^B_<D5>a<A2><C9>s^@^@*^@^@^@<BB>r^T^@<EA>A^X^B^@^@^@^@^B^@^@^@^H^@^@^@^@^@^@<AF>
^H{^B_<D5>a^Q<C9>s^@^@e^G^@^@ z^T:^@^@6<F8>^@^@2022-01-05 00:00:00      1854051 31      0       165231553       164074404       0       0       0       0       0       0       0       \N
2022-01-05 00:00:00     1879781 31      0       55860663        60319704        0       0       0       0       0       0       0       \N
2022-01-05 00:00:00     1862539 31      0       108461823       120990084       0       0       0       0       0       0       0       \N
2022-01-05 00:00:00     1281885 31      0       564070163       691875574       0       0       0       0       0       0       0       \N
2022-01-05 00:00:00     1254696 31      0       41118063        40569754        0       0       0       0       0       0       0       \N
2022-01-05 00:00:00     1856825 31      0       233242983       461197424       0       0       0       0       0       0       0       \N
2022-01-05 00:00:00     1267609 31      0       2147483647      2147483647      0       0       0       0       0       0       0       \N
2022-01-05 00:00:00     1255248 31      0       135264993       192352694       0       0       0       0       0       0       0       \N
2022-01-05 00:00:00     1857757 31      0       66787283        59291904        0       0       0       0       0       0       0       \N
2022-01-05 00:00:00     1282891 2       \N      10140721        12922083        \N      \N      \N      \N      \N      \N      \N      \N

COMMENT ###### Looks like some CSV that we are loading.

2022-01-05 00:00:00     1882902 31      0       54097003        69986734        0       0       0       0       0       0       0       \N
2022-01-05 00:00:00     1125078 31      0       288539153       351866484       0       0       0       0       0       0       0       \N
^VF~F^B_<D5>a^R<C9>s^@^@#^B^@^@C|^T:^@^@<C2>w^\^@^@^@^@^@^@^@^@^]^@6<F8>^@^@^T^@^@^@<A4>^@^@^@^B^@^@^@^@^@^A^@^@ T^@^@^@^@^F^Cstd^D!^@!^@-^@^H-^@^@LOAD DATA CONCURRENT LOCAL INFILE 'PATH.sql' REPLACE INTO TABLE `SCHEMA`.`TABLE` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (####COLUMN LIST####)^Z^_b^Q^B_<D5>a^B<C9>s^@^@H^@^@^@<8B>|^T^@<C2>w^\^@^@^@^@^@^@^@^@^]^@^@^@^@^@^@^A^@^@ T^@^@^@^@^F^Cstd^D!^@!^@-^@^H-^@^@COMMIT<F0><D1><F8>7^B_<D5>a<A2><C9>s^@^@*^@^@^@<B5>|^T^@<EB>A^X^B^@^@^@^@^B^@^@^@^H^@^@^@^@^@^@^HESC
<89>^B_<D5>a^Q<C9>s^@^@ESC^P^@^@Ќ^T:^@^@5<F8>^@^@1034930        2022-01-05 09:40:00     \N      \N      16.7346 0       51.2384 0       \N      2       2022-01-05 09:58:18     0
1034930 2022-01-05 09:50:00     \N      \N      16.7346 0       51.2384 0       \N      2       2022-01-05 09:58:18     0
1041597 2022-01-05 09:20:00     \N      0       0       0       0       0       \N      1       2022-01-05 09:58:30     1

#And we can see several glitches on the CSV

1886786 2022-01-05 10:00:00     \N^M^E!<CB>^B_<D5>a     <C9>s^@^@ESC^P^@^@f<B0>^V:^@^@5<F8>^@^@ \N      1488.34 \N      \N      \N      \N      1       2022-01-05 09:59:42     0
1956945 2022-01-05 10:00:00     \N      \N      0       \N      \N      \N      \N      1       2022-01-05 09:59:39^G,<98><B4>^B_<D5>a  <C9>s^@^@ESC^P^@^@ia*:^@^@5<F8>^@^@     0
1964021 2022-01-05 10:00:00     \N      \N      0       \NCA<84><AE>^B_<D5>a    <C9>s^@^@ESC^P^@^@^Z<95>,:^@^@5<F8>^@^@ \N      \N      \N      1       2022-01-05 09:59:54     0

and finally a big glitch:

1966225 2022-01-05 10:00:00     \N      \N      70.9677 \N      \N      \N      \N      1       2022-01-05 09:59:40     0
1966235 2022-01-05 10:00:00     \N      \N      715.068 \N      \N      \N      \N      1       2022-01-05 09:59:52     0
1966246 2022-01-05 10:00:00     \N      \N      0       \N      \N      \N      \N      1       2022-01-05 09:59:47     0
1966275 2022-01-05 10:00:00     \N      \N      0       \N      \N      \N      \N      1       2<F9><C0>^R^Z^B_<D5>a   <C9>s^@^@0^@^@^@=&-:^@^@5<F8>^@^@022-01-05 09:59:57     0
<8A><87>NU^B_<D5>a^R<C9>s^@^@D^B^@^@<81>(-:^@^@<C0>w^\^@^@^@^@^@^@^@^@%^@5<F8>^@^@^T^@^@^@<9B>^@^@^@^B^@^@^@^@^@^A^@^@ T^@^@^@^@^F^Cstd^D!^@!^@-^@^E^FSYSTE-^@^@LOAD DATA CONCURRENT LOCAL INFILE '/srv/data/prod-bdd-data/tmp/buffertorep/done_DATA_HIST_POWER_validated_dumpHist_ok_2022_01_05_10_00_01.sql' REPLACE INTO TABLE `DATA_V3`.`DATA_HIST_RECENT_POWER` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`ID_CS_MODULATOR`, `DATE_METER`, `ID_REF_TYPE_HOUR`, `POWER_VALUE_1`, `POWER_VALUE_2`, `POWER_VALUE_3`, `POWER_VALUE_4`, `POWER_VALUE_5`, `POWER_VALUE_6`, `ID_REF_DATA_ORIGIN`, `DATE_PROCESSING`, `IS_TIC_PRESENT`)<A0>^@.<A3>^B_<D5>a^B<C9>s^@^@P^@^@^@<D1>(-^@<C0>w^\^@^@^@^@
^@^@^@^@%^@^@^@^@^@^@^A^@^@ T^@^@^@^@^F^Cstd^D!^@!^@-^@^E^FSYSTE-^@^@COMMITl^WC<CD>^M_<D5>a<A2><C9>s^@^@*^@^@^@<FB>(-^@<EC>A^X^B^@^@^@^@^B^@^@^@^H^@^@^@^@^@^@<E0><CB>^\6^M_<D5>a<A0><C9>s^@^@^W^A^@^@^R*-:^@^@LOAD DATA CONCURRENT LOCAL INFILE '/srv/transitaire/incoming/transit_data_hist_temperature_modulator/listener_comm-tls-dt-02.1641373451.370478.dump.replicatData1' IGNORE INTO TABLE DATA_HIST_TEMPERATURE_MODULATOR(ID_CS_MODULATOR, DATE_METER, TEMPERATURE_C):GE<86>^M_
<D5>a^S<C9>s^@^@Q^@^@^@c*-:^@^@<E7>^@^@^@^@^@^A^@^GDATA_V3^@^_DATA_HIST_TEMPERATURE_MODULATOR^@^C^C^Q^D^B^@^D^D<BD><92>nj^M_<D5>a^W<C9>s^@^@<A5>^G^@^@^H2-:^@^@<E7>^@^@^@^@^@^A^@^C<FF><F8>ܾ^\^@a<D5>^^P<9E><EF><8C>A<F8><D5><C0>^\^@a<D5>^^P^
<BA><AF>A<F8><D1><C3>^\^@a<D5>^^Pff^GB<F8><97><CE>^\^@a<D5>^^P<BE><9F><C5>A<F8>}<C3>^\^@a<D5>^^Pu<93><A2>A<F8>z<C3>^\^@a<D5>^^P<C3><F5><A6>A<F8><DD><C3>^\^@a<D5>^^Po^R<D3>A<F8>^A<F3>^]^@a<D5>^^P^@^@<90>A<F8><C8><C3>^\^@a<D5>^^P`<E5><B6>A
<F8><FB><BE>^\^@a<D5>^^P<81><95><B3>A<F8><D8><C3>^\^@a<D5>^^P<96>C<AC>A<F8>Ҿ^\^@a<D5>^^P^@^@<88>A<F8><8C><C3>^\^@a<D5>^^Pff<AE>A<F8><B9><C3>^\^@a<D5>^^P<FC><A9>7B<F8><F5>q^]^@a<D5>^^P<9E><EF><88>A<F8><E8>q^]^@a<D5>^^P^@^@<98>A<F8><E7>q^]
^@a<D5>^^P<96>C<AC>A<F8><E5>q^]^@a<D5>^^P%^F<85>A<F8><U+0094>^]^@a<D5>^^P^@^@<A0>A<F8><F2><94>^]^@a<D5>^^P^@^@<90>A<F8><AB><94>^]^@a<D5>^^P^@^@<A8>A<F8>^C<B3>^]^@a<D5>^^P^@^@<A0>A<F8><8C><94>^]^@a<D5>^^P^@^@<90>A<F8><A2>t^]^@a<D5>^^P^@^@
^DB<F8><F9><B2>^]^@a<D5>^^P^@^@<90>A<F8><B0>t^]^@a<D5>^^P^@^@<88>A<F8>^]<B3>^]^@a<D5>^^P^@^@<90>A<F8>ה^]^@a<D5>^^P^@^@<98>A<F8><BA>t^]^@a<D5>^^P^@^@<88>A<F8>ڲ^]^@a<D5>^^P^@^@<A0>A<F8><80><94>^]^@a<D5>^^P^@^@<A0>A<F8>&<92>^]^@a<D5>^^P^@^@
<98>A<F8>^M<92>^]^@a<D5>^^P^@^@^HB<F8><E8><91>^]^@a<D5>^^P^@^@<C8>A<F8>R<92>^]^@a<D5>^^P^@^@<D0>A<F8>5<92>^]^@a<D5>^^P^@^@<A8>A<F8>Jh^]^@a<D5>^^P^@^@<88>A<F8>&?^]^@a<D5>^^P<9A><99><94>A<F8><F5>g^]^@a<D5>^^P^@^@<80>A<F8>^Mh^]^@a<D5>^^P^@^@<80>A<F8>0^@^^^@a<D5>[<B8>^@^@<88>A<F8><DA><FF>^]^@a<D5>[<B8>^@^@PA<F8><EE><FF>^]^@a<D5>[<B8>^@^@@A<F8><9D><FF>^]^@a<D5>[<B8>^@^@`A<F8>%^@^^^@a<D5>[<B8>^@^@pA<F8>@^@^^^@a<D5>[<B8>^@^@@A<F8>@^@^^^@a<D5>^^P^@^@@A<F8>%^@^^^@a<D5>^^P^@^@pA
<F8><DA><FF>^]^@a<D5>^^P^@^@PA<F8><9D><FF>^]^@a<D5>^^P^@^@`A<F8>0^@^^^@a<D5>^^P^@^@<88>A<F8><EE><FF>^]^@a<D5>^^P^@^@@A<F8>@<BD>^\^@a<D5>^^P<8F><U+008B>A<F8>^]e^]^@a<D5>^^P^@^@<B8>A<F8><DA>d^]^@a<D5>^^P^@^@<88>A<F8><F1>s^]^@a<D5>^^P<85>
<EB><E1>A<F8>2e^]^@a<D5>^^P^@^@<B8>A<F8>,e^]^@a<D5>^^P^@^@<88>A<F8><E9>d^]^@a<D5>^^P^@^@<90>A<F8>^Ct^]^@a<D5>^^PNb<D3>A<F8>7<^]^@a<D5>^^P^@^@<D8>A<F8><CC><^]^@a<D5>^^P^@^@<B0>A<F8>-<^]^@a<D5>^^P<89>A<CB>A<F8><B9><^]^@a<D5>^^P^@^@<A0>A<F8>O<^]^@a<D5>^^P^@^@<C8>A<F8><8F><^]^@a<D5>^^P^@^@<A0>A<F8>m<^]^@a<D5>^^P^@^@<F0>A<F8>\<82>^]^@a<D5>^^P^@^@<B8>A<F8>a<FD>^]^@a<D5>^^P^@^@pA<F8>\<AA>^]^@a<D5>^^P^@^@<A0>A<F8><D1><FD>^]^@a<D5>^^P^@^@`A<F8>t<AA>^]^@a<D5>^^P<B0>r<BF>A<F8>^A<FE>^]^@a<D5>^^P^@^@PA<F8>E<FD>^]^@a<D5>^^P^@^@<A0>A<F8>@<D3>^]^@a<D5>^^P^@^@<88>A<F8>(<D3>^]^@a<D5>^^P^@^@<B0>A<F8>^Y<D3>^]^@a<D5>^^P^@^@<B8>A<F8><FE><D2>^]^@a<D5>^^P^@^@<88>A<F8><A9>+^]^@a<D5>^^P<C3><F5><CA>A<F8><92>+^]^@a<D5>^^P<E1>z<C1>A
<F8>
^]^]^@a<D5>^^P<8B>l<92>A<F8>^N^]^]^@a<D5>^^P^@^@<90>A<F8>^U<D6>^]^@a<D5>^^P^@^@<A0>A<F8>A@^]^@a<D5>^^P^@^@<A0>A<F8>E@^]^@a<D5>^^P^@^@<C8>A<F8>]@^]^@a<D5>^^P^@^@@A<F8><83><D1>^]^@a<D5>^^P^@^@`A<F8><AB><D1>^]^@a<D5>^^P^@^@`A<F8><E1><D0>^]^@a<D5>^^P^@^@<88>A<F8><E8><D2>^]^@a<D5>^^P^@^@0A<F8>[<D1>^]^@a<D5>^^P^@^@PA<F8>5<D1>^]^@a<D5>^^P^@^@pA<F8>(<EC>^\^@a<D5>^^P<F2><D2>}A<F8>H<EC>^\^@a<D5>^^P<FC><A9><9A>A<F8><A5>1^]^@a<D5>^^P^@^@<80>A<F8><98>1^]^@a<D5>^^P^@^@<A0>A<F8>}1^]^@a
<D5>^^P^@^@<B0>A<F8>^^<EC>^\^@a<D5>^^P^F<81>iA<F8>N<EC>^\^@a<D5>^^P<89>A~A<F8><8D>1^]^@a<D5>^^P^@^@<A8>A<F8><BF>1^]^@a<D5>^^P<A8><C6><C1>A<F8>^X<EC>^\^@a<D5>^^P<9A><99><94>A<F8><9F>1^]^@a<D5>^^P^@^@<80>A<F8>o1^]^@a<D5>^^P^@^@<A8>A<F8><9E><DD>^\^@a<D5>^^P<85><EB><C5>A<F8><BD><DD>^\^@a<D5>^^P<FE>ԢA<F8><B2><DD>^\^@a<D5>^^P<C5>A<F8><93><DD>^\^@a<D5>^^P<D9><CE><C6>A<F8><86><B4>^]^@a<D5>^^P^@^@<80>A<F8><8D><AA>^]^@a<D5>^^P^@^@<B8>A<F8><9B><AA>^]^@a<D5>^^P<FC><A9><C2>A<F8>]<B4>
^]^@a<D5>^^P^@^@<80>A<F8><C3>X^]^@a<D5>^^P^@^@<B0>A<F8><C2>^V^]^@a<D5>^^P+<87><8B>A<F8><D3>^V^]^@a<D5>^^P^@^@<FC>A<F8><E4>^V^]^@a<D5>^^P<A6><9B><D4>A<F8><C5>^V^]^@a<D5>^^P%^F<97>A<F8><BA>^V^]^@a<D5>^^P<81><95><BB>A<F8><EC>^V^]^@a<D5>^^P
<F8>S<CD>A<F8><BE>^V^]^@a<D5>^^P^@^@<AC>A<F8><E2>^V^]^@a<D5>^^Pb^P<AD>A<F8><BC>^V^]^@a<D5>^^P㥱A<F8>C<BD>^\^@a<D5>^^P<85><EB><CD>A<F8>I<BD>^\^@a<D5>^^P+<87><AC>A<F8>#<BD>^\^@a<D5>^^P<83><C0><B2>A<F8>^@<BD>^\^@a<D5>^^P<C3><F5><C2>A<F8>.
<BD>^\^@a<D5>^^P<FE>ԢA<F8>^@<D4>^]^@a<D5>^^P^@^@<98>A<F8><BD><D4>^]^@a<D5>^^P^@^@<90>A<F8><F6>|^]^@a<D5>^^P^@^@ A<F8>a}^]^@a<D5>^^P^@^@ A<F8>K}^]^@a<D5>^^P^@^@<98>A<F8>5}^]^@a<D5>^^Pd;/A<F8>@}^]^@a<D5>^^P^@^@<98>A<F8>_<F8>^]^@a<D5>^^P^@^@<88>A<F8>
<F9>^]^@a<D5>^^P^@^@pA<F8><D3><F8>^]^@a<D5>^^P^@^@<80>A<F8><EA><F8>^]^@a<D5>^^P^@^@<80>A<F8><B7><F8>^]^@a<D5>^^P^@^@<90>A<F8><80><F8>^]^@a<D5>^^P^@^@<80>A<F8><AF><E4>^]^@a<D5>^^P^@^@<80>A<F8>d<E4>^]^@a<D5>^^P^@^@@A<F8><AC><E4>^]^@a<D5>^^P^@^@<80>A<F8>|<E4>^]^@a<D5>^^P^@^@<88>A<F8><BC>"^]^@a<D5>^^P^@^@<A0>A<F8> <82>^]^@a<D5>^^P^@^@<A0>A<F8>H<82>^]^@a<D5>^^P^@^@<A0>A<F8>1<82>^]^@a<D5>^^P^@^@<98>A/rN<C4>^M_<D5>a^B<C9>s^@^@T^@^@^@\2-^@<CE>w^\^@^@^@^@^@^G^@^@"^@^@^@^@^@^@^A^@
^@ T^@^@^@^@^F^Cstd^D^H^@^H^@-^@^E^FSYSTEMDATA_V3^@COMMIT<E9><D2><EC><D8>^M_<D5>a<A2><C9>s^@^@*^@^@^@<86>2-^@<ED>A^X^B^@^@^@^@^B^@^@^@^H^@^@^@^@^@^@=^?<8A><B4>^M_<D5>a<A0><C9>s^@^@^W^A^@^@<9D>3-:^@^@LOAD DATA CONCURRENT LOCAL INFILE '/srv/transitaire/incoming/transit_data_hist_temperature_modulator/listener_comm-tls-dt-04.1641373451.373845.dump.replicatData1' IGNORE INTO TABLE DATA_HIST_TEMPERATURE_MODULATOR(ID_CS_MODULATOR, DATE_METER, TEMPERATURE_C)<B7><A3><C4>:^M_<D5>a^S<C9>s^@^@Q^@^@^@<EE>3-:^@^@<E7>^@^@^@^@^@^A^@^GDATA_V3^@^_DATA_HIST_TEMPERATURE_MODULATOR^@^C^C^Q^D^B^@^D^D^GG<B9>k^M_<D5>a^W<C9>s^@^@<E6>^G^@^@<D4>;-:^@^@<E7>^@^@^@^@^@^A^@^C<FF><F8><C0><BC>^]^@a<D5>^^P^@^@<D8>A<F8>^C<B5>^]^@a<D5>^^P^@^@<A8>A<F8><F9><BE>^]^@a<D5>^^P^@^@<A0>A<F8>"<B6>^]^@a<D5>^^P^@^@<F0>A<F8><E5><E5>^]^@a<D5>^^P^@^@<C0>A<F8><F0><B5>^]^@a<D5>^^P^@^@<C0>A<F8><E8><BC>^]^@a<D5>^^P^@^@<B0>A<F8><A4><B5>^]^@a<D5>^^P^@^@<A0>A<F8><80><B5>^]^@a<D5>^^P^@^@<A0>A
<F8><E9><BC>^]^@a<D5>^^P^@^@<A0>A<F8><FA><B5>^]^@a<D5>^^P^@^@<B8>A<F8><A1><BE>^]^@a<D5>^^Po^R<D3>A<F8>ּ^]^@a<D5>^^P^@^@<B8>A<F8><D6><E5>^]^@a<D5>^^P^@^@PA<F8><A9><BE>^]^@a<D5>^^P^@^@<B8>A<F8>^N<B5>^]^@a<D5>^^P^@^@<A8>A<F8>A<B6>^]^@a<D5>^^P^@^@<A0>A<F8>2<E6>^]^@a<D5>^^P^@^@<98>A<F8><F6><E5>^]^@a<D5>^^P^N-<F6>A<F8>ξ^]^@a<D5>^^P^@^@<B8>A<F8>Y ^]^@a<D5>^^P^@^@<98>A<F8>ty^]^@a<D5>^^P^@^@<A8>A<F8><DA><C0>^]^@a<D5>^^P<CD>̬A<F8><F1><C6>^]^@a<D5>^^P^@^@<88>A<F8><B3>^X^]^@a<D5>^^P
<F8>S<95>A<F8><AD>^X^]^@a<D5>^^P<CF><F7><90>A<F8><A8>^X^]^@a<D5>^^PD^K^CB<F8><C8>^X^]^@a<D5>^^PR<B8><F4>A<F8><9E>^X^]^@a<D5>^^P<E9>&<D6>A<F8><D6>^X^]^@a<D5>^^P<A4>p<DD>A<F8><95>^X^]^@a<D5>^^P<81><95><B3>A<F8><BA>^X^]^@a<D5>^^P<85><EB><C5>A<F8>0P^]^@a<D5>^^Py<E9>vA<F8>IP^]^@a<D5>^^P^@^@<E8>A<F8>^NP^]^@a<D5>^^P`<E5><A4>A<F8>?P^]^@a<D5>^^P^@^@<C0>A<F8><C2><D7>^\^@a<D5>^^P<B4>ȞA<F8><C8><D6>^\^@a<D5>^^P^B+<BF>A<F8>^P<D7>^\^@a<D5>^^P/ݣA<F8><DB><D7>^\^@a<D5>^^P+<87><AC>A<F8><BB><D6>^\^@a<D5>^^P<A8><C6><C1>A<F8><A7><D7>^\^@a<D5>^^PT<E3><C8>A<F8>I<D7>^\^@a<D5>^^P33<B2>A<F8>4<D7>^\^@a<D5>^^P<C3><F5><B4>A<F8><D4><D6>^\^@a<D5>^^Pu<93><A2>A<F8><DF><D6>^\^@a<D5>^^P<DD>$<9B>A<F8><FA><D6>^\^@a<D5>^^P!<B0><B4>A<F8>#<F1>^]^@a<D5>^^P^@^@<80>A<F8><DB><F0>^]^@a<D5>^^P^@^@PA<F8>+<F1>^]^@a<D5>^^P^@^@<88>A<F8>7<F1>^]^@a<D5>^^P^@^@pA<F8>^C<F1>^]^@a<D5>^^P^@^@PA<F8>5<F1>^]^@a<D5>^^P^@^@<B8>A<F8><<F1>^]^@a<D5>^^P^@^@pA<F8>'<F7>^]^@a<D5>^^P)\<94>A<F8><8C><F7>^]^@a
<D5>^^P<BA>I<8B>A<F8>r<F7>^]^@a<D5>^^P^@^@<98>A<F8>&<F7>^]^@a<D5>^^P^@^@<90>A<F8>        <F7>^]^@a<D5>^^P<C3><F5><A6>A<F8>a<F7>^]^@a<D5>^^P^@^@<A0>A<F8><98><F7>^]^@a<D5>^^P<9C>ćA<F8><ED><F6>^]^@a<D5>^^P^@^@<88>A<F8>X<F6>^]^@a<D5>^^P^@^@
<98>A<F8><<F6>^]^@a<D5>^^P^@^@<90>A<F8><F4><F6>^]^@a<D5>^^P<8B>l<92>A<F8>^K<F6>^]^@a<D5>^^P^@^@<A8>A<F8><A9><F7>^]^@a<D5>^^P<B8>^^<9C>A<F8>p^A^]^@a<D5>^^P^@^@<8C>A<F8><81>^A^]^@a<D5>^^P<83><C0><97>A<F8><A4>^A^]^@a<D5>^^P<E1>z<B2>A<F8>e^A
^]^@a<D5>^^P^T<AE><A7>A<F8><94>^A^]^@a<D5>^^P^@^@<B8>A<F8>^Kb^]^@a<D5>^^P<83><C0><B2>A<F8><F5>a^]^@a<D5>^^P^@^@<C8>A<F8>ob^]^@a<D5>^^P!<B0><BC>A<F8><BE>b^]^@a<D5>^^P<9E><EF><85>A<F8><D2>b^]^@a<D5>^^P#ۆA<F8><97>b^]^@a<D5>^^P^WٔA<F8><A8>b^]
^@a<D5>^^P^@^@<88>A<F8>Mb^]^@a<D5>^^PP<8D><C3>A<F8><E7>b^]^@a<D5>^^P<C3><F5>lA<F8>6b^]^@a<D5>^^P<B2><9D><BE>A<F8>`b^]^@a<D5>^^P^PX<BE>A<F8>~b^]^@a<D5>^^P<C3><F5><BC>A<F8><BD>V^]^@a<D5>^^PB`<B9>A<F8><98>V^]^@a<D5>^^Pff<CF>A<F8><8A>V^]^@a
<D5>^^P<F6>(<DC>A<F8><9E>V^]^@a<D5>^^P^_<85>^AB<F8><B4>V^]^@a<D5>^^P<85><EB><C5>A<F8><81>V^]^@a<D5>^^P^@^@<B8>A<F8><B8>K^]^@a<D5>^^P<DD>$<9B>A<F8><E6><E8>^\^@a<D5>^^P^R<83><B5>A<F8><E1><E8>^\^@a<D5>^^P`<E5><BE>A<F8><F4><F2>^\^@a<D5>^^P)\
<9C>A<F8><A2><C2>^]^@a<D5>^^P<EC>Q<A2>A<F8><D7><C1>^]^@a<D5>^^PESC/<C1>A<F8>L<C2>^]^@a<D5>^^P33<B2>A<F8> <C2>^]^@a<D5>^^Pˡ<9B>A<F8><C5><C1>^]^@a<D5>^^P^@^@<B8>A<F8><C2><C2>^]^@a<D5>^^P<B4>ȖA<F8>4<F2>^]^@a<D5>^^P^@^@<90>A<F8>><EE>^]^@a<D5>^^P^@^@<F0>A<F8>^O<EE>^]^@a<D5>^^P^@^@<B8>A<F8><D5><F2>^]^@a<D5>^^P^@^@`A<F8><F8><F2>^]^@a<D5>^^P^@^@<90>A<F8>6<F3>^]^@a<D5>^^P^@^@<88>A<F8><B2><F2>^]^@a<D5>^^P^@^@pA<F8><D2><ED>^]^@a<D5>^^P^@^@<B0>A<F8>N<F2>^]^@a<D5>^^P^@^@<88>A<F8><DC>
<D6>^]^@a<D5>^^P^@^@<A0>A<F8>^P<D8>^]^@a<D5>^^P^@^@<B0>A<F8>K<D7>^]^@a<D5>^^P^@^@<B8>A<F8><F6><D7>^]^@a<D5>^^P^@^@<A8>A<F8><A1><D6>^]^@a<D5>^^P^@^@<A0>A<F8>k<F6>^]^@a<D5>^^P^@^@<B8>A<F8><E0><F6>^]^@a<D5>^^P^@^@<D0>A<F8>^Q<F6>^]^@a<D5>^^P
^@^@<B8>A<F8>G<F6>^]^@a<D5>^^P^@^@<C8>A<F8>DW^]^@a<D5>^^Psh<B4>A<F8>      <E8>^]^@a<D5>^^P^@^@<A0>A<F8><B7><E7>^]^@a<D5>^^P^@^@<A8>A<F8>t<E6>^]^@a<D5>^^P^@^@<A8>A<F8><93><E6>^]^@a<D5>^^P^@^@<D8>A<F8><F1><E6>^]^@a<D5>^^P^@^@pA<F8>L<E8>^]^@a<D5>^^P^@^@<80>A<F8>^BL^]^@a<D5>^^P^@^@<98>A<F8><D4>K^]^@a<D5>^^P<B8>^^<94>A<F8><E1>K^]^@a<D5>^^P33<97>A<F8><B1><C1>^]^@a<D5>^^P^@^@<B0>A<F8><B2><A9>^]^@a<D5>^^P^@^@<90>A<F8><AE><A9>^]^@a<D5>^^P^@^@<90>A<F8><DF><CE>^]^@a<D5>^^P^@^@<A0>A
<F8><F4><CE>^]^@a<D5>^^P^@^@<90>A<F8>#<CF>^]^@a<D5>^^P/ݣA<F8>]<A9>^]^@a<D5>^^P33KA<F8>z<A9>^]^@a<D5>^^P^@^@<88>A<F8>^L<CF>^]^@a<D5>^^P<E1>z<B2>A<F8>=<CE>^]^@a<D5>^^P^@^@<98>A<F8><DC><F4>^]^@a<D5>^^P^@^@<B8>A<F8>-<F8>^]^@a<D5>^^P^@^@<C0>A
<F8>dT^]^@a<D5>^^P<C5> <A4>A<F8><E5>T^]^@a<D5>^^P^]Z<8A>A<F8><CB>T^]^@a<D5>^^P<F8>S<AD>A<F8><92>T^]^@a<D5>^^P`<E5><A4>A<F8><EB>T^]^@a<D5>^^Po^R<D7>A<F8><B6>T^]^@a<D5>^^P<C7>K<96>A<F8>)T^]^@a<D5>^^P^T<AE><A7>A<F8><D9>T^]^@a<D5>^^P^@^@<8C>A<F8>JT^]^@a<D5>^^P^N-<89>A<F8>~T^]^@a<D5>^^Pף<A4>A<F8><A4>T^]^@a<D5>^^PR<B8><B2>A<F8><C0><DC>^\^@a<D5>^^PV^N<96>A<F8>6<FC>^]^@a<D5>^^P^@^@<A0>A3    u)^M_<D5>a^B<C9>s^@^@T^@^@^@(<-^@<CF>w^\^@^@^@^@^@^G^@^@"^@^@^@^@^@^@^A^@^@ T^@^@^@^@^F^Cstd^D^H^@^H^@-^@^E^FSYSTEMDATA_V3^@COMMIT<AC><98>e)^N_<D5>a<A2><C9>s^@^@*^@^@^@R<-^@<EE>A^X^B^@^@^@^@^B^@^@^@^H^@^@^@^@^@^@<C2>P<A9><8D>^N_<D5>a<A0><C9>s^@^@^W^A^@^@i=-:^@^@LOAD DATA CONCURRENT LOCAL INFILE '/srv/transitaire/incoming/transit_data_hist_temperature_modulator/listener_comm-tls-dt-05.1641373451.386774.dump.replicatData1' IGNORE INTO TABLE DATA_HIST_TEMPERATURE_MODULATOR(ID_CS_MODULATOR, DATE_METER, TEMPERATURE_C)t<94>k<C5>^N_<D5>a^S<C9>s^@^@Q^@^@^@<BA>=-:^@^@

5 minutes after this issue, there were a binlog rotation.
Server did not crash, load data concurrent were played without errors, only issue was binlog corruption, and so replica failure.
To solve the incident we replace the replication position onto the new binlog, and that is now 2 days without any errors.



 Comments   
Comment by Richard DEMONGEOT [ 2022-01-07 ]

slow query log seems clean before 10.03.03, and we can see replica failures at 10.03.23

# Time: 220105 10:03:23
# User@Host: rreplicat[rreplicat] HOST/IP
# Thread_id: 1840322  Schema:   QC_hit: No
# Query_time: 23827.165467  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
# Rows_affected: 0  Bytes_sent: 14684054937
SET timestamp=1641373403;
# administrator command: Binlog Dump;
# User@Host: rreplicat[rreplicat]HOST/IP
# Thread_id: 1695110  Schema:   QC_hit: No
# Query_time: 161443.144740  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
# Rows_affected: 0  Bytes_sent: 44022606638
SET timestamp=1641373403;
# administrator command: Binlog Dump;
# User@Host: rreplicat[rreplicat] HOST/IP
# Thread_id: 1695205  Schema:   QC_hit: No
# Query_time: 161443.118529  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
# Rows_affected: 0  Bytes_sent: 44107653094
SET timestamp=1641373403;
# administrator command: Binlog Dump;
# User@Host: rreplicat[rreplicat] HOST/IP
# Thread_id: 71  Schema:   QC_hit: No
# Query_time: 1903296.591368  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
# Rows_affected: 0  Bytes_sent: 667752826554
SET timestamp=1641373403;
# administrator command: Binlog Dump;
# User@Host: rreplicat[rreplicat] HOST/IP
# Thread_id: 1841383  Schema:   QC_hit: No
# Query_time: 22859.397156  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
# Rows_affected: 0  Bytes_sent: 14613990053
SET timestamp=1641373403;
# administrator command: Binlog Dump;
# User@Host: rreplicat[rreplicat] HOST/IP
# Thread_id: 69  Schema:   QC_hit: No
# Query_time: 1903296.589229  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
# Rows_affected: 0  Bytes_sent: 667752826598
SET timestamp=1641373403;
# administrator command: Binlog Dump;
# User@Host: rreplicat[rreplicat] HOST/IP
# Thread_id: 70  Schema:   QC_hit: No
# Query_time: 1903296.591432  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
# Rows_affected: 0  Bytes_sent: 667752826554
SET timestamp=1641373403;
# administrator command: Binlog Dump;
# Time: 220105 10:03:24

Comment by Richard DEMONGEOT [ 2022-02-11 ]

Hello,

We had the same issue yesterday.

Some load data infile (using /tmp - root storage) and a huge query generated 50+Go of tmp table.
As a result, the select query has been aborted during sorting (Sort aborted); and the binlog is completly corrupted.

(473009,1263652,1529008,1529008,20,NULL,'2022-02-10 11:10:00',NULL,NULL),(473009,1263652,1529008,1529008,20,NULL,'2022-02-10 11:20:00',NULL,NULL),(473009,1263652,1529008,1529008,20,NU<9D>L^Eb^B<FB><E8>^@^@W^@^@^@3^N<C1>^@<81><<82>^@^@^@^@^@^R^@^@^Z^@^@^@^@^@^@^A^@^@ T^@^@^@^@^F^Cstd^D!^@!^@-^@information_schema^@COMMIT<E3><98>^F{<9D>L^Eb<A2>ٚ^@^@*^@^@^@]^N<C1>^@9<8B>?k^@^@^@^@^C^@^@^@^L^@^@^@^@^@^@]v<D2>^?<9D>L^Eb^Eٚ^@^@ ^@^@^@}^N<C1>8^@^@^B<FF><BD>*^U^A^@^@^@{<F8><D1>+<9D>L^Eb^Bٚ^@^@^A^A^@^@~^O<C1>8^@^@<A2><C^@^@^@^@^@^G^@^@^Z^@^@^@^@^@^@^A^@^@ T^@^@^@^@^F^Cstd^D!^@!^@-^@CONF_V3^@INSERT  INTO DATA_MODULATOR_INFO (ID_HW_MOMBOX, ID_HW_MODULATOR, ID_REF_TYPE_INFO, DATE_MOMB

We are trying to reproduce using a simplified test case.

Regards;

Comment by Richard DEMONGEOT [ 2022-02-11 ]

How to reproduce :

Setup a fresh Debian 10 VM (1G for /tmp/)
Install mariadb 10.3.32 from MariaDB repository

create database test_corruption;
use test_corruption;
create table test ( ID int(10) unsigned NOT NULL DEFAULT 0, ID2 int(10) unsigned NOT NULL DEFAULT 0, ID3 int(10) unsigned NOT NULL DEFAULT 0, ID4 int(10) unsigned NOT NULL DEFAULT 0, ID5 int(10) unsigned NOT NULL DEFAULT 0 ENGINE=MyISAM);
ALTER TABLE test ADD PRIMARY KEY (ID, ID2);

Generate some files for load data (attached if you want) :

for i in $(seq 1 200000); do echo -e "$RANDOM$RANDOM\t$RANDOM$RANDOM\t$RANDOM$RANDOM\t$RANDOM$RANDOM\t$RANDOM$RANDOM" >> load.sql; done

Run some batch of insert :

for i in $(seq 1 500) ; do mysql -e "set session binlog_format = 'STATEMENT' ; load data concurrent local infile '/root/load.sql' REPLACE into table test_corruption.test ( ID, ID2, ID3, ID4, ID5 )"; done

On another console : fill the /tmp directory :

dd if=/dev/zero of=/tmp/rdt.dd bs=1024k

and the output of the insert / replace should be :

ERROR 3 (HY000) at line 1: Error writing file '/tmp/MLj9mVc4' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/ML9IZoH9' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/MLjqVwef' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/MLzXV6Nk' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/MLTkVZpq' (Errcode: 28 "No space left on device")

At this moment, even if we remove the file /tmp/rdt.dd; binlog get corrupted.

binlog.000001

#220211 11:01:16 server id 1  end_log_pos 25742554 CRC32 0x1bd0e563 
#Append_block: file_id: 13  block_len: 4096
# at 25742554
#220211 11:01:16 server id 1  end_log_pos 25746677 CRC32 0x39350a32 
#Append_block: file_id: 13  block_len: 4096
ERROR: Error in Log_event::read_log_event(): 'Event truncated', data_len: 808989236, event_type: 55
ERROR: Could not read entry at offset 25746677: Error in log format or read error.

binlog.00006

# at 54572437
#220211 11:04:16 server id 1  end_log_pos 54576560 CRC32 0xf87f0602 
#Append_block: file_id: 473  block_len: 4096
# at 54576560
#220211 11:04:16 server id 1  end_log_pos 54580683 CRC32 0x0a393538 
#Append_block: file_id: 473  block_len: 4096
ERROR: Error in Log_event::read_log_event(): 'Event truncated', data_len: 808519984, event_type: 50
ERROR: Could not read entry at offset 54580683: Error in log format or read error.

binlog 000011

#220211 11:19:47 server id 1  end_log_pos 37748990 CRC32 0x6d33aafc 
#Append_block: file_id: 2434  block_len: 4096
# at 37748990
#220211 11:19:47 server id 1  end_log_pos 37753113 CRC32 0x31373534 
#Append_block: file_id: 2434  block_len: 4096
ERROR: Error in Log_event::read_log_event(): 'Event truncated', data_len: 959984137, event_type: 53
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

NOTE : it seems to be related with MyISAM only - we haven't reproduce it with same table as InnoDB.

Comment by Richard DEMONGEOT [ 2022-02-11 ]

It's reproductible after an upgrade with version MariaDB 10.6.5

#220211 11:31:36 server id 1  end_log_pos 41592771 CRC32 0x544cdb80 
#Append_block: file_id: 4  block_len: 4096
# at 41592771
#220211 11:31:36 server id 1  end_log_pos 41596894 CRC32 0x370a3338 
#Append_block: file_id: 4  block_len: 4096
ERROR: Error in Log_event::read_log_event(): 'Event truncated', data_len: 858993970, event_type: 48
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

And the write loop :

ERROR 3 (HY000) at line 1: Error writing file '/tmp/#sql/fd=42' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/#sql/fd=42' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/#sql/fd=42' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/#sql/fd=42' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/#sql/fd=42' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/#sql/fd=42' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/#sql/fd=42' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/#sql/fd=42' (Errcode: 28 "No space left on device")
ERROR 3 (HY000) at line 1: Error writing file '/tmp/#sql/fd=42' (Errcode: 28 "No space left on device")

Comment by Richard DEMONGEOT [ 2022-02-11 ]

A difference with MDEV-27803 : The disk full occurs on another partition than binlog dirs.

Comment by Richard DEMONGEOT [ 2022-02-11 ]

Reproductible with `sync_binlog=1`

# at 83152161
#220211 11:38:09 server id 1  end_log_pos 83156284 CRC32 0x34c01708 
#Append_block: file_id: 508  block_len: 4096
# at 83156284
#220211 11:38:09 server id 1  end_log_pos 83160407 CRC32 0x370a3338 
#Append_block: file_id: 508  block_len: 4096
ERROR: Error in Log_event::read_log_event(): 'Event truncated', data_len: 858993970, event_type: 48
ERROR: Could not read entry at offset 83160407: Error in log format or read error.

And another binlog :

# at 25165
#220211 11:38:21 server id 1  end_log_pos 29288 CRC32 0x5f78d378 
#Append_block: file_id: 1169  block_len: 4096
# at 29288
#220211 11:38:21 server id 1  end_log_pos 33411 CRC32 0x370a3338 
#Append_block: file_id: 1169  block_len: 4096
ERROR: Error in Log_event::read_log_event(): 'Event truncated', data_len: 858993970, event_type: 48
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

Comment by VAROQUI Stephane [ 2022-02-11 ]

Not reproductible using an InnoDB table

Comment by Kristian Nielsen [ 2023-10-25 ]

I made a patch to fix this:

https://github.com/MariaDB/server/commits/knielsen_mdev27436

There were in fact several bugs in the error handling around disk full on tmpdir, good to get this fixed.
I plan to get this fixed in 10.4 and up after code review.

- Kristian.

Comment by Michael Widenius [ 2023-10-31 ]

When the LOAD DATA INFILE in this case fails, they fail with "Lost connection"

Here follows the commit message from knielsen for the bug fix:

This commit fixes several bugs in error handling around disk full when
writing the statement/transaction binlog caches:

1. If the error occurs during a non-transactional statement, the code
attempts to binlog the partially executed statement (as it cannot roll
back). The stmt_cache->error was still set from the disk full error. This
caused MYSQL_BIN_LOG::write_cache() to get an error while trying to read the
cache to copy it to the binlog. This was then wrongly interpreted as a disk
full error writing to the binlog file. As a result, a partial event group
containing just a GTID event (no query or commit) was binlogged. Fixed by
checking if an error is set in the statement cache, and if so binlog an
INCIDENT event instead of a corrupt event group, as for other errors.

2. For LOAD DATA LOCAL INFILE, if a disk full error occured while writing to
the statement cache, the code would attempt to abort and read-and-discard
any remaining data sent by the client. The discard code would however
continue trying to write data to the statement cache, and wrongly interpret
another disk full error as end-of-file from the client. This left the client
connection with extra data which corrupts the communication for the next
command, as well as again causing an corrupt/incomplete event to be
binlogged. Fixed by restoring the default read function before reading any
remaining data from the client connection.

Comment by Kristian Nielsen [ 2023-10-31 ]

Fix pushed to 10.4

Comment by Roel Van de Paar [ 2023-12-05 ]

See MENT-1989

Generated at Thu Feb 08 09:52:54 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.