2007-06-12 21:09:18

by Maurice Volaski

[permalink] [raw]
Subject: drbd 8.0.2/3 doesn't load under kernel 2.6.21

On a 64-bit Gentoo system with Gentoo's 2.6.21 kernel, drbd 8.0.2/3
complains when I try to load the module:

[ 134.141363] drbd: Unknown symbol cn_fini
[ 134.141399] drbd: Unknown symbol cn_init

It works fine when I compile it and load in the previous kernel
version, 2.6.20 and the symbols are present in the map file

./System.map-genkernel-x86_64-2.6.21-gentoo-r2:ffffffff802935aa t cn_fini
./System.map-genkernel-x86_64-2.6.21-gentoo-r2:ffffffff8029362a t cn_init

I am c'cing the kernel mailing list because this appears to be a
problem with how any module accesses symbols in the kernel, not just
drbd. Source was compiled with Gentoo gcc-4.1.2, glibc-2.5-r3.
--

Maurice Volaski, [email protected]
Computing Support, Rose F. Kennedy Center
Albert Einstein College of Medicine of Yeshiva University


2007-06-13 03:38:51

by Maurice Volaski

[permalink] [raw]
Subject: Re: drbd 8.0.2/3 doesn't load under kernel 2.6.21

It turns out I was adding the web100 patch (http://www.web100.org) to
the 2.6.21 kernel and that's what causes the symbol resolving problem
below. Adding the corresponding version of the web100 patch to the
2.6.20 kernel makes this problem appear there as well. On fresh
versions of the kernel, this problem does not occur. At the moment,
it's not possible to have a current kernel that contains both drbd
and web100.

>On a 64-bit Gentoo system with Gentoo's 2.6.21 kernel, drbd 8.0.2/3
>complains when I try to load the module:
>
>[ 134.141363] drbd: Unknown symbol cn_fini
>[ 134.141399] drbd: Unknown symbol cn_init
>
>It works fine when I compile it and load in the previous kernel
>version, 2.6.20 and the symbols are present in the map file
>
>./System.map-genkernel-x86_64-2.6.21-gentoo-r2:ffffffff802935aa t cn_fini
>./System.map-genkernel-x86_64-2.6.21-gentoo-r2:ffffffff8029362a t cn_init
>
>I am c'cing the kernel mailing list because this appears to be a
>problem with how any module accesses symbols in the kernel, not just
>drbd. Source was compiled with Gentoo gcc-4.1.2, glibc-2.5-r3.

--

Maurice Volaski, [email protected]
Computing Support, Rose F. Kennedy Center
Albert Einstein College of Medicine of Yeshiva University

2007-08-01 20:23:29

by Maurice Volaski

[permalink] [raw]
Subject: Re: drbd 8.0.2/3 doesn't load under kernel 2.6.21

I'm making an assumption that depmod is somehow to blame and have
logged this as a kernel bug,
http://bugzilla.kernel.org/show_bug.cgi?id=8829

>
>>It turns out I was adding the web100 patch (http://www.web100.org) to
>>the 2.6.21 kernel and that's what causes the symbol resolving problem
>>below. Adding the corresponding version of the web100 patch to the
>>2.6.20 kernel makes this problem appear there as well. On fresh
>>versions of the kernel, this problem does not occur. At the moment,
>>it's not possible to have a current kernel that contains both drbd
>>and web100.
>>
>>>On a 64-bit Gentoo system with Gentoo's 2.6.21 kernel, drbd 8.0.2/3
>>>complains when I try to load the module:
>>>
>>>[ 134.141363] drbd: Unknown symbol cn_fini
>>>[ 134.141399] drbd: Unknown symbol cn_init
>>>
>>>It works fine when I compile it and load in the previous kernel
>>>version, 2.6.20 and the symbols are present in the map file
>>>
>>>./System.map-genkernel-x86_64-2.6.21-gentoo-r2:ffffffff802935aa t cn_fini
>>>./System.map-genkernel-x86_64-2.6.21-gentoo-r2:ffffffff8029362a t cn_init
>>>
>>>I am c'cing the kernel mailing list because this appears to be a
>>>problem with how any module accesses symbols in the kernel, not just
>> >drbd. Source was compiled with Gentoo gcc-4.1.2, glibc-2.5-r3

--

Maurice Volaski, [email protected]
Computing Support, Rose F. Kennedy Center
Albert Einstein College of Medicine of Yeshiva University

2007-08-01 22:35:17

by Adrian Bunk

[permalink] [raw]
Subject: Re: drbd 8.0.2/3 doesn't load under kernel 2.6.21

On Wed, Aug 01, 2007 at 04:21:29PM -0400, Maurice Volaski wrote:
> I'm making an assumption that depmod is somehow to blame and have logged
> this as a kernel bug, http://bugzilla.kernel.org/show_bug.cgi?id=8829

depmod is working fine.

It's the interaction between your two patches that breaks it for you.

>>> It turns out I was adding the web100 patch (http://www.web100.org) to
>>> the 2.6.21 kernel and that's what causes the symbol resolving problem
>>> below. Adding the corresponding version of the web100 patch to the
>>> 2.6.20 kernel makes this problem appear there as well. On fresh
>>> versions of the kernel, this problem does not occur. At the moment,
>>> it's not possible to have a current kernel that contains both drbd
>>> and web100.
>>>
>>>> On a 64-bit Gentoo system with Gentoo's 2.6.21 kernel, drbd 8.0.2/3
>>>> complains when I try to load the module:
>>>>
>>>> [ 134.141363] drbd: Unknown symbol cn_fini
>>>> [ 134.141399] drbd: Unknown symbol cn_init
>>>>
>>>> It works fine when I compile it and load in the previous kernel
>>>> version, 2.6.20 and the symbols are present in the map file
>>>>
>>>> ./System.map-genkernel-x86_64-2.6.21-gentoo-r2:ffffffff802935aa t
>>>> cn_fini
>>>> ./System.map-genkernel-x86_64-2.6.21-gentoo-r2:ffffffff8029362a t
>>>> cn_init
>>>>
>>>> I am c'cing the kernel mailing list because this appears to be a
>>>> problem with how any module accesses symbols in the kernel, not just
>>> >drbd. Source was compiled with Gentoo gcc-4.1.2, glibc-2.5-r3

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2007-08-01 23:04:17

by Maurice Volaski

[permalink] [raw]
Subject: Re: drbd 8.0.2/3 doesn't load under kernel 2.6.21

First, did you confirm this behavior? Can you please explain that?
How could they possibly interact with one another?


>On Wed, Aug 01, 2007 at 04:21:29PM -0400, Maurice Volaski wrote:
>> I'm making an assumption that depmod is somehow to blame and have logged
>> this as a kernel bug, http://bugzilla.kernel.org/show_bug.cgi?id=8829
>
>depmod is working fine.
>
>It's the interaction between your two patches that breaks it for you.
>
>>>> It turns out I was adding the web100 patch (http://www.web100.org) to
>>>> the 2.6.21 kernel and that's what causes the symbol resolving problem
>>>> below. Adding the corresponding version of the web100 patch to the
>>>> 2.6.20 kernel makes this problem appear there as well. On fresh
>>>> versions of the kernel, this problem does not occur. At the moment,
>>>> it's not possible to have a current kernel that contains both drbd
>>>> and web100.
>>>>
>>>>> On a 64-bit Gentoo system with Gentoo's 2.6.21 kernel, drbd 8.0.2/3
>>>>> complains when I try to load the module:
>>>>>
>>>>> [ 134.141363] drbd: Unknown symbol cn_fini
>>>>> [ 134.141399] drbd: Unknown symbol cn_init
>>>>>
>>>>> It works fine when I compile it and load in the previous kernel
>>>>> version, 2.6.20 and the symbols are present in the map file
>>>>>
>>>>> ./System.map-genkernel-x86_64-2.6.21-gentoo-r2:ffffffff802935aa t
>>>>> cn_fini
>>>>> ./System.map-genkernel-x86_64-2.6.21-gentoo-r2:ffffffff8029362a t
>>>>> cn_init
>>>>>
>>>>> I am c'cing the kernel mailing list because this appears to be a
>>>>> problem with how any module accesses symbols in the kernel, not just
>>>> >drbd. Source was compiled with Gentoo gcc-4.1.2, glibc-2.5-r3
>
>cu
>Adrian

--

Maurice Volaski, [email protected]
Computing Support, Rose F. Kennedy Center
Albert Einstein College of Medicine of Yeshiva University

2007-08-02 00:00:46

by Adrian Bunk

[permalink] [raw]
Subject: Re: drbd 8.0.2/3 doesn't load under kernel 2.6.21

On Wed, Aug 01, 2007 at 07:02:14PM -0400, Maurice Volaski wrote:
> First, did you confirm this behavior? Can you please explain that? How
> could they possibly interact with one another?


It's obvious when looking at the source code that both modules you are
trying to use are buggy, and the sum of the bugs in both modules is the
drbd breakage you observe.


30% of the guilt go to the drbd developers for doing the following:

#ifdef NETLINK_ROUTE6
/* pre 2.6.16 */
err = cn_init();
if(err) return err;
#endif

The author wanted to check for pre-2.6.14 when the connector code was
added to the kernel, not for pre-2.6.16 as the comment implies or
pre-2.6.13 as the code does.

Or he wanted to check whether it's a recent kernel and the connector
code is compiled into the kernel.


70% of the guilt go to the web100 developers for shipping the following
to their users:

--- linux-2.6-web100/include/linux/netlink.h 19 Jul 2007 17:49:17 -0000 1.1.1.16
+++ linux-2.6-web100/include/linux/netlink.h 19 Jul 2007 18:11:01 -0000 1.17
@@ -14,6 +14,7 @@
#define NETLINK_SELINUX 7 /* SELinux event notifications */
#define NETLINK_ISCSI 8 /* Open-iSCSI */
#define NETLINK_AUDIT 9 /* auditing */
+#define NETLINK_ROUTE6 11 /* af_inet6 route comm channel */
#define NETLINK_FIB_LOOKUP 10
#define NETLINK_CONNECTOR 11
#define NETLINK_NETFILTER 12 /* netfilter subsystem */

That's not only buggy but also not used by web100.


cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2007-08-03 14:56:46

by Lars Ellenberg

[permalink] [raw]
Subject: Re: drbd 8.0.2/3 doesn't load under kernel 2.6.21

On Thu, Aug 02, 2007 at 02:00:05AM +0200, Adrian Bunk wrote:
> On Wed, Aug 01, 2007 at 07:02:14PM -0400, Maurice Volaski wrote:
> > First, did you confirm this behavior? Can you please explain that? How
> > could they possibly interact with one another?
>
>
> It's obvious when looking at the source code that both modules you are
> trying to use are buggy, and the sum of the bugs in both modules is the
> drbd breakage you observe.
>
>
> 30% of the guilt go to the drbd developers for doing the following:
>
> #ifdef NETLINK_ROUTE6
> /* pre 2.6.16 */
> err = cn_init();
> if(err) return err;
> #endif
>
> The author wanted to check for pre-2.6.14 when the connector code was
> added to the kernel, not for pre-2.6.16 as the comment implies or
> pre-2.6.13 as the code does.
>
> Or he wanted to check whether it's a recent kernel and the connector
> code is compiled into the kernel.

that is what we wanted to check for. iirc, we first went to test for
the kernel version, unfortunately going just for the kernel version did
not exactly work out for patched vendor kernels...
browsing over the available (to us at that time) kernel trees suggested
that misusing the define of NETLINK_ROUTE6 might just work...

> 70% of the guilt go to the web100 developers for shipping the following
> to their users:
>
> --- linux-2.6-web100/include/linux/netlink.h 19 Jul 2007 17:49:17 -0000 1.1.1.16
> +++ linux-2.6-web100/include/linux/netlink.h 19 Jul 2007 18:11:01 -0000 1.17
> @@ -14,6 +14,7 @@
> #define NETLINK_SELINUX 7 /* SELinux event notifications */
> #define NETLINK_ISCSI 8 /* Open-iSCSI */
> #define NETLINK_AUDIT 9 /* auditing */
> +#define NETLINK_ROUTE6 11 /* af_inet6 route comm channel */
> #define NETLINK_FIB_LOOKUP 10
> #define NETLINK_CONNECTOR 11
> #define NETLINK_NETFILTER 12 /* netfilter subsystem */
>
> That's not only buggy but also not used by web100.
>
>
> cu
> Adrian

thank you very much for looking at this,

--
: Lars Ellenberg Tel +43-1-8178292-0 :
: LINBIT Information Technologies GmbH Fax +43-1-8178292-82 :
: Vivenotgasse 48, A-1120 Vienna/Europe http://www.linbit.com :
__
please use the "List-Reply" function of your email client.