On 11/14/17 1:24 PM, Jon Maloy wrote:
> 
> 
>> -----Original Message-----
>> From: netdev-ow...@vger.kernel.org [mailto:netdev-
>> ow...@vger.kernel.org] On Behalf Of David Ahern
>> Sent: Tuesday, November 14, 2017 15:18
>> To: Jon Maloy <jon.ma...@ericsson.com>; netdev@vger.kernel.org; Jiri
>> Pirko <j...@resnulli.us>
>> Cc: David Miller (da...@davemloft.net) <da...@davemloft.net>
>> Subject: Re: Broken netlink ABI
>>
>> On 11/14/17 1:15 PM, David Ahern wrote:
>>> On 11/14/17 12:19 PM, Jon Maloy wrote:
>>>> When I give the command:
>>>> ~$ tipc node set addr 1.1.2
>>>>
>>>> I get the following response:
>>>>
>>>> error: Numerical result out of range
>>>> Unable to get TIPC nl family id (module loaded?) error, message
>>>> initialisation failed
>>>
>>> tipc is sending a u32 for the family attribute when it should be a u16:
>>>
>>> diff --git a/tipc/msg.c b/tipc/msg.c
>>> index 22c22226bb20..dc09d05048f3 100644
>>> --- a/tipc/msg.c
>>> +++ b/tipc/msg.c
>>> @@ -125,7 +125,7 @@ static int get_family(void)
>>>         genl->cmd = CTRL_CMD_GETFAMILY;
>>>         genl->version = 1;
>>>
>>> -       mnl_attr_put_u32(nlh, CTRL_ATTR_FAMILY_ID, GENL_ID_CTRL);
>>> +       mnl_attr_put_u16(nlh, CTRL_ATTR_FAMILY_ID, GENL_ID_CTRL);
>>>         mnl_attr_put_strz(nlh, CTRL_ATTR_FAMILY_NAME,
>>> TIPC_GENL_V2_NAME);
>>>
>>>         if ((err = msg_query(nlh, family_id_cb, &nl_family)))
>>>
>>> With the above change the tipc command runs fine.
> 
> I can fix that, but that that doesn't change the fact that binaries that have 
> been around and worked flawlessly for years now all by sudden have stopped 
> working.

The command has to be broken on some platforms (big endian?); it is
sending a u32 value which is truncated to u16 by the kernel.

> Whether the user is doing right or wrong, that if for me the very definition 
> of a broken ABI, and is unacceptable.
> 
> Either you have to remove the test in your patch, or you can try to identify 
> tipc and devlink in the code and exempt those from your test.
> 

DaveM: opinions? I expected fallout like this. Should I just log a
warning telling users they are running broken commands?

Reply via email to