gluster/glusterfs

Copying large files (with shard on) fails

Closed this issue · 1 comments

Description of problem:

We upgraded gluster from 7 to 8 today, when copying large files (with the shard option enabled), it fails. By fail I mean it copies, but ls -lah shows it is 64MB in size rather than 7gb. It works intermittently apparently (e.g sometimes copying it will copy the whole thing). Most of the time it just copies 64MB of it rather then the whole lot. This seems like a big bug with gluster 8 (not sure if this happened with gluster 7).

The exact command to reproduce the issue:

root@test2:/mnt/mediawiki-static/private/dumps/speleowiki# ls -lah
total 72M
drwxr-xr-x   2 www-data www-data 4.0K Sep  9 16:36 .
drwxr-xr-x 268 www-data www-data 4.0K Sep  7 22:25 ..
-rw-r--r--   1 www-data www-data  64M Sep  9 16:14 speleowiki_image_79312e0b88e02ed5785e.zip

root@test2:/mnt/mediawiki-static/private/dumps/speleowiki# ls -lah speleowiki_image_79312e0b88e02ed5785e.zip
-rw-r--r-- 1 www-data www-data 7.0G Sep  9 16:14 speleowiki_image_79312e0b88e02ed5785e.zip

(seems like the above is either cached or somehow. Since doing cp speleowiki_image_79312e0b88e02ed5785e.zip /srv,
got it to change it to 64M, though the file in /srv was 64MB too)

root@test2:/mnt/mediawiki-static/private/dumps/speleowiki# ls -lah speleowiki_image_79312e0b88e02ed5785e.zip
-rw-r--r-- 1 www-data www-data 64M Sep  9 16:14 speleowiki_image_79312e0b88e02ed5785e.zip

Expected results:
I expect that ls -lah (file or dir) show that the file size is 7gb for speleowiki_image_79312e0b88e02ed5785e.zip and that copying it will copy the whole thing.

Additional info:

- The output of the gluster volume info command:

Volume Name: mvol
Type: Distribute
Volume ID: 39259ae4-3eaf-48a2-a7a9-275cfc80204f
Status: Started
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: gluster1.miraheze.org:/srv/mvol
Brick2: gluster2.miraheze.org:/srv/mvol
Options Reconfigured:
features.read-only: off
performance.parallel-readdir: on
performance.io-cache: off
performance.read-ahead: off
cluster.use-compound-fops: on
performance.nl-cache: off
performance.write-behind-window-size: 1MB
network.ping-timeout: 200
storage.health-check-interval: 0
cluster.lookup-optimize: on
network.inode-lru-limit: 5000
performance.md-cache-timeout: 600
performance.cache-invalidation: on
performance.stat-prefetch: on
features.cache-invalidation-timeout: 600
features.cache-invalidation: on
performance.readdir-ahead: on
client.ssl: on
server.ssl: on
server.event-threads: 7
client.event-threads: 7
features.shard: on
ssl.certificate-depth: 2
performance.client-io-threads: on
ssl.ca-list: /etc/ssl/certs/Sectigo.crt
ssl.own-cert: /etc/ssl/certs/wildcard.miraheze.org.crt
ssl.private-key: /etc/ssl/private/wildcard.miraheze.org.key
diagnostics.count-fop-hits: on
diagnostics.latency-measurement: on
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
performance.cache-size: 112MB
cluster.rebal-throttle: normal
diagnostics.brick-log-level: INFO
performance.write-behind: on
network.compression: off
performance.open-behind: on

- The operating system / glusterfs version:
Debian 10.5 / 8.1

@paladox disable parallel-readdir and readdir-ahead options. Things should work as expected. This issue is tracked as part of #1384 Closing the issue for now. Please feel free to re-open the issue if the issue persists.