[Drbd-dev] Bug in latest 8.4-git
Igor Novgorodov
igor at novg.net
Wed Oct 8 12:31:33 CEST 2014
On 08.10.2014 13:37, Lars Ellenberg wrote:
> On Mon, Oct 06, 2014 at 08:21:15PM +0400, Igor Novgorodov wrote:
>> I didn't found any bugtracker for DRBD project, so i reported the bug here.
> Right thing to do. Thank you.
>
>> ENOIOCTLCMD is returned in several places in net/socket.c and
>> net/ipv4/tcp.c,
>> it seems to have something to do with 32-bit code emulation on
>> 64-bit kernel:
>>
>> #ifdef CONFIG_COMPAT
>> static int inet_compat_ioctl(struct socket *sock, unsigned int cmd,
>> unsigned long arg)
>> {
>> struct sock *sk = sock->sk;
>> int err = -ENOIOCTLCMD;
>>
>> if (sk->sk_prot->compat_ioctl)
>> err = sk->sk_prot->compat_ioctl(sk, cmd, arg);
>>
>> return err;
>> }
>> #endif
>>
>> CONFIG_COMPAT is only defined if 32-bit emulation is enabled in kernel.
>>
>> I've just rebuilt kernel with CONFIG_X86_X32 and drbd-8.4-git
>> started to work fine,
>> so the problem is there, somewhere in 64/32 compatibility layer :)
> Uh?
> That is ... unexpected.
>
> ->listen() should do any ioctls, though?
> and there is just kernel code talking to kernel code,
> so why would CONFIG_X86_X32 matter at all?
>
> Can you double check, please:
> Is that reproducible, i.e., if you swich that CONFIG off again,
> the error comes back?
>
> (does not reproduce here... yet)
You're right, something's odd here.
I've rebuilt the same git version 8.4
ca3a67af3823b85614621a4cf95e191c5820c0eb
with the very same kernel 3.14.19 with CONFIG_IA32_EMULATION unset, and
DRBD started
to work without a problem, no listen errors.
I used the same kernel & drbd sources, same config, nothing has changed
since.
Maybe there was some bug on my build machine...
Thanks anyway, and sorry for disturbing, if anything like that should
come up again, i'll report.
> Lars
>
> _______________________________________________
> drbd-dev mailing list
> drbd-dev at lists.linbit.com
> http://lists.linbit.com/mailman/listinfo/drbd-dev
More information about the drbd-dev
mailing list