Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1691833 - Client sends 128KByte network packet for 0 length file copy
Summary: Client sends 128KByte network packet for 0 length file copy
Keywords:
Status: NEW
Alias: None
Product: GlusterFS
Classification: Community
Component: core
Version: 5
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: bugs@gluster.org
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-03-22 15:57 UTC by Otto Jonyer
Modified: 2019-03-22 16:18 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:


Attachments (Terms of Use)
Wireshark report of the network overhead (deleted)
2019-03-22 15:57 UTC, Otto Jonyer
no flags Details

Description Otto Jonyer 2019-03-22 15:57:15 UTC
Created attachment 1546951 [details]
Wireshark report of the network overhead

Description of problem:
Installed Ubuntu Server 18.10 from official release. 
Installed debian packages from ppa:gluster/glusterfs-5 (download.gluster.org)
The problem was originally reproduced on CentOs based on with custom compilation of glusterfs-5.1
 
Created the simplest replica filesystem on 2 nodes and mounted on one of the nodes but it is also reproducible when mounted from dedicated client as well.
Created a 0 length file with "touch /tmp/0length"
Copied the file to gluster mount.
Network capture shows that 128KByte packet is sent to both replica which is a huge network overhead for really small files.

the commands I've used:
  mkdir /mnt/brick
  gluster peer probe 192.168.56.100
  gluster volume create gv0 replica 2 192.168.56.100:/mnt/brick 192.168.56.101:/mnt/brick force
  gluster volume start gv0
  mkdir /mnt/gv0
  mount -t glusterfs 192.168.56.100:/gv0 /mnt/gv0
  touch /tmp/0length
  cp /tmp/0length /mnt/gv0

Version-Release number of selected component (if applicable):
5.5-ubuntu1~cosmic1: glusterfs-client glusterfs-common glusterfs-server

How reproducible:


Steps to Reproduce:
1)  on both nodes: mkdir /mnt/brick
2)  on 192.168.56.101: gluster peer probe 192.168.56.100
3)  gluster volume create gv0 replica 2 192.168.56.100:/mnt/brick 192.168.56.101:/mnt/brick force
4)  gluster volume start gv0
5)  mkdir /mnt/gv0
6)  mount -t glusterfs 192.168.56.100:/gv0 /mnt/gv0
7)  touch /tmp/0length

8)  tcpdump -s 0 -w /tmp/glusterfs.pkt 'host 192.168.56.100'
9)  cp /tmp/0length /mnt/gv0
10) stop network capture and load into wireshark


Actual results:
The network capture is 256KByte length and I see 1-1 'proc-27' calls to both glusterfs nodes with 128KB sizes.

Expected results:
The network capture is a few kilobytes and low network overhead for small files.

Additional info:

Comment 1 Otto Jonyer 2019-03-22 16:18:05 UTC
Very strange for larger sizes:

If I use 7 KByte file I get 2*128 KB packets.
If I use 15, 31 KByte file I get 2*128 KB + 1*32KB packets.
If I use 63, 127 or 129 KByte file I get 6*128KB packets.


Note You need to log in before you can comment on or make changes to this bug.