All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] block: deprecate the sheepdog driver
@ 2020-09-22 16:16 Daniel P. Berrangé
  2020-09-22 16:16 ` [PATCH v2 1/2] block: drop moderated sheepdog mailing list from MAINTAINERS file Daniel P. Berrangé
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Daniel P. Berrangé @ 2020-09-22 16:16 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	Markus Armbruster, Max Reitz, Daniel P. Berrangé,
	Liu Yuan

2 years back I proposed dropping the sheepdog mailing list from the
MAINTAINERS file, but somehow the patch never got picked up:

  https://lists.gnu.org/archive/html/qemu-block/2018-03/msg01048.html

So here I am with the same patch again.

This time I go further and deprecate the sheepdog driver entirely.
See the rationale in the second patch commit message.

Daniel P. Berrangé (2):
  block: drop moderated sheepdog mailing list from MAINTAINERS file
  block: deprecate the sheepdog block driver

 MAINTAINERS                |  1 -
 block/sheepdog.c           | 15 +++++++++++++++
 configure                  |  5 +++--
 docs/system/deprecated.rst |  9 +++++++++
 4 files changed, 27 insertions(+), 3 deletions(-)

-- 
2.26.2




^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 1/2] block: drop moderated sheepdog mailing list from MAINTAINERS file
  2020-09-22 16:16 [PATCH v2 0/2] block: deprecate the sheepdog driver Daniel P. Berrangé
@ 2020-09-22 16:16 ` Daniel P. Berrangé
  2020-09-22 17:27   ` Thomas Huth
  2020-09-22 17:46   ` Vladimir Sementsov-Ogievskiy
  2020-09-22 16:16 ` [PATCH v2 2/2] block: deprecate the sheepdog block driver Daniel P. Berrangé
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 15+ messages in thread
From: Daniel P. Berrangé @ 2020-09-22 16:16 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	Markus Armbruster, Max Reitz, Daniel P. Berrangé,
	Liu Yuan, Philippe Mathieu-Daudé

The sheepdog mailing list is setup to stop and queue messages from
non-subscribers, pending moderator approval. Unfortunately it seems
that the moderation queue is not actively dealt with. Even when messages
are approved, the sender is never added to the whitelist, so every
future mail from the same sender continues to get stopped for moderation.

MAINTAINERS entries should be responsive and not unneccessarily block
mails from QEMU contributors, so drop the sheepdog mailing list.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 MAINTAINERS | 1 -
 1 file changed, 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 3d17cad19a..8e8a4fb0a8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2852,7 +2852,6 @@ F: block/rbd.c
 Sheepdog
 M: Liu Yuan <namei.unix@gmail.com>
 L: qemu-block@nongnu.org
-L: sheepdog@lists.wpkg.org
 S: Odd Fixes
 F: block/sheepdog.c
 
-- 
2.26.2



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 2/2] block: deprecate the sheepdog block driver
  2020-09-22 16:16 [PATCH v2 0/2] block: deprecate the sheepdog driver Daniel P. Berrangé
  2020-09-22 16:16 ` [PATCH v2 1/2] block: drop moderated sheepdog mailing list from MAINTAINERS file Daniel P. Berrangé
