@lucaskanashiro

> However, the default of innodb_page_size is 16kb
> (https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html#statvar_Innodb_page_size),
> and 1712128/16 = 107008. Did you change the innodb_page_size global
> value by any chance? If you can share your configuration it might be
> helpful.

It's 16kB, not 16B :)

1712128/16384 = 104.5

I have a similar problem. I do not have the InnoDB page size specified
in my MySQL config:

2022-08-02T04:25:16.296624Z 1 [ERROR] [MY-012962] [InnoDB] The redo log
file ./#innodb_redo/#ib_redo6 size 2908160 is not a multiple of
innodb_page_size

2908160/16384 = 177.5

The following Stack Overflow answer has a redo size of 23289856.
23289856/16384 = 1421.5

https://stackoverflow.com/a/73200473/495319

It is suspicious to me that all three of these examples are off by
exactly 8k.

@xnox:

> Instead, fallocate(2) space preallocation only checks that sufficient
> space is currently available in the pool or the user's project quota
> allocation, and then creates a sparse file of the requested size.

But it doesn't create a sparse file.

If I create a normal, non-sparse file and a sparse file and then create
a third file using fallocate I get the following:

$ dd if=/dev/urandom of=not-sparse bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 1.51608 s, 69.2 MB/s
$ dd if=/dev/urandom of=sparse bs=1M seek=100 count=0
0+0 records in
0+0 records out
0 bytes copied, 0.000245428 s, 0.0 kB/s
$ touch fallocated-file; fallocate -z -l 100M fallocated-file
$ ls -lsh not-sparse sparse fallocated-file 
1.0K -rw-rw-r-- 1 michael michael    0 2022-08-02 09:30 fallocated-file
101M -rw-rw-r-- 1 michael michael 100M 2022-08-02 08:54 not-sparse
1.0K -rw-rw-r-- 1 michael michael 100M 2022-08-02 08:54 sparse

As you can see, the "not-sparse" file is 100MB, and it's taking up about
100MB on disk (not sure why it's 101MB, but it's clearly not sparse).
The "sparse" file is also 100MB, but it is only taking up 1KB on disk.

On the other hand, the "fallocated-file" is zero size.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to zfs-linux in Ubuntu.
https://bugs.launchpad.net/bugs/1969247

Title:
  fallocate with FALLOC_FL_ZERO_RANGE produces zero-size files on zfs in
  Jammy

Status in Native ZFS for Linux:
  Fix Released
Status in mysql-8.0 package in Ubuntu:
  Invalid
Status in zfs-linux package in Ubuntu:
  Fix Released
Status in zfs-linux source package in Jammy:
  Fix Released

Bug description:
  [Summary]

  When running Jammy on zfs or LXD with a zfs pool on a Jammy host,
  fallocate creates a zero-sized file.

  The issue was originally found when installing mysql on LXD, where
  fallocate would create a zero-sized ib_logfile1 file. The original
  information in this bug is based on that.

  [Steps to Reproduce]

  touch foo.img
  fallocate -z -l 10M foo.img
  ls -la foo.img

  On a non-zfs Jammy system this will show something like:
  -rw-r--r-- 1 root root 10M ...

  while on zfs it will show:
  -rw-rw-r-- 1 root root 0 ...

  [Original Description]
  I came across this error when testing various mysql setups in an LXD 
container and managed to reproduce it consistently. I'm unable to reproduce on 
Ubuntu desktop or server though since the prerequisites are probably handled 
properly there.

  ProblemType: Package
  DistroRelease: Ubuntu 20.04
  Package: mysql-server-8.0 8.0.28-0ubuntu0.20.04.3
  ProcVersionSignature: Ubuntu 5.15.0-25.25-generic 5.15.30
  Uname: Linux 5.15.0-25-generic x86_64
  ApportVersion: 2.20.11-0ubuntu27.23
  Architecture: amd64
  CasperMD5CheckResult: skip
  Date: Fri Apr 15 21:31:09 2022
  Dmesg:

  ErrorMessage: installed mysql-server-8.0 package post-installation script 
subprocess returned error exit status 1
  KernLog:

  Logs.var.log.daemon.log:

  MySQLConf.etc.mysql.conf.d.mysql.cnf: [mysql]
  MySQLConf.etc.mysql.conf.d.mysqldump.cnf:
   [mysqldump]
   quick
   quote-names
   max_allowed_packet   = 16M
  MySQLConf.etc.mysql.my.cnf: Error: [Errno 40] Too many levels of symbolic 
links: '/etc/mysql/my.cnf'
  MySQLVarLibDirListing: ['ibdata1', 'ib_logfile0', '#innodb_temp', 
'debian-5.7.flag', '#ib_16384_0.dblwr', 'client-cert.pem', 'undo_001', 
'server-cert.pem', 'mysql.ibd', '#ib_16384_1.dblwr', 'client-key.pem', 
'ca-key.pem', 'sys', 'private_key.pem', 'mysql', 'undo_002', 'binlog.index', 
'performance_schema', 'ib_buffer_pool', 'auto.cnf', 'ib_logfile1', 
'public_key.pem', 'ca.pem', 'server-key.pem']
  ProcCmdline: BOOT_IMAGE=/boot/vmlinuz-5.15.0-25-generic 
root=UUID=93666562-b5e4-4fb4-ba8c-7b42a3e6bf61 ro quiet splash 
mem_sleep_default=deep vt.handoff=7
  Python3Details: /usr/bin/python3.8, Python 3.8.10, python3-minimal, 
3.8.2-0ubuntu2
  PythonDetails: N/A
  RelatedPackageVersions:
   dpkg 1.19.7ubuntu3
   apt  2.0.6
  SourcePackage: mysql-8.0
  Title: package mysql-server-8.0 8.0.28-0ubuntu0.20.04.3 failed to 
install/upgrade: installed mysql-server-8.0 package post-installation script 
subprocess returned error exit status 1
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/zfs/+bug/1969247/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to