Bug 974976

Summary: FALLOCATE and DISCARD introduced incompatible rpc-procedure numbers
Product: [Community] GlusterFS Reporter: Niels de Vos <ndevos>
Component: rpcAssignee: Niels de Vos <ndevos>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: urgent Docs Contact:
Priority: urgent    
Version: 3.4.0-alphaCC: aavati, bfoster, gluster-bugs
Target Milestone: ---Keywords: Patch
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.5.0 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-04-17 11:42:49 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Niels de Vos 2013-06-17 10:01:21 UTC
Description of problem:

While looking at the newly introduced procedures FALLOCATE and DISCARD, it
seems that these were added with already existing procedure numbers. This
makes the protocol incompatible with existing roll-outs.

Version-Release number of selected component (if applicable):
$ git log --oneline -1 d1ccc4e4
d1ccc4e gluster: add fallocate fop support
$ git describe --tags d1ccc4e4
v3.4.0alpha-343-gd1ccc4e

$ git log --oneline -1 17f28717
17f2871 glusterfs: discard (hole punch) support
$ git describe --tags 17f28717
v3.4.0alpha-344-g17f2871


Additional info:

It is very confusing when new procedures are added somewhere in the
middle of the array. This will cause the number of existing procedures
to change. It is much preferred to add new procedures at the end of the
array.

This greatly simplifies adding support for these new procedures in
Wireshark and will prevent confusion to the people reading network
traces (with or without Wireshark).

Comment 1 Anand Avati 2013-06-17 10:09:00 UTC
REVIEW: http://review.gluster.org/5215 (protocol/rpc: move latest added procedures to the end of the array) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 2 Anand Avati 2013-06-17 10:10:38 UTC
REVIEW: http://review.gluster.org/5228 (protocol/rpc: move latest added procedures to the end of the array) posted (#1) for review on release-3.4 by Niels de Vos (ndevos)

Comment 3 Anand Avati 2013-06-17 16:35:31 UTC
COMMIT: http://review.gluster.org/5215 committed in master by Anand Avati (avati) 
------
commit eb6b81e1fc182daba4d202d15362250eee1c86d6
Author: Niels de Vos <ndevos>
Date:   Mon Jun 17 10:56:55 2013 +0200

    protocol/rpc: move latest added procedures to the end of the array
    
    While looking at the newly introduced procedures FALLOCATE and DISCARD,
    it seems that these were added with already existing procedure numbers.
    This makes the protocol incompatible with existing roll-outs.
    
    It is very confusing when new procedures are added somewhere in the
    middle of the array. This will cause the number of existing procedures
    to change. It is much preferred to add new procedures at the end of the
    array. This changes not only corrects the enum that generates the
    procedure numbers, but also the ordering in the client and server
    fops-array for clarity.
    
    Correcting this greatly simplifies adding support for these new
    procedures in Wireshark and will prevent confusion to the people reading
    network traces (with or without Wireshark).
    
    Change-Id: Ib9e7978531d016c7230d756b855cb94cb0793b0f
    BUG: 974976
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/5215
    Tested-by: Gluster Build System <jenkins.com>
    Reviewed-by: Brian Foster <bfoster>
    Reviewed-by: Anand Avati <avati>

Comment 4 Niels de Vos 2014-04-17 11:42:49 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.5.0, please reopen this bug report.

glusterfs-3.5.0 has been announced on the Gluster Developers mailinglist [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/6137
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user