@ 2020-09-22 16:16 ` Daniel P. Berrangé
  2020-09-22 17:32   ` Thomas Huth
                     ` (3 more replies)
  2020-09-22 17:09 ` [PATCH v2 0/2] block: deprecate the sheepdog driver Neal Gompa
  2020-09-22 21:10 ` no-reply
  3 siblings, 4 replies; 15+ messages in thread
From: Daniel P. Berrangé @ 2020-09-22 16:16 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	Markus Armbruster, Max Reitz, Daniel P. Berrangé,
	Liu Yuan

This thread from a little over a year ago:

  http://lists.wpkg.org/pipermail/sheepdog/2019-March/thread.html

states that sheepdog is no longer actively developed. The only mentioned
users are some companies who are said to have it for legacy reasons with
plans to replace it by Ceph. There is talk about cutting out existing
features to turn it into a simple demo of how to write a distributed
block service. There is no evidence of anyone working on that idea:

  https://github.com/sheepdog/sheepdog/commits/master

No real commits to git since Jan 2018, and before then just some minor
technical debt cleanup..

There is essentially no activity on the mailing list aside from
patches to QEMU that get CC'd due to our MAINTAINERS entry.

Fedora packages for sheepdog failed to build from upstream source
because of the more strict linker that no longer merges duplicate
global symbols. Fedora patches it to add the missing "extern"
annotations and presumably other distros do to, but upstream source
remains broken.

There is only basic compile testing, no functional testing of the
driver.

Since there are no build pre-requisites the sheepdog driver is currently
enabled unconditionally. This would result in configure issuing a
deprecation warning by default for all users. Thus the configure default
is changed to disable it, requiring users to pass --enable-sheepdog to
build the driver.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 block/sheepdog.c           | 15 +++++++++++++++
 configure                  |  5 +++--
 docs/system/deprecated.rst |  9 +++++++++
 3 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/block/sheepdog.c b/block/sheepdog.c
index cbbebc1aaf..7f68bd6a1a 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -242,6 +242,17 @@ typedef struct SheepdogInode {
  */
 #define FNV1A_64_INIT ((uint64_t)0xcbf29ce484222325ULL)
 
+static void deprecation_warning(void)
+{
+    static bool warned = false;
+
+    if (!warned) {
+        warn_report("the sheepdog block driver is deprecated and will be "
+                    "removed in a future release");
+        warned = true;
+    }
+}
+
 /*
  * 64 bit Fowler/Noll/Vo FNV-1a hash code
  */
@@ -1548,6 +1559,8 @@ static int sd_open(BlockDriverState *bs, QDict *options, int flags,
     char *buf = NULL;
     QemuOpts *opts;
 
+    deprecation_warning();
+
     s->bs = bs;
     s->aio_context = bdrv_get_aio_context(bs);
 
@@ -2007,6 +2020,8 @@ static int sd_co_create(BlockdevCreateOptions *options, Error **errp)
 
     assert(options->driver == BLOCKDEV_DRIVER_SHEEPDOG);
 
+    deprecation_warning();
+
     s = g_new0(BDRVSheepdogState, 1);
 
     /* Steal SocketAddress from QAPI, set NULL to prevent double free */
diff --git a/configure b/configure
index 7564479008..c6af83f2e6 100755
--- a/configure
+++ b/configure
@@ -533,7 +533,7 @@ vdi="yes"
 vvfat="yes"
 qed="yes"
 parallels="yes"
-sheepdog="yes"
+sheepdog="no"
 libxml2=""
 debug_mutex="no"
 libpmem=""
@@ -1941,7 +1941,7 @@ disabled with --disable-FEATURE, default is enabled if available:
   vvfat           vvfat image format support
   qed             qed image format support
   parallels       parallels image format support
-  sheepdog        sheepdog block driver support
+  sheepdog        sheepdog block driver support (deprecated)
   crypto-afalg    Linux AF_ALG crypto backend driver
   capstone        capstone disassembler support
   debug-mutex     mutex debugging support
@@ -7350,6 +7350,7 @@ if test "$parallels" = "yes" ; then
   echo "CONFIG_PARALLELS=y" >> $config_host_mak
 fi
 if test "$sheepdog" = "yes" ; then
+  add_to deprecated_features "sheepdog"
   echo "CONFIG_SHEEPDOG=y" >> $config_host_mak
 fi
 if test "$pty_h" = "yes" ; then
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 0cb8b01424..49b9f4b02e 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -405,6 +405,15 @@ The above, converted to the current supported format::
 
   json:{"file.driver":"rbd", "file.pool":"rbd", "file.image":"name"}
 
+``sheepdog`` driver (since 5.2.0)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``sheepdog`` block device driver is deprecated. The corresponding upstream
+server project is no longer actively maintained. Users are recommended to switch
+to an alternative distributed block device driver such as RBD. The
+``qemu-img convert`` command can be used to liberate existing data by moving
+it out of sheepdog volumes into an alternative storage backend.
+
 linux-user mode CPUs
 --------------------
 
-- 
2.26.2



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/2] block: deprecate the sheepdog driver
  2020-09-22 16:16 [PATCH v2 0/2] block: deprecate the sheepdog driver Daniel P. Berrangé
  2020-09-22 16:16 ` [PATCH v2 1/2] block: drop moderated sheepdog mailing list from MAINTAINERS file Daniel P. Berrangé
  2020-09-22 16:16 ` [PATCH v2 2/2] block: deprecate the sheepdog block driver Daniel P. Berrangé
@ 2020-09-22 17:09 ` Neal Gompa
  2020-09-22 17:42   ` Daniel P. Berrangé
  2020-09-22 21:10 ` no-reply
  3 siblings, 1 reply; 15+ messages in thread
From: Neal Gompa @ 2020-09-22 17:09 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	QEMU Developers, Max Reitz, Liu Yuan

On Tue, Sep 22, 2020 at 12:16 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> 2 years back I proposed dropping the sheepdog mailing list from the
> MAINTAINERS file, but somehow the patch never got picked up:
>
>   https://lists.gnu.org/archive/html/qemu-block/2018-03/msg01048.html
>
> So here I am with the same patch again.
>
> This time I go further and deprecate the sheepdog driver entirely.
> See the rationale in the second patch commit message.
>
> Daniel P. Berrangé (2):
>   block: drop moderated sheepdog mailing list from MAINTAINERS file
>   block: deprecate the sheepdog block driver
>
>  MAINTAINERS                |  1 -
>  block/sheepdog.c           | 15 +++++++++++++++
>  configure                  |  5 +++--
>  docs/system/deprecated.rst |  9 +++++++++
>  4 files changed, 27 insertions(+), 3 deletions(-)
>
> --
> 2.26.2
>
>

