Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 513928 - sys-cluster/drbd-8.4.5 version bump
Summary: sys-cluster/drbd-8.4.5 version bump
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: All Linux
: Normal normal with 2 votes (vote)
Assignee: Gentoo Cluster Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-06-20 06:42 UTC by INODE64 Sistemas
Modified: 2015-09-21 08:31 UTC (History)
11 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Lightly modified copy of drbd-8.4.3.ebuild (drbd-utils-8.9.2_rc2.ebuild,2.46 KB, text/plain)
2015-01-31 22:42 UTC, Mike Williams
Details
drbd-utils suitable initscript (drbd-utils-8.0.rc,3.10 KB, text/plain)
2015-01-31 22:47 UTC, Mike Williams
Details
patch to remove invalid directive (global_common-options.patch,415 bytes, patch)
2015-01-31 22:49 UTC, Mike Williams
Details | Diff
/run/lock fixed ebuild (drbd-utils-8.9.2_rc2.ebuild,2.46 KB, text/plain)
2015-02-01 12:23 UTC, Mike Williams
Details
Use /run/lock patch (run-lock.patch,564 bytes, patch)
2015-02-01 12:24 UTC, Mike Williams
Details | Diff
drbd-utils-8.9.3 ebuild and filesdir (drbd-utils-8.9.3.tar.xz,3.75 KB, application/x-xz)
2015-07-28 12:47 UTC, Mark (voidzero)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description INODE64 Sistemas 2014-06-20 06:42:07 UTC
Changelog at 2014-06-02:

8.4.5 (api:genl1/proto:86-101)
-------
 * fix potential BUG_ON in mempool_alloc for older kernels (<2.6.23)
 * fix cornercase of resync finished detection
 * fix drbd_ldev_destroy to run exactly once and in worker context
 * fix spurious detach/disconnect: don't announce WRITE_SAME
 * fix NULL pointer deref in blk_add_request_payload
   (DISCARD/TRIM handling in sd)
 * fix regression: potential NULL pointer dereference
 * fix regression: potential list corruption
 * fix regression: potential deadlock in adm functions (drbdsetup)
 * fix regression: /sbin vs /usr/sbin in scripts
 * fix race stopping the worker thread
 * new debugfs presence expose oldest requests and other details
 * userspace moved to own repository
 * linux 3.13 and 3.14 compatibility
 * improve adaptive resync controler
 * reduce bitmap IO during resync
 * allow write-ordering policy to be bumped up again
 * trigger tcp_flush_pending_frames() for PING/PING_ACK
 * fix potential segfault in drbdadm adjust
 * drbdsetup improvements: fix netlink socket buffers; detect modprobe failure

8.4.4 (api:genl1/proto:86-101)
--------
 * Changes from 8.3.16
   * fix potential deadlock when concurrently fencing and establishing a connection
   * fix potential distributed deadlock during verify or resync
   * fix decoding of bitmap vli rle for device sizes > 64 TB
   * fix for deadlock when using automatic split-brain-recovery
   * only fail empty flushes if no good data is reachable
   * avoid to shrink max_bio_size due to peer re-configuration
   * fix resume-io after reconnect with broken fence-peer handler
   * crm-fence-peer: less cib polling, peer-alive detection using crmadmin,
     and other improvements
   * OCF RA: avoid too tight pacemaker driven recovery loop on failed promote,
     implement adjust_master_score parameter
   * fix too large bursts for very slow resync rates
   * don't let application IO throttle resync to a stall
 * Fixed a hole in the challenge-response implementation
 * Fixed a theoretical IO deadlock (Only triggers with unusual small AL i.e. 7)
 * Fixed attaching to disks with fixed size external meta-data
   (This regressions was introduced with 8.4.3)
 * Fixed a crash when the connection broke at a very exact point in
   time while a graceful disconnect executes
 * Support for REQ_DISCARD
 * Allow parallel promote/demote
 * Allow online changing of al-stripes and al-stripe-size with the
   resize command
 * drbdadm adjust now deals with IP-address changes correctly
 * Align the internal object model with drbd-9.0 (away from drbd-8.3)
 * New drbd-proxy option "bwlimit"; allow proxy options on host level
 * Compiles on Linux v3.10

