Bug #103404 --log-bin=<name>, where <name> has two periods, creates a single binlog file
Submitted: 21 Apr 2021 12:58 Modified: 21 Apr 2021 13:24
Reporter: Kenn Takara Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:5.7.28,8.0.22, 5.7.34, 8.0.24 OS:Any
Assigned to: CPU Architecture:Any

[21 Apr 2021 12:58] Kenn Takara
Description:
Specifying log-bin=<name> and <name> has two periods ('.') in the filename portion will only create a single unnumbered binlog file.
    log-bin=mysql.file.binlog

Result
    - Only a single binlog file "mysql.file" will be created
    - However, this file will show up multiple times in the binlog index

Expect
    - Multiple numbered files to be created (such as mysql.file.000001 or mysql.000001)

I assume this may also apply to the relay logs but have not tested this.  Also, I am not sure what the implications are of having only a single binlog file.

How to repeat:
(MTR test case attached)

(1) Configure a server with
    log-bin=mysql.file.binlog
    max-binlog-size=4096
    binlog-format=ROW

(2) Start the server
(3) Create some data
    For example,
      INSERT INTO t1 VALUES(1, REPEAT("12334567890", 1024));
(4) Look at the binlog and binlog index files

Suggested fix:
Generate numbered binlog names.

If not possible, update the documentation and have the server issue a warning or error on startup if problematic characters are found in the name.
[21 Apr 2021 12:59] Kenn Takara
MTR test case

Attachment: percona_binlog_name.test (application/octet-stream, text), 855 bytes.

[21 Apr 2021 12:59] Kenn Takara
MTR test case config file

Attachment: percona_binlog_name.cnf (application/octet-stream, text), 283 bytes.

[21 Apr 2021 13:24] MySQL Verification Team
Hello Kenn,

Thank you for the report and test case.

regards,
Umesh