I don't know of anyone shipping this other than Fedora, and I
certainly don't use it there.

Upstream looks like it's unmaintained now, with no commits in over two
years: https://github.com/sheepdog/sheepdog/commits/master

Can we also get a corresponding change to eliminate this from libvirt?

Reviewed-by: Neal Gompa <ngompa13@gmail.com>


-- 
真実はいつも一つ!/ Always, there's only one truth!


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 1/2] block: drop moderated sheepdog mailing list from MAINTAINERS file
  2020-09-22 16:16 ` [PATCH v2 1/2] block: drop moderated sheepdog mailing list from MAINTAINERS file Daniel P. Berrangé
@ 2020-09-22 17:27   ` Thomas Huth
  2020-09-22 17:46   ` Vladimir Sementsov-Ogievskiy
  1 sibling, 0 replies; 15+ messages in thread
From: Thomas Huth @ 2020-09-22 17:27 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Kevin Wolf, qemu-block, libvir-list, Markus Armbruster,
	Max Reitz, Liu Yuan, Philippe Mathieu-Daudé

On 22/09/2020 18.16, Daniel P. Berrangé wrote:
> The sheepdog mailing list is setup to stop and queue messages from
> non-subscribers, pending moderator approval. Unfortunately it seems
> that the moderation queue is not actively dealt with. Even when messages
> are approved, the sender is never added to the whitelist, so every
> future mail from the same sender continues to get stopped for moderation.
> 
> MAINTAINERS entries should be responsive and not unneccessarily block
> mails from QEMU contributors, so drop the sheepdog mailing list.
> 
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  MAINTAINERS | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 3d17cad19a..8e8a4fb0a8 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2852,7 +2852,6 @@ F: block/rbd.c
>  Sheepdog
>  M: Liu Yuan <namei.unix@gmail.com>
>  L: qemu-block@nongnu.org
> -L: sheepdog@lists.wpkg.org
>  S: Odd Fixes
>  F: block/sheepdog.c

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 2/2] block: deprecate the sheepdog block driver
  2020-09-22 16:16 ` [PATCH v2 2/2] block: deprecate the sheepdog block driver Daniel P. Berrangé
@ 2020-09-22 17:32   ` Thomas Huth
  2020-09-22 17:53   ` Vladimir Sementsov-Ogievskiy
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 15+ messages in thread
From: Thomas Huth @ 2020-09-22 17:32 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Kevin Wolf, sheepdog, qemu-block, libvir-list, Markus Armbruster,
	Max Reitz, Liu Yuan

On 22/09/2020 18.16, Daniel P. Berrangé wrote:
> This thread from a little over a year ago:
> 
>   http://lists.wpkg.org/pipermail/sheepdog/2019-March/thread.html
> 
> states that sheepdog is no longer actively developed. The only mentioned
> users are some companies who are said to have it for legacy reasons with
> plans to replace it by Ceph. There is talk about cutting out existing
> features to turn it into a simple demo of how to write a distributed
> block service. There is no evidence of anyone working on that idea:
> 
>   https://github.com/sheepdog/sheepdog/commits/master
> 
> No real commits to git since Jan 2018, and before then just some minor
> technical debt cleanup..
> 
> There is essentially no activity on the mailing list aside from
> patches to QEMU that get CC'd due to our MAINTAINERS entry.
> 
> Fedora packages for sheepdog failed to build from upstream source
> because of the more strict linker that no longer merges duplicate
> global symbols. Fedora patches it to add the missing "extern"
> annotations and presumably other distros do to, but upstream source
> remains broken.
> 
> There is only basic compile testing, no functional testing of the
> driver.
> 
> Since there are no build pre-requisites the sheepdog driver is currently
> enabled unconditionally. This would result in configure issuing a
> deprecation warning by default for all users. Thus the configure default
> is changed to disable it, requiring users to pass --enable-sheepdog to
> build the driver.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  block/sheepdog.c           | 15 +++++++++++++++
>  configure                  |  5 +++--
>  docs/system/deprecated.rst |  9 +++++++++
>  3 files changed, 27 insertions(+), 2 deletions(-)

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/2] block: deprecate the sheepdog driver
  2020-09-22 17:09 ` [PATCH v2 0/2] block: deprecate the sheepdog driver Neal Gompa
@ 2020-09-22 17:42   ` Daniel P. Berrangé
  2020-09-22 18:11     ` Neal Gompa
  2020-09-23  8:24     ` Peter Krempa
  0 siblings, 2 replies; 15+ messages in thread
From: Daniel P. Berrangé @ 2020-09-22 17:42 UTC (permalink / raw)
  To: Neal Gompa
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	QEMU Developers, Max Reitz, Liu Yuan