Reproducible: Always
Comment 1 PaX Team 2014-11-10 11:14:06 UTC
the userland management tools have been split out into the drbd-utils package (with its own versioning scheme), so this package should probably follow suit as well.
Comment 2 Zentoo 2015-01-30 22:10:26 UTC
I'm waiting for this version bump because actual stable gentoo kernel 3.17.x use the DRBD 8.4.5 API. Actual sys-cluster/drbd-8.4.3 force us to not upgrade kernel from 3.14.x.
Comment 3 Mike Williams 2015-01-31 22:42:22 UTC
Created attachment 395274 [details]
Lightly modified copy of drbd-8.4.3.ebuild

Extremely poorly tested ebuild for drbd-utils attached.
It's 8.9.2_rc2 because earlier versions don't include the heartbeat resource scripts and we use heartbeat.


drbdadm was installed into /usr/sbin yet the supplied configs still refer to /sbin/drbdadm hence the dosym call.

Slightly modified init script, and global_common-options.patch to come.

It still uses /var/lock as well.

Next week I plan to mention the /usr/sbin, global_common.conf patch, and /var/lock things on the linbit list.


"move sys-cluster/drbd sys-cluster/drbd-utils" in a profile update is probably sensible too.
Comment 4 Mike Williams 2015-01-31 22:47:25 UTC
Created attachment 395276 [details]
drbd-utils suitable initscript

PATH=${PATH}:/lib/drbd:/lib64/drbd because `$DRBDADM -d adjust all` spits out drbdsetup-84 (or presumably drbdsetup-83).
drbdsetup-84 (and drbdsetup-83) exist only in /lib64/drbd (or /lib/)
It's horrible I know.


Also an "echo echo" reduced to echo.
Comment 5 Mike Williams 2015-01-31 22:49:59 UTC
Created attachment 395278 [details, diff]
patch to remove invalid directive

"options" seems invalid now, but it's still included in the supplied config.
Crummy hack to remove it.
Comment 6 Mike Williams 2015-02-01 12:23:58 UTC
Created attachment 395308 [details]
/run/lock fixed ebuild

