Re[2]: kernel oops - do_ip_vs_get_ctl

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

 



	Hello,

On Fri, 20 Apr 2012, Hans Schillstrom wrote:

> >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

	So, it seems ipvs is NULL...

> 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()

	Exactly, we can put nf_register_sockopt and
ip_vs_genl_register in some new function to call.

> Do you prepare a patch or should I do it  ?

	I'm stopping doing more patches until Simon takes
the previous changes, so that we can use some fresh tree.
You can try fixing this problem if you think you have
recent changes.

Regards

--
Julian Anastasov <ja@xxxxxx>
--
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


[Index of Archives]     [Linux Filesystem Devel]     [Linux NFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]     [X.Org]

  Powered by Linux