On Tue, Sep 22, 2020 at 01:09:06PM -0400, Neal Gompa wrote:
> On Tue, Sep 22, 2020 at 12:16 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > 2 years back I proposed dropping the sheepdog mailing list from the
> > MAINTAINERS file, but somehow the patch never got picked up:
> >
> >   https://lists.gnu.org/archive/html/qemu-block/2018-03/msg01048.html
> >
> > So here I am with the same patch again.
> >
> > This time I go further and deprecate the sheepdog driver entirely.
> > See the rationale in the second patch commit message.
> >
> > Daniel P. Berrangé (2):
> >   block: drop moderated sheepdog mailing list from MAINTAINERS file
> >   block: deprecate the sheepdog block driver
> >
> >  MAINTAINERS                |  1 -
> >  block/sheepdog.c           | 15 +++++++++++++++
> >  configure                  |  5 +++--
> >  docs/system/deprecated.rst |  9 +++++++++
> >  4 files changed, 27 insertions(+), 3 deletions(-)
> >
> > --
> > 2.26.2
> >
> >
> 
> I don't know of anyone shipping this other than Fedora, and I
> certainly don't use it there.
> 
> Upstream looks like it's unmaintained now, with no commits in over two
> years: https://github.com/sheepdog/sheepdog/commits/master
> 
> Can we also get a corresponding change to eliminate this from libvirt?

This is only deprecation in QEMU, the feature still exists and is
intended to be as fully functional as in previous releases.

Assuming QEMU actually deletes the feature at end of the deprecation
cycle, then libvirt would look at removing its own support.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 1/2] block: drop moderated sheepdog mailing list from MAINTAINERS file
  2020-09-22 16:16 ` [PATCH v2 1/2] block: drop moderated sheepdog mailing list from MAINTAINERS file Daniel P. Berrangé
  2020-09-22 17:27   ` Thomas Huth
@ 2020-09-22 17:46   ` Vladimir Sementsov-Ogievskiy
  1 sibling, 0 replies; 15+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2020-09-22 17:46 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	Markus Armbruster, Max Reitz, Liu Yuan,
	Philippe Mathieu-Daudé

22.09.2020 19:16, Daniel P. Berrangé wrote:
> The sheepdog mailing list is setup to stop and queue messages from
> non-subscribers, pending moderator approval. Unfortunately it seems
> that the moderation queue is not actively dealt with. Even when messages
> are approved, the sender is never added to the whitelist, so every
> future mail from the same sender continues to get stopped for moderation.
> 
> MAINTAINERS entries should be responsive and not unneccessarily block
> mails from QEMU contributors, so drop the sheepdog mailing list.
> 
> Reviewed-by: Philippe Mathieu-Daudé<philmd@redhat.com>
> Signed-off-by: Daniel P. Berrangé<berrange@redhat.com>

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

-- 
Best regards,
Vladimir


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 2/2] block: deprecate the sheepdog block driver
  2020-09-22 16:16 ` [PATCH v2 2/2] block: deprecate the sheepdog block driver Daniel P. Berrangé
  2020-09-22 17:32   ` Thomas Huth
@ 2020-09-22 17:53   ` Vladimir Sementsov-Ogievskiy
  2020-09-23 10:25   ` Philippe Mathieu-Daudé
  2020-09-23 13:50   ` Markus Armbruster
  3 siblings, 0 replies; 15+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2020-09-22 17:53 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	Markus Armbruster, Max Reitz, Liu Yuan

22.09.2020 19:16, Daniel P. Berrangé wrote:
> This thread from a little over a year ago:
> 
>    http://lists.wpkg.org/pipermail/sheepdog/2019-March/thread.html
> 
> states that sheepdog is no longer actively developed. The only mentioned
> users are some companies who are said to have it for legacy reasons with
> plans to replace it by Ceph. There is talk about cutting out existing
> features to turn it into a simple demo of how to write a distributed
> block service. There is no evidence of anyone working on that idea:
> 
>    https://github.com/sheepdog/sheepdog/commits/master
> 
> No real commits to git since Jan 2018, and before then just some minor
> technical debt cleanup..
> 
> There is essentially no activity on the mailing list aside from
> patches to QEMU that get CC'd due to our MAINTAINERS entry.
> 
> Fedora packages for sheepdog failed to build from upstream source
> because of the more strict linker that no longer merges duplicate
> global symbols. Fedora patches it to add the missing "extern"
> annotations and presumably other distros do to, but upstream source
> remains broken.
> 
> There is only basic compile testing, no functional testing of the
> driver.
> 
> Since there are no build pre-requisites the sheepdog driver is currently
> enabled unconditionally. This would result in configure issuing a
> deprecation warning by default for all users. Thus the configure default
> is changed to disable it, requiring users to pass --enable-sheepdog to
> build the driver.
> 
> Signed-off-by: Daniel P. Berrangé<berrange@redhat.com>

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