Corrected sed to stop $(localstatedir)/lock (/var/lock) being installed.
Patch to make DRBD use /run/lock instead of $(localstatedir)/lock (/var/lock).
'/usage-count/ s/yes/no/' sed fixed, just a change to the file it being applied on.
Comment 7 Mike Williams 2015-02-01 12:24:41 UTC
Created attachment 395310 [details, diff]
Use /run/lock patch
Comment 8 Mark (voidzero) 2015-06-14 17:59:06 UTC
Please, can this be looked at? The currently available version is older than the current kernel version. Thank you.
Comment 9 Mark (voidzero) 2015-06-26 16:26:39 UTC
Mike, I would like to update this for myself, but I don't understand. Was the plan to split drbd up into drbd (kernel module) and drbd-utils? Is this still on the table?
Comment 10 Mike Williams 2015-06-26 18:15:01 UTC
(In reply to Mark from comment #9)
> Mike, I would like to update this for myself, but I don't understand. Was
> the plan to split drbd up into drbd (kernel module) and drbd-utils? Is this
> still on the table?

Howdy.
DRBD has been in the kernel for ages, so a kernel module package seems quite pointless.
sys-cluster/drbd-utils is called sys-cluster/drbd-utils because Linbit call it drbd-utils now.


FYI, I made a typo in the ebuild.

bdb64serv15 drbd-utils # diff drbd-utils-8.9.2_rc3.ebuild drbd-utils-8.9.3.ebuild -u
--- drbd-utils-8.9.2_rc3.ebuild 2015-03-13 21:39:57.917498438 +0000
+++ drbd-utils-8.9.3.ebuild     2015-06-26 19:05:55.884755828 +0100
@@ -22,7 +22,7 @@
        udev? ( virtual/udev )
        !!sys-cluster/drbd
 "
-RDPEND=${DEPEND}
+RDEPEND=${DEPEND}
 
 S="${WORKDIR}/${P/_/}"
 
bdb64serv15 drbd-utils # 


I've not used 8.9.3 yet, but 8.9.2 is good.
Comment 11 Mark (voidzero) 2015-06-26 19:39:01 UTC
Ah good catch.

Yeah the reason I want 8.4.5 in portage is because this is the module supplied by recent kernels. So whenever I issue a command, using kernel 4.0.5-hardened, I get:

DRBD module version: 8.4.5
   userland version: 8.4.3
you should upgrade your drbd tools!

This is why I think that the portage tree should include this ebuild.
Comment 12 Mark (voidzero) 2015-06-26 19:40:09 UTC
Eh, Mike, you're talking about 8.9? Not 8.4?...
Comment 13 Zentoo 2015-06-27 09:08:53 UTC
@Mark: A point to clarify drbd situation right now from how I understand it:

DRBD is two components:
- drbd kernel module
- drbd userspace tools

DRBD kernel module:
- version 8.4.3 for kernel <= 3.14.x (old stable branch)
- version 8.4.5 for kernel >= 3.15.0 (actual stable branch from upstream)
- version 9.0 is pre-release version
- version 9.x is development version

DRBD kernel module ChangeLog:
- Stable:
http://git.drbd.org/gitweb.cgi?p=drbd-8.4.git;a=blob_plain;f=ChangeLog;hb=HEAD
- Prerelease:
http://git.drbd.org/gitweb.cgi?p=drbd-9.0.git;a=blob_plain;f=ChangeLog;hb=HEAD


DRBD userspace tools:
- actually: sys-cluster/drbd-8.4.3 (so needed for kernel <= 3.14.x)
- need: sys-cluster/drbd-util-8.9.x (needed for actual kernel >= 3.15.0)
- Git Summary: http://git.linbit.com/gitweb.cgi?p=drbd-utils.git;a=summary


*******************************************************************************
The point is that kernel module and userspace tools versionning was in sync up to drbd 8.4.3 version.
Starting from 8.4.5 kernel module version: versionning of DRBD kernel module and DRBD userspace tools are not in sync anymore and actually we need for current stable kernel:
- drbd kernel module 8.4.5 (stable branch included in kernel)
- sys-cluster/drbd-utils-8.9.x (stable branch from upstream)
*******************************************************************************
Comment 14 Zentoo 2015-06-27 09:15:50 UTC
So we need to have these new dependencies:

sys-cluster/drbd-8.4.3 for < sys-kernel/*-sources-3.15.0
sys-cluster/drbd-utils-8.9 for >= sys-kernel/*-sources-3.15.0
Comment 15 Mark (voidzero) 2015-06-27 17:24:05 UTC
You are right - DRBD's change of course with regards to the disconnected version numbers were indeed causing my confusion.

Your gracious explanation clears things up quite a bit, thanks Zentoo. It looks like we can then just try to get drbd-util-8.9.x added, it will not cause a conflict with the earlier drbd version. Or is there something I am overlooking?
Comment 16 Mark (voidzero) 2015-06-27 17:24:49 UTC
Err, well, they can't be installed at the same time of course, but other than that...
Comment 17 Zentoo 2015-06-28 15:29:08 UTC
I think you get the point.

I don't know if it's possible to use kernel version dependencies.
If it's possible, drbd and drbd-utils can't be installed at the same time naturally since kernel version will force you to use the good one.
Comment 18 Mike Williams 2015-06-28 16:00:52 UTC
(In reply to Zentoo from comment #17)
> I think you get the point.
> 
> I don't know if it's possible to use kernel version dependencies.
> If it's possible, drbd and drbd-utils can't be installed at the same time
> naturally since kernel version will force you to use the good one.


FYI, drbd-utils includes the userland utilities for DRBD 8.3 and 8.4 so will support kernels all the way back to long before 3.8 (3.8 was the kernel where the upgrade from DRBD 8.3 to 8.4 was made).
I believe the reason Linbit created the drbd-utils package was so a single userland package could support all kernels. There are certainly recent commits talking about DRBD 9.

sys-cluster/drbd-util is all that's necessary.
This is why I put "!!sys-cluster/drbd" in the ebuild DEPEND.
Comment 19 Mark (voidzero) 2015-07-24 23:49:46 UTC
Come on, Gentoo. Add these ebuilds. It sucks to have to throw these into my own overlay.

Mike, very small detail: maybe you could adjust or remove the $Header$, it refers to the 'old' drbd ebuild.
Comment 20 Ultrabug gentoo-dev 2015-07-26 08:19:12 UTC
I'll do my very best to look into it next week, thanks for your patience and help mates.
Comment 21 Ultrabug gentoo-dev 2015-07-28 09:23:55 UTC
hmm all those renames and stuff are very confusing. I'm no DRBD user and not following the technology too much tbh.

I still have some trouble to guess what's the best course of action here.
Comment 22 Mark (voidzero) 2015-07-28 12:47:58 UTC
Created attachment 407802 [details]
drbd-utils-8.9.3 ebuild and filesdir

All the files for drbd-utils-8.9.3 for kernel 3.15.0 and upward.
Comment 23 Mark (voidzero) 2015-07-28 12:48:24 UTC
Ultrabug - thanks for responding.  I understand that it is difficult to plough through if you're not a drbd user.

Most of the work has already been done by Mike. But for extra simplicity I'll attach a tar.xz containing the files and the manifest. So all you will need is my attachment. It contains an ebuild for drbd-utils-8.9.3, in which with the typo mentioned by Mike has been fixed. (I am unable to mark the other attachments as obsolete, btw.)

As explained by Zentoo: drbd-utils comes in place of 'drbd' and 'drbd-kernel.' It is intended for users who are using kernel version 3.15.0 and upward; they are encouraged to use drbd-utils from now on, instead of both drbd-kernel (no longer required as a separate module, it is included in the kernel) and drbd.

Some time in the future, when kernels below 3.15.0 are no longer in the portage tree, drbd-kernel and drbd may be deleted and all that can remain is drbd-utils. I'll keep an eye on this, and I'll file a bug when this can be done.

Hope this makes it easier. Please keep us posted.

Much thanks,
Mark.
Comment 24 Benjamin Beier 2015-08-18 13:54:36 UTC
(In reply to Mark (voidzero) from comment #23)
> Some time in the future, when kernels below 3.15.0 are no longer in the
> portage tree, drbd-kernel and drbd may be deleted and all that can remain is
> drbd-utils. I'll keep an eye on this, and I'll file a bug when this can be
> done.
> 
> Hope this makes it easier. Please keep us posted.
> 
> Much thanks,
> Mark.

Actually Mike Williams said the new userland utils are supposed to support multiple kernel API versions at once and that is also the reason why the version numbers are not in line with any specific API version anymore. This means you could announce the old drbd ebuild as deprecated and give gentoo users a few month to switch to the new drbd-utils ebuild to finally remove the old one.

Please add the new drbd-utils ebuild to the portage tree. I don't care whether its stable, unstable or masked. Give the users a chance to proof that it works fine.

I am also stuck on an old kernel version and I am waiting for this version bump here since month. :/
Comment 25 Mark (voidzero) 2015-09-05 16:37:09 UTC
Ultrabug, if you need help including this, as we discussed previously you can still find me on Freenode (nick: voidzero) in case you need help including this. Thank you.
Comment 26 Jerry McDonald 2015-09-11 17:16:09 UTC
Really need this added to the portage tree.  Every time outdated drbd tools are used, get the following error:

DRBD module version: 8.4.5
   userland version: 8.4.2
you should upgrade your drbd tools!

Don't have an option to not upgrade gentoo, and this is really mucking up all my scripts.  So the only option for a production server is to install an untested/unreviewed ebuild?  Come on guys that's what the portage tree is for - so users from many environments can test the ebuild and comment on any issues for it.  By not adding this to the portage tree, even as unstable, you completely remove the gentoo support framework.  Let's make it happen please.
Comment 27 Ultrabug gentoo-dev 2015-09-11 17:29:24 UTC
(In reply to Jerry McDonald from comment #26)
> Really need this added to the portage tree.  Every time outdated drbd tools
> are used, get the following error:
> 
> DRBD module version: 8.4.5
>    userland version: 8.4.2
> you should upgrade your drbd tools!
> 
> Don't have an option to not upgrade gentoo, and this is really mucking up
> all my scripts.  So the only option for a production server is to install an
> untested/unreviewed ebuild?  Come on guys that's what the portage tree is
> for - so users from many environments can test the ebuild and comment on any
> issues for it.  By not adding this to the portage tree, even as unstable,
> you completely remove the gentoo support framework.  Let's make it happen
> please.

I promised and failed Mark (@voidzero) on IRC to take care of it this week, hopefully I will make it next week !

Keep up some hope mate ;)
Comment 28 Zentoo 2015-09-11 18:11:26 UTC
Great news, I will test it and report ASAP once in portage.

So this message should disappear from my cron mails :)

DRBD module version: 8.4.5
   userland version: 8.4.3
you should upgrade your drbd tools!
Comment 29 Mark (voidzero) 2015-09-13 01:30:51 UTC
@Zentoo that's no news unless you are going to add it to portage.

I am giving up pushing for updates, I have been trying since july this year so did my best, but am just fed up with these excuses about being too busy to extract a tarball and add it to Gentoo's repository.

Sorry if it sounds rude. But I'll just add this to my own private overlay and be done with it.

Those of you who still want to update it yourself - just extract the attachment added by me, you can see it in the list. It's a tarball that contains all the files to get you going.

Unsubscribing from this bug, but, Mike and Zentoo thanks for helping me get started back when I did. I have been running drbd happily without any problem.
Comment 30 Jerry McDonald 2015-09-15 18:47:52 UTC
Well I can add that Mark's (voidzero) drbd-utils seems to work fine in my environment:  AMD64 3.18.9-hardened corosync pacemaker lvm2 drbd ocfs2 xen.

I've been running the package for a few days now on two nodes with a fair amount of activity with no issues.  And since the drbd-tools now matches the kernel version, no more drbd tool mismatch warnings.  If anybody else is having this problem, I would recommend to use Mark's ebuild for now.  To give others confidence, I would also suggest to report your findings here.

I still can't fathom how long it is taking to get this issue addressed.  Mark provided a very straightforward ebuild (back in July) for a path that is known, using a mainstream package (drbd-utils tarball).  It just has to get put into the portage tree.  If the dev assigned doesn't have time to do this, why not escalate to somebody who can add to the portage tree?

I'm not trying to find fault with anyone, but I like gentoo, and I want it to continue to succeed.  Not being able to find important software in your distribution is what makes folk turn away.  DRBD is kernel-level, infrastructure grade stuff, and folk don't want to hear third-party overlays or untested ebuilds for important infrastructure.  Please fix this.
Comment 31 Ultrabug gentoo-dev 2015-09-17 13:51:01 UTC
Today is a crazy day, I've found the appropriate time to add this ebuild in the tree.

sys-cluster/drbd-utils: new ebuild fix #513928 thx to Benjaminer Jerry McDonald Mark (voidzero) Mike Williams Zentoo

@All, I understand fully your frustration and astonishment as to the time it took for this ebuild to hit the tree. As you know we all "work" on free time and as devs we simply can't "unpack & commit" stuff in the tree. For instance, you'll see some subtle differences between the proposed ebuild and the commited one which can look ridiculous to you but still requires a little focus to be done properly.

@voidzero: special thank you for your patience, which I broke eventually :(

That being said, I can fully disclose that this one must be my lowest tested new ebuild I pushed to tree so ANY feedback / acknowledgements of stability / usability will be very welcome.

One again, no hard feelings and a lot of thank you to everyone involved !
Comment 32 Zentoo 2015-09-19 11:03:09 UTC
There is a typo in the emerge statement:

 * Please copy and gunzip the configuration file:
 * from /usr/share/doc/drbd-utils-8.9.3/drbd-utils.conf.example.bz2 to /etc/drbd.conf
 * and edit it to your needs. Helpful commands:

The installed file is:
/usr/share/doc/drbd-utils-8.9.3/drbd.conf.example.bz2
instead of:
/usr/share/doc/drbd-utils-8.9.3/drbd-utils.conf.example.bz2
Comment 33 Ultrabug gentoo-dev 2015-09-21 08:31:34 UTC
(In reply to Zentoo from comment #32)
> There is a typo in the emerge statement:
> 
>  * Please copy and gunzip the configuration file:
>  * from /usr/share/doc/drbd-utils-8.9.3/drbd-utils.conf.example.bz2 to
> /etc/drbd.conf
>  * and edit it to your needs. Helpful commands:
> 
> The installed file is:
> /usr/share/doc/drbd-utils-8.9.3/drbd.conf.example.bz2
> instead of:
> /usr/share/doc/drbd-utils-8.9.3/drbd-utils.conf.example.bz2

Thanks mate, fixed !