Description
In LNet (lnet-types.h), the enum constants are started from 0 and so the values are given per the position in the struct. It looks like this.
enum lnet_msg_type {
LNET_MSG_ACK = 0,
LNET_MSG_PUT,
LNET_MSG_GET,
LNET_MSG_REPLY,
LNET_MSG_HELLO,
};
This should be fixed and be given specific values.
As Andreas pointed out - "This avoids bugs in the future if one of these constants is deleted, or if someone accidentally tries to add a value in the middle of the list, which would bump up all of the following values by one and break the network protocol compatibility."
Attachments
Activity
Assignee | Original: Core Lustre Triage [ core-lustre-triage ] | New: Aryan Gupta [ argupta ] |
Labels | Original: patch | New: easy patch |
Assignee | Original: WC Triage [ wc-triage ] | New: Core Lustre Triage [ core-lustre-triage ] |
Assignee | Original: Sonia Sharma [ sharmaso ] | New: WC Triage [ wc-triage ] |
Issue Type | Original: Bug [ 1 ] | New: Improvement [ 4 ] |
Labels | New: patch |
Description |
Original:
In LNet (lnet-types.h), the enum constants are started from 0 and so the values are given per the position in the struct. It looks like this.
{code:java} enum lnet_msg_type { »·······LNET_MSG_ACK = 0, »·······LNET_MSG_PUT, »·······LNET_MSG_GET, »·······LNET_MSG_REPLY, »·······LNET_MSG_HELLO, }; {code} This should be fixed and be given specific values. As Andreas pointed out - "This avoids bugs in the future if one of these constants is deleted, or if someone accidentally tries to add a value in the middle of the list, which would bump up all of the following values by one and break the network protocol compatibility." |
New:
In LNet (lnet-types.h), the enum constants are started from 0 and so the values are given per the position in the struct. It looks like this.
{code:java} enum lnet_msg_type { LNET_MSG_ACK = 0, LNET_MSG_PUT, LNET_MSG_GET, LNET_MSG_REPLY, LNET_MSG_HELLO, }; {code} This should be fixed and be given specific values. As Andreas pointed out - "This avoids bugs in the future if one of these constants is deleted, or if someone accidentally tries to add a value in the middle of the list, which would bump up all of the following values by one and break the network protocol compatibility." |
Description |
Original:
In LNet (lnet-types.h), the enum constants are started from 0 and so the values are given per the position in the struct. It looks like this.
{code:java} enum lnet_msg_type { »·······LNET_MSG_ACK = 0, »·······LNET_MSG_PUT, »·······LNET_MSG_GET, »·······LNET_MSG_REPLY, »·······LNET_MSG_HELLO, }; {code} This should be fixed and be given specific values. As Andreas pointed out - "This avoids bugs in the future if one of these constants is deleted, or if someone accidentally tries to add a value in the middle of the list, which would bump up all of the following values by one and break the network protocol compatibility." |
New:
In LNet (lnet-types.h), the enum constants are started from 0 and so the values are given per the position in the struct. It looks like this.
{code:java} enum lnet_msg_type { »·······LNET_MSG_ACK = 0, »·······LNET_MSG_PUT, »·······LNET_MSG_GET, »·······LNET_MSG_REPLY, »·······LNET_MSG_HELLO, }; {code} This should be fixed and be given specific values. As Andreas pointed out - "This avoids bugs in the future if one of these constants is deleted, or if someone accidentally tries to add a value in the middle of the list, which would bump up all of the following values by one and break the network protocol compatibility." |
Description |
Original:
In LNet (lnet-types.h), the enum constants are started from 0 and so the values are given per the position in the struct. It looks like this.
{code:java} enum lnet_msg_type { »·······LNET_MSG_ACK = 0, »·······LNET_MSG_PUT, »·······LNET_MSG_GET, »·······LNET_MSG_REPLY, »·······LNET_MSG_HELLO, }; {code} This should be fixed and be given specific values. As Andreas pointed out - "This avoids bugs in the future if one of these constants is deleted, or if someone accidentally tries to add a value in the middle of the list, which would bump up all of the following values by one and break the network protocol compatibility." |
New:
In LNet (lnet-types.h), the enum constants are started from 0 and so the values are given per the position in the struct. It looks like this.
{code:java} enum lnet_msg_type { »·······LNET_MSG_ACK = 0, »·······LNET_MSG_PUT, »·······LNET_MSG_GET, »·······LNET_MSG_REPLY, »·······LNET_MSG_HELLO, }; {code} This should be fixed and be given specific values. As Andreas pointed out - "This avoids bugs in the future if one of these constants is deleted, or if someone accidentally tries to add a value in the middle of the list, which would bump up all of the following values by one and break the network protocol compatibility." |
Sonia Sharma (sharmaso@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/33251
Subject: LU-11432 lnet: Assign specific values to enum constt
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 49676250f1eaffb30d50afee71a990db749bc90d