-- 
Best regards,
Vladimir


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/2] block: deprecate the sheepdog driver
  2020-09-22 17:42   ` Daniel P. Berrangé
@ 2020-09-22 18:11     ` Neal Gompa
  2020-09-23  4:52       ` Vladimir Sementsov-Ogievskiy
  2020-09-23  8:24     ` Peter Krempa
  1 sibling, 1 reply; 15+ messages in thread
From: Neal Gompa @ 2020-09-22 18:11 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	QEMU Developers, Max Reitz, Liu Yuan

On Tue, Sep 22, 2020 at 1:43 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> On Tue, Sep 22, 2020 at 01:09:06PM -0400, Neal Gompa wrote:
> > On Tue, Sep 22, 2020 at 12:16 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
> > >
> > > 2 years back I proposed dropping the sheepdog mailing list from the
> > > MAINTAINERS file, but somehow the patch never got picked up:
> > >
> > >   https://lists.gnu.org/archive/html/qemu-block/2018-03/msg01048.html
> > >
> > > So here I am with the same patch again.
> > >
> > > This time I go further and deprecate the sheepdog driver entirely.
> > > See the rationale in the second patch commit message.
> > >
> > > Daniel P. Berrangé (2):
> > >   block: drop moderated sheepdog mailing list from MAINTAINERS file
> > >   block: deprecate the sheepdog block driver
> > >
> > >  MAINTAINERS                |  1 -
> > >  block/sheepdog.c           | 15 +++++++++++++++
> > >  configure                  |  5 +++--
> > >  docs/system/deprecated.rst |  9 +++++++++
> > >  4 files changed, 27 insertions(+), 3 deletions(-)
> > >
> > > --
> > > 2.26.2
> > >
> > >
> >
> > I don't know of anyone shipping this other than Fedora, and I
> > certainly don't use it there.
> >
> > Upstream looks like it's unmaintained now, with no commits in over two
> > years: https://github.com/sheepdog/sheepdog/commits/master
> >
> > Can we also get a corresponding change to eliminate this from libvirt?
>
> This is only deprecation in QEMU, the feature still exists and is
> intended to be as fully functional as in previous releases.
>
> Assuming QEMU actually deletes the feature at end of the deprecation
> cycle, then libvirt would look at removing its own support.
>

Does that stop us from deprecating it in libvirt though?

-- 
真実はいつも一つ!/ Always, there's only one truth!


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/2] block: deprecate the sheepdog driver
  2020-09-22 16:16 [PATCH v2 0/2] block: deprecate the sheepdog driver Daniel P. Berrangé
                   ` (2 preceding siblings ...)
  2020-09-22 17:09 ` [PATCH v2 0/2] block: deprecate the sheepdog driver Neal Gompa
@ 2020-09-22 21:10 ` no-reply
  3 siblings, 0 replies; 15+ messages in thread
From: no-reply @ 2020-09-22 21:10 UTC (permalink / raw)
  To: berrange
  Cc: kwolf, thuth, sheepdog, qemu-block, libvir-list, qemu-devel,
	mreitz, namei.unix

Patchew URL: https://patchew.org/QEMU/20200922161611.2049616-1-berrange@redhat.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20200922161611.2049616-1-berrange@redhat.com
Subject: [PATCH v2 0/2] block: deprecate the sheepdog driver

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Switched to a new branch 'test'
2c11635 block: deprecate the sheepdog block driver
aa3d54c block: drop moderated sheepdog mailing list from MAINTAINERS file

=== OUTPUT BEGIN ===
1/2 Checking commit aa3d54cfa28f (block: drop moderated sheepdog mailing list from MAINTAINERS file)
2/2 Checking commit 2c1163558579 (block: deprecate the sheepdog block driver)
ERROR: do not initialise statics to 0 or NULL
#54: FILE: block/sheepdog.c:247:
+    static bool warned = false;

total: 1 errors, 0 warnings, 71 lines checked

Patch 2/2 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20200922161611.2049616-1-berrange@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/2] block: deprecate the sheepdog driver
  2020-09-22 18:11     ` Neal Gompa
