Re: Config Loop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/03/2013 01:06 PM, Neil Horman wrote:
> On Thu, Jan 03, 2013 at 10:59:02AM -0600, Alex Elder wrote:
>> On 01/03/2013 10:52 AM, Neil Horman wrote:
>>> On Thu, Jan 03, 2013 at 09:57:13AM -0600, Alex Elder wrote:
>>>> A commit added in the 3.8-rc1 merge window has resulted in
>>>> my kernel config entering an infinite loop handling the
>>>> "Default SCTP cookie HMAC encoding" option.
>>>>
>>>>     commit 0d0863b02002c25140a1b9e113b81211bcc780e8
>>>>     sctp: Change defaults on cookie hmac selection
>>>>
>>>>     http://marc.info/?l=linux-netdev&m=135553459303505
>>>>
>>>> The problem lies in my config file containing this line:
>>>>
>>>>     CONFIG_SCTP_HMAC_MD5=y
>>>>
>>>> I normally configure my kernel using fixed config file
>>>> (occasionally updated) using (roughly) this:
>>>>
>>>>     yes "" | make oldconfig
>>>>
>>>> The result looks like this:
>>>>
>>>> . . .
>>>>   DCCP connection probing (NET_DCCPPROBE) [M/n/?] m
>>>> *
>>>> * The SCTP Protocol (EXPERIMENTAL)
>>>> *
>>>> The SCTP Protocol (EXPERIMENTAL) (IP_SCTP) [M/y/?] m
>>>>   SCTP: Association probing (NET_SCTPPROBE) [M/n/?] m
>>>>   SCTP: Debug messages (SCTP_DBG_MSG) [N/y/?] n
>>>>   SCTP: Debug object counts (SCTP_DBG_OBJCNT) [N/y/?] n
>>>>   Default SCTP cookie HMAC encoding
>>>>     1. Enable optional MD5 hmac cookie generation
>>>> (SCTP_DEFAULT_COOKIE_HMAC_MD5) (NEW)
>>>>     2. Enable optional SHA1 hmac cookie generation
>>>> (SCTP_DEFAULT_COOKIE_HMAC_SHA1) (NEW)
>>>>     3. Use no hmac alg in SCTP cookie generation
>>>> (SCTP_DEFAULT_COOKIE_HMAC_NONE) (NEW)
>>>>   choice[1-3?]:   Default SCTP cookie HMAC encoding
>>>>     1. Enable optional MD5 hmac cookie generation
>>>> (SCTP_DEFAULT_COOKIE_HMAC_MD5) (NEW)
>>>>     2. Enable optional SHA1 hmac cookie generation
>>>> (SCTP_DEFAULT_COOKIE_HMAC_SHA1) (NEW)
>>>>     3. Use no hmac alg in SCTP cookie generation
>>>> (SCTP_DEFAULT_COOKIE_HMAC_NONE) (NEW)
>>>>   choice[1-3?]:   Default SCTP cookie HMAC encoding
>>>> . . .  and so on.
>>>>
>>>> I find that I can correct this with the patch below.
>>>> I expect others will bump into the same problem.  In
>>>> particular, I notice my Ubuntu config files contain
>>>> that same line.
>>>>
>>>> I don't know how best to handle this, but I thought
>>>> I would report it in case someone has a good solution.
>>>>
>>> Thats odd.  It looks like your selection of a defaut value for the sctp cookie
>>> hmac algorithm isn't taking at all.  I just added the old CONFIG_SCTP_HMAC_MD5=y
>>> option to my config and used your:
>>> yes "" | make oldconfig 
>>> setup, and it worked fine for me.  And you say if you remove the old config
>>> option first, you get no loop?
>>
>> I say that when I apply the patch (below) there is no loop.
>>
>> I noticed the loop with v3.8-rc1 and it's still happening
>> with v3.8-rc2.  I've attached the working config I'm now
>> using to this message.  The only difference between the
>> looping one and the working one is that this:
>>     CONFIG_SCTP_HMAC_MD5=y
>> has been replaced with this:
>>     CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
>>
> Oh, I think I see what happened.  When I converted the Kconfig file to have a
> choice statement, it created a conflict with your old config that the the config
> mechanism didn't know how to resolve.  The Choice statement selects
> CONFIG_SCTP_HMAC_MD5 as a default value, but your old config explicitly has
> CONFIG_SCTP_HMAC_MD5 turned off.  Since your command:
> yes "" | make oldconfig
> just takes whatever the default value is, it tries to select
> CONFIG_SCTP_HMAC_MD5, but since its already turned off, the config utilty
> doesn't know what to do, so it responds by just asking you again what you want
> the default to be.

OK, I was in the middle of writing a nice detailed response to
this.  But in the process of verifying what I was saying I believe
I found the bug.

I'll be sending the fix in a separate message.

Here are a couple of notes anyway:
- I found that combinations of 0, 1, 2, or 3 of the _MD5, _SHA1, and
  _NONE config options set to "=y" produced the same infinite loop.
- I found that another commit, 3c68198e7, changed the names of these
  config options to include "_COOKIE", so my old config file was not
  actually defining *any* of the new names.
- Nevertheless, combinations of 0-3 of those config options produced
  the same infinite loop.

So apparently you must have either not tested "make oldconfig" or
your old config contained a line like I had:
    CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y

					-Alex

> I don't think theres actually a bug here, at least not one that we can do
> anything about that won't result in other people complaining about the opposite
> effect.  The old config you have, when applied to the latest kernel, puts you in
> a situation where you have both hmac options already disabled, but you need to
> select a default value for your hmac cookie generator (one of md5/sha1/none), so
> selecting the default effectively creates a situation where you're asking the
> config to have CONFIG_SCTP_HMAC_MD5 both on and off at the same time.
> 
> Things that could be done as I see it:
> 
> 1) We could teach the config utility to recognize when options are disabled in
> the old config and migrate the default away to the next in line that is not
> already disabled
> 
> 2) We could make the config utility override the old config value when the input
> value input at the prompt conflicts with the old config
> 
> 3) We could print a helpful message indicating that the conflict is taking place
> 
> 
> Truthfully though I don't really like any of these a whole lot (save for the
> third).  1 is unpleasant in my view as they change what would otherwise
> be the default coded value silently, while 2 overrides the previously selected
> configuration option.  Both of these may be completely unexpected by the user.
> 
> 
> Option 3 seems reasonable to me, although I'm not sure its going to be that
> useful.  I'm sorry this happened to you, but it seems like this is something
> that will only occur very rarely if/when we convert a previously existing set of
> options to a choice submenu.  Let me know if you have other thoughts.
> Neil
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux