Hello Julian
>
>Hello,
>
>On Fri, 20 Apr 2012, Ryan O'Hara wrote:
>
>>
>> I frequently get a kernel oops in do_ip_vs_get_ctl when starting keepalived
>> on
>> a 3.3.0 kernel. I'm attaching the trace from /var/log/messages. Has anyone
>> encountered this problem and if so is there a patch available? Much
>> appreciated.
>
> Is it happening while ip_vs module is loading?
>nf_register_sockopt is one of the first thing that is
>initialized, may be the GET operation accesses something
>from net->ipvs that is not initialized yet. As I can not
>see properly the exact place from the oops, I'll try to
>analyze do_ip_vs_get_ctl for such problem. May be other
>folks will be faster in tracking the right command and
>position in the source code.
>
It's a NULL ptr in ipvs->num_services; at line 2649
2644 case IP_VS_SO_GET_INFO:
2645 {
2646 struct ip_vs_getinfo info;
2647 info.version = IP_VS_VERSION_CODE;
0x00000000000086a9 <+1481>: movl $0x10201,-0x180(%rbp)
2648 info.size = ip_vs_conn_tab_size;
0x00000000000086a3 <+1475>: mov 0x0(%rip),%eax # 0x86a9
<do_ip_vs_get_ctl+1481>
0x00000000000086b3 <+1491>: mov %eax,-0x17c(%rbp)
2649 info.num_services = ipvs->num_services;
0x00000000000086b9 <+1497>: mov 0x5f8(%r12),%eax
0x00000000000086c1 <+1505>: mov %eax,-0x178(%rbp)
0x00000000000086c7 <+1511>: jmpq 0x835d <do_ip_vs_get_ctl+637>
2650 if (copy_to_user(user, &info, sizeof(info)) != 0)
2651 ret = -EFAULT;
2652 }
2653 break;
2654
2655 case IP_VS_SO_GET_SERVICES:
> May be we have to split ip_vs_control_init to
>two parts so that sockopts are the last thing to register
>on init.
I think that is a good idea i.e. add it after nf_register_hooks()
Do you prepare a patch or should I do it ?
>
>Regards
>
>--
>Julian Anastasov <ja@xxxxxx>
>--
Regards
Hans Schillstrom
+46 70 699 7150
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
|