@ 2020-09-23  4:52       ` Vladimir Sementsov-Ogievskiy
  0 siblings, 0 replies; 15+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2020-09-23  4:52 UTC (permalink / raw)
  To: Neal Gompa, Daniel P. Berrangé
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	QEMU Developers, Max Reitz, Liu Yuan

22.09.2020 21:11, Neal Gompa wrote:
> On Tue, Sep 22, 2020 at 1:43 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
>>
>> On Tue, Sep 22, 2020 at 01:09:06PM -0400, Neal Gompa wrote:
>>> On Tue, Sep 22, 2020 at 12:16 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
>>>>
>>>> 2 years back I proposed dropping the sheepdog mailing list from the
>>>> MAINTAINERS file, but somehow the patch never got picked up:
>>>>
>>>>    https://lists.gnu.org/archive/html/qemu-block/2018-03/msg01048.html
>>>>
>>>> So here I am with the same patch again.
>>>>
>>>> This time I go further and deprecate the sheepdog driver entirely.
>>>> See the rationale in the second patch commit message.
>>>>
>>>> Daniel P. Berrangé (2):
>>>>    block: drop moderated sheepdog mailing list from MAINTAINERS file
>>>>    block: deprecate the sheepdog block driver
>>>>
>>>>   MAINTAINERS                |  1 -
>>>>   block/sheepdog.c           | 15 +++++++++++++++
>>>>   configure                  |  5 +++--
>>>>   docs/system/deprecated.rst |  9 +++++++++
>>>>   4 files changed, 27 insertions(+), 3 deletions(-)
>>>>
>>>> --
>>>> 2.26.2
>>>>
>>>>
>>>
>>> I don't know of anyone shipping this other than Fedora, and I
>>> certainly don't use it there.
>>>
>>> Upstream looks like it's unmaintained now, with no commits in over two
>>> years: https://github.com/sheepdog/sheepdog/commits/master
>>>
>>> Can we also get a corresponding change to eliminate this from libvirt?
>>
>> This is only deprecation in QEMU, the feature still exists and is
>> intended to be as fully functional as in previous releases.
>>
>> Assuming QEMU actually deletes the feature at end of the deprecation
>> cycle, then libvirt would look at removing its own support.
>>
> 
> Does that stop us from deprecating it in libvirt though?
> 

I think not. Libvirt is not intended to support all Qemu features and
I'm sure it doesn't. Amd it can safely deprecate features even if they
are not-deprecated in Qemu.

The only possible conflict is when Qemu wants to deprecate something
that Libvirt wants to continue support for (or even can't live without).

-- 
Best regards,
Vladimir


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/2] block: deprecate the sheepdog driver
  2020-09-22 17:42   ` Daniel P. Berrangé
  2020-09-22 18:11     ` Neal Gompa
@ 2020-09-23  8:24     ` Peter Krempa
  1 sibling, 0 replies; 15+ messages in thread
From: Peter Krempa @ 2020-09-23  8:24 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	Neal Gompa, QEMU Developers, Max Reitz, Liu Yuan

On Tue, Sep 22, 2020 at 18:42:52 +0100, Daniel Berrange wrote:
> On Tue, Sep 22, 2020 at 01:09:06PM -0400, Neal Gompa wrote:
> > On Tue, Sep 22, 2020 at 12:16 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
> > >
> > > 2 years back I proposed dropping the sheepdog mailing list from the
> > > MAINTAINERS file, but somehow the patch never got picked up:
> > >
> > >   https://lists.gnu.org/archive/html/qemu-block/2018-03/msg01048.html
> > >
> > > So here I am with the same patch again.
> > >
> > > This time I go further and deprecate the sheepdog driver entirely.
> > > See the rationale in the second patch commit message.
> > >
> > > Daniel P. Berrangé (2):
> > >   block: drop moderated sheepdog mailing list from MAINTAINERS file
> > >   block: deprecate the sheepdog block driver
> > >
> > >  MAINTAINERS                |  1 -
> > >  block/sheepdog.c           | 15 +++++++++++++++
> > >  configure                  |  5 +++--
> > >  docs/system/deprecated.rst |  9 +++++++++
> > >  4 files changed, 27 insertions(+), 3 deletions(-)
> > >
> > > --
> > > 2.26.2
> > >
> > >
> > 
> > I don't know of anyone shipping this other than Fedora, and I
> > certainly don't use it there.
> > 
> > Upstream looks like it's unmaintained now, with no commits in over two
> > years: https://github.com/sheepdog/sheepdog/commits/master
> > 
> > Can we also get a corresponding change to eliminate this from libvirt?
> 
> This is only deprecation in QEMU, the feature still exists and is
> intended to be as fully functional as in previous releases.
> 
> Assuming QEMU actually deletes the feature at end of the deprecation
> cycle, then libvirt would look at removing its own support.

There are two sheepdog-related bits in libvirt which are IMO completely
separate:

1) the blockdev backend handling for the 'sheepdog' protocol driver

 This is the one connected to qemu's deprecation, but until there is a
 qemu version where sheepdog wasn't deprecated/removed supported by
 libvirt we can't really do much about it.

 On the other hand it's just a few generators of arguments for
 -drive/-blockdev so the burden is very low.

