[DRBD-user] Re: RHEL4 / Kernel 2.6.9-11

Tim Bruijnzeels tim.bruijnzeels at int.greenpeace.org
Tue Jun 14 13:21:34 CEST 2005

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


Hi all,

probably my reply won't show up as a reply as I only just subscribed.
Read the original message (11 june) in the archives. Sorry 'bout that.

==ORIGINAL MESSAGE PASTED FROM ARCHIVE:
>Hi,
>
>Redhat recently release a new kernel version 2.6.9-11.
>
>Installing the new version gave me some nice problems, when i had to
>recompile drbd (0.7.11).
>Everything compiled nice and smooth (I have applied the #ifdef
>TASK_ZOMBIE in drbd_int.h patch earlier)
>
>Loading the module resulted in
>
>Jun 11 17:00:10 b2 kernel: overflow in relocation type 10 val
>ffffffffa01b71c0
>Jun 11 17:00:10 b2 kernel: `drbd' likely not compiled with
>-mcmodel=kernel
>
>Adding -mcmodel=kernel in Makefil and everything compiles nice and
>loads smooth again.
>
>Is this the correct workaround?
>
>My box is Dell PE2850 with a dual Xeon/EMT64 with 4GB of ram.
>I running RHEL4(ES) x86_64 with a standard 2.6.9-11.Elsmp kernel.
>
>-Thomas
==END ORIGINAL MESSAGE

I have a similar problem compiling a new kernelmodule (drbd-0.7.10)
after I updated one of my RHEL4 servers yesterday.

The new kernel rpm I am about to use is 2.6.9-11-smp, but I get the same
error when I try to recompile against my old kernel (rpm:
2.6.9-5.0.5-smp). Therefore I suspect the problem may be related to
other updates, like gcc.

I am using the following to compile:
- cd /usr/src/kernels/2.6.9-11.EL-smp-i686/
- make -s oldconfig
- cd /usr/local/src/drbd-0.7.10
- make KDIR=/usr/src/kernels/2.6.9-11.EL-smp-i686/

.. the following error occurs (or well, i think this is the root):
/usr/local/src/DRBD_heartbeat/drbd-0.7.10/drbd/drbd_int.h:1558: error:
`TASK_ZOMBIE' undeclared (first use in this function)

Reading the changelog I found:
...
0.7.6 (api:77/proto:74)
-----
...
* Make DRBD work on Linux-2.6.10-rc2 and newer: Replaced
   sock_alloc() by sock_create(), replaced TASK_ZOMBIE by
   EXIT_ZOMBIE.
...

Now... when I manually replace 'TASK_ZOMBIE' by 'EXIT_ZOMBIE' in
drbd_int.h line 1558 and recompile on my drbd slave:
- drdb compiles fine
- the rpm (make rpm) compiles fine
- the rpm installs fine
- drbd loads fine
- syncing is reported to work

It still seems fine after two hours:
[root at mysystem ~]# service drbd status
drbd driver loaded OK; device status:
version: 0.7.10 (api:77/proto:74)
SVN Revision: 1743 build by root at mysystem, 2005-06-14 11:11:15
 0: cs:Connected st:Secondary/Primary ld:Consistent
    ns:0 nr:146616 dw:146616 dr:0 al:0 bm:14 lo:0 pe:0 ua:0 ap:0
 1: cs:Connected st:Secondary/Primary ld:Consistent
    ns:0 nr:901044 dw:901044 dr:0 al:0 bm:105 lo:0 pe:0 ua:0 ap:0

But can I be sure I won't run into trouble later on? It seems to me my
kernel will need the 'EXIT_ZOMBIE' anyway. Maybe compilation now fails
because the new gcc on my system is more picky and it now does bail over
an undeclared 'TASK_ZOMBIE'? Or because of changes in the new glibc etc.
on my system?

Thomas refers in his message to 'TASK_ZOMBIE' patch that I assume deals
with this issue, but I have been unable to locate that and I didn't need
it before.
Does anyone out there know whether it should be safe to do what I did?
Where that patch is? Or even whether the 'TASK_ZOMBIE' bit that's still
in the source is intentional --considering the changelog remarks?

Cheers,
Tim


BTW:
My system is a dual Xeon IBM xSeries (365) using a hardware raid
controller (IBM ServeRAID) running the standard RHEL4 smp kernel.





More information about the drbd-user mailing list