2) the sheepdog storage driver

 This one is completely separate from qemu and we can decide to
 deprecate/delete it at our own schedule as it will not influence the
 ability to start VMs.

 The last non-housekeeping commit in that driver seems to be dated:
 Thu Jun 18 16:20:42 2015

 Similarly the burden of keeping this around is low, but I would not bat
 an eye if we remove it right away even.



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 2/2] block: deprecate the sheepdog block driver
  2020-09-22 16:16 ` [PATCH v2 2/2] block: deprecate the sheepdog block driver Daniel P. Berrangé
  2020-09-22 17:32   ` Thomas Huth
  2020-09-22 17:53   ` Vladimir Sementsov-Ogievskiy
@ 2020-09-23 10:25   ` Philippe Mathieu-Daudé
  2020-09-23 13:50   ` Markus Armbruster
  3 siblings, 0 replies; 15+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-09-23 10:25 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	Markus Armbruster, Max Reitz, Liu Yuan

On 9/22/20 6:16 PM, Daniel P. Berrangé wrote:
> This thread from a little over a year ago:
> 
>   http://lists.wpkg.org/pipermail/sheepdog/2019-March/thread.html
> 
> states that sheepdog is no longer actively developed. The only mentioned
> users are some companies who are said to have it for legacy reasons with
> plans to replace it by Ceph. There is talk about cutting out existing
> features to turn it into a simple demo of how to write a distributed
> block service. There is no evidence of anyone working on that idea:
> 
>   https://github.com/sheepdog/sheepdog/commits/master
> 
> No real commits to git since Jan 2018, and before then just some minor
> technical debt cleanup..
> 
> There is essentially no activity on the mailing list aside from
> patches to QEMU that get CC'd due to our MAINTAINERS entry.
> 
> Fedora packages for sheepdog failed to build from upstream source
> because of the more strict linker that no longer merges duplicate
> global symbols. Fedora patches it to add the missing "extern"
> annotations and presumably other distros do to, but upstream source
> remains broken.
> 
> There is only basic compile testing, no functional testing of the
> driver.
> 
> Since there are no build pre-requisites the sheepdog driver is currently
> enabled unconditionally. This would result in configure issuing a
> deprecation warning by default for all users. Thus the configure default
> is changed to disable it, requiring users to pass --enable-sheepdog to
> build the driver.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  block/sheepdog.c           | 15 +++++++++++++++
>  configure                  |  5 +++--
>  docs/system/deprecated.rst |  9 +++++++++
>  3 files changed, 27 insertions(+), 2 deletions(-)
> 
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index cbbebc1aaf..7f68bd6a1a 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -242,6 +242,17 @@ typedef struct SheepdogInode {
>   */
>  #define FNV1A_64_INIT ((uint64_t)0xcbf29ce484222325ULL)
>  
> +static void deprecation_warning(void)
> +{
> +    static bool warned = false;

Checkpatch warns there is no need to initialize static bool to false,
otherwise:

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> +
> +    if (!warned) {
> +        warn_report("the sheepdog block driver is deprecated and will be "
> +                    "removed in a future release");
> +        warned = true;
> +    }
> +}
[...]



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 2/2] block: deprecate the sheepdog block driver
  2020-09-22 16:16 ` [PATCH v2 2/2] block: deprecate the sheepdog block driver Daniel P. Berrangé
                     ` (2 preceding siblings ...)
  2020-09-23 10:25   ` Philippe Mathieu-Daudé
@ 2020-09-23 13:50   ` Markus Armbruster
  3 siblings, 0 replies; 15+ messages in thread
From: Markus Armbruster @ 2020-09-23 13:50 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Kevin Wolf, Thomas Huth, sheepdog, qemu-block, libvir-list,
	qemu-devel, Markus Armbruster, Liu Yuan, Max Reitz

Daniel P. Berrangé <berrange@redhat.com> writes:

> This thread from a little over a year ago:
>
>   http://lists.wpkg.org/pipermail/sheepdog/2019-March/thread.html
>
> states that sheepdog is no longer actively developed. The only mentioned
> users are some companies who are said to have it for legacy reasons with
> plans to replace it by Ceph. There is talk about cutting out existing
> features to turn it into a simple demo of how to write a distributed
> block service. There is no evidence of anyone working on that idea:
>
>   https://github.com/sheepdog/sheepdog/commits/master
>
> No real commits to git since Jan 2018, and before then just some minor
> technical debt cleanup..

Drop the extra period.

>
> There is essentially no activity on the mailing list aside from
> patches to QEMU that get CC'd due to our MAINTAINERS entry.
>
> Fedora packages for sheepdog failed to build from upstream source
> because of the more strict linker that no longer merges duplicate
> global symbols. Fedora patches it to add the missing "extern"
> annotations and presumably other distros do to, but upstream source
> remains broken.
>
> There is only basic compile testing, no functional testing of the
> driver.
>
> Since there are no build pre-requisites the sheepdog driver is currently
> enabled unconditionally. This would result in configure issuing a
> deprecation warning by default for all users. Thus the configure default
> is changed to disable it, requiring users to pass --enable-sheepdog to
> build the driver.
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  block/sheepdog.c           | 15 +++++++++++++++
>  configure                  |  5 +++--
>  docs/system/deprecated.rst |  9 +++++++++
>  3 files changed, 27 insertions(+), 2 deletions(-)
>
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index cbbebc1aaf..7f68bd6a1a 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -242,6 +242,17 @@ typedef struct SheepdogInode {
>   */
>  #define FNV1A_64_INIT ((uint64_t)0xcbf29ce484222325ULL)
>  
> +static void deprecation_warning(void)
> +{
> +    static bool warned = false;

Obey checkpatch :)

> +
> +    if (!warned) {
> +        warn_report("the sheepdog block driver is deprecated and will be "
> +                    "removed in a future release");

Similar warnings elsewhere don't say "will be removed".

Some of them are nice enough to advise what to use instead, but that may
not be practical here.

> +        warned = true;
> +    }
> +}
> +
>  /*
>   * 64 bit Fowler/Noll/Vo FNV-1a hash code
>   */
> @@ -1548,6 +1559,8 @@ static int sd_open(BlockDriverState *bs, QDict *options, int flags,
>      char *buf = NULL;
>      QemuOpts *opts;
>  
> +    deprecation_warning();
> +
>      s->bs = bs;
>      s->aio_context = bdrv_get_aio_context(bs);
>  
> @@ -2007,6 +2020,8 @@ static int sd_co_create(BlockdevCreateOptions *options, Error **errp)
>  
>      assert(options->driver == BLOCKDEV_DRIVER_SHEEPDOG);
>  
> +    deprecation_warning();
> +
>      s = g_new0(BDRVSheepdogState, 1);
>  
>      /* Steal SocketAddress from QAPI, set NULL to prevent double free */
> diff --git a/configure b/configure
> index 7564479008..c6af83f2e6 100755
> --- a/configure
> +++ b/configure
> @@ -533,7 +533,7 @@ vdi="yes"
>  vvfat="yes"
>  qed="yes"
>  parallels="yes"
> -sheepdog="yes"
> +sheepdog="no"
>  libxml2=""
>  debug_mutex="no"
>  libpmem=""
> @@ -1941,7 +1941,7 @@ disabled with --disable-FEATURE, default is enabled if available:
>    vvfat           vvfat image format support
>    qed             qed image format support
>    parallels       parallels image format support
> -  sheepdog        sheepdog block driver support
> +  sheepdog        sheepdog block driver support (deprecated)
>    crypto-afalg    Linux AF_ALG crypto backend driver
>    capstone        capstone disassembler support
>    debug-mutex     mutex debugging support
> @@ -7350,6 +7350,7 @@ if test "$parallels" = "yes" ; then
>    echo "CONFIG_PARALLELS=y" >> $config_host_mak
>  fi
>  if test "$sheepdog" = "yes" ; then
> +  add_to deprecated_features "sheepdog"
>    echo "CONFIG_SHEEPDOG=y" >> $config_host_mak
>  fi
>  if test "$pty_h" = "yes" ; then
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index 0cb8b01424..49b9f4b02e 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -405,6 +405,15 @@ The above, converted to the current supported format::
>  
>    json:{"file.driver":"rbd", "file.pool":"rbd", "file.image":"name"}
>  
> +``sheepdog`` driver (since 5.2.0)
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +The ``sheepdog`` block device driver is deprecated. The corresponding upstream
> +server project is no longer actively maintained. Users are recommended to switch
> +to an alternative distributed block device driver such as RBD. The
> +``qemu-img convert`` command can be used to liberate existing data by moving
> +it out of sheepdog volumes into an alternative storage backend.
> +
>  linux-user mode CPUs
>  --------------------

Preferably with my nits addressed:
Reviewed-by: Markus Armbruster <armbru@redhat.com>



^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2020-09-23 13:52 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-22 16:16 [PATCH v2 0/2] block: deprecate the sheepdog driver Daniel P. Berrangé
2020-09-22 16:16 ` [PATCH v2 1/2] block: drop moderated sheepdog mailing list from MAINTAINERS file Daniel P. Berrangé
2020-09-22 17:27   ` Thomas Huth
2020-09-22 17:46   ` Vladimir Sementsov-Ogievskiy
2020-09-22 16:16 ` [PATCH v2 2/2] block: deprecate the sheepdog block driver Daniel P. Berrangé
2020-09-22 17:32   ` Thomas Huth
2020-09-22 17:53   ` Vladimir Sementsov-Ogievskiy
2020-09-23 10:25   ` Philippe Mathieu-Daudé
2020-09-23 13:50   ` Markus Armbruster
2020-09-22 17:09 ` [PATCH v2 0/2] block: deprecate the sheepdog driver Neal Gompa
2020-09-22 17:42   ` Daniel P. Berrangé
2020-09-22 18:11     ` Neal Gompa
2020-09-23  4:52       ` Vladimir Sementsov-Ogievskiy
2020-09-23  8:24     ` Peter Krempa
2020-09-22 21:10 ` no-reply

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.