Re: [Pkg-javascript-devel] Bug#785478: jessie-pu: package node-groove/2.2.6-1

2015-05-16 Thread David Prévot
Hi Felipe,

 Node-groove has a bug that is pretty annoying

AFAICT, the fix is not yet in unstable. Can you please upload a fixed
version to Sid (so it can at least be more widely tested)? I believe the
RT won’t consider a fix in stable for an issue that still affects unstable
and testing.

Regards

David


___
Pkg-javascript-devel mailing list
Pkg-javascript-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-javascript-devel


[Pkg-javascript-devel] Bug#785478: jessie-pu: package node-groove/2.2.6-1

2015-05-16 Thread Felipe Sateler
Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian@packages.debian.org
Usertags: pu

Dear release team,

Node-groove has a bug that is pretty annoying: a missing check in a loop
causes an almost-tight loop to run as long as an encoder object is
attached. More details at the upstream tracker[1]. This is not a
dealbreaker on multicore machines, but it is still annoying and pretty
bad in single-core machines.

We think the smallness of the fix and the greatness of the improvement
makes it good for a stable update. Please find attached the full diff
for the proposed upload.


[1] https://github.com/andrewrk/groovebasin/issues/319

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.0.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff --git a/debian/changelog b/debian/changelog
index 1e510e0..fc1c49f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+node-groove (2.2.6-1+deb8u1) UNRELEASED; urgency=medium
+
+  * Backport patch to fix cpu usage
+
+ -- Felipe Sateler fsate...@debian.org  Fri, 15 May 2015 19:05:19 -0300
+
 node-groove (2.2.6-1) unstable; urgency=low
 
   * Update to upstream 2.2.6
diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 000..fae4302
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,2 @@
+[DEFAULT]
+debian-branch = jessie
diff --git a/debian/patches/0001-fix-emitting-buffer-event-too-often.patch b/debian/patches/0001-fix-emitting-buffer-event-too-often.patch
new file mode 100644
index 000..bbc5cb6
--- /dev/null
+++ b/debian/patches/0001-fix-emitting-buffer-event-too-often.patch
@@ -0,0 +1,62 @@
+From: Andrew Kelley superjo...@gmail.com
+Date: Thu, 14 May 2015 09:28:25 -0700
+Subject: fix emitting 'buffer' event too often
+
+no longer burns the CPU
+---
+ src/gn_encoder.cc | 15 +--
+ src/gn_encoder.h  |  1 +
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/src/gn_encoder.cc b/src/gn_encoder.cc
+index 0791292..474141f 100644
+--- a/src/gn_encoder.cc
 b/src/gn_encoder.cc
+@@ -93,7 +93,10 @@ static void EventThreadEntry(void *arg) {
+ GNEncoder::EventContext *context = reinterpret_castGNEncoder::EventContext *(arg);
+ while (groove_encoder_buffer_peek(context-encoder, 1)  0) {
+ uv_mutex_lock(context-mutex);
+-uv_async_send(context-event_async);
++if (context-emit_buffer_ok) {
++context-emit_buffer_ok = false;
++uv_async_send(context-event_async);
++}
+ uv_cond_wait(context-cond, context-mutex);
+ uv_mutex_unlock(context-mutex);
+ }
+@@ -180,6 +183,7 @@ HandleValue GNEncoder::Create(const Arguments args) {
+ GNEncoder *gn_encoder = node::ObjectWrap::UnwrapGNEncoder(instance);
+ EventContext *context = new EventContext;
+ gn_encoder-event_context = context;
++context-emit_buffer_ok = true;
+ context-event_cb = PersistentFunction::New(LocalFunction::Cast(args[0]));
+ context-encoder = encoder;
+ 
+@@ -372,7 +376,14 @@ HandleValue GNEncoder::GetBuffer(const Arguments args) {
+ GrooveEncoder *encoder = gn_encoder-encoder;
+ 
+ GrooveBuffer *buffer;
+-switch (groove_encoder_buffer_get(encoder, buffer, 0)) {
++int buf_result = groove_encoder_buffer_get(encoder, buffer, 0);
++
++uv_mutex_lock(gn_encoder-event_context-mutex);
++gn_encoder-event_context-emit_buffer_ok = true;
++uv_cond_signal(gn_encoder-event_context-cond);
++uv_mutex_unlock(gn_encoder-event_context-mutex);
++
++switch (buf_result) {
+ case GROOVE_BUFFER_YES: {
+ LocalObject object = Object::New();
+ 
+diff --git a/src/gn_encoder.h b/src/gn_encoder.h
+index 063bf60..958815e 100644
+--- a/src/gn_encoder.h
 b/src/gn_encoder.h
+@@ -19,6 +19,7 @@ class GNEncoder : public node::ObjectWrap {
+ uv_mutex_t mutex;
+ GrooveEncoder *encoder;
+ v8::Persistentv8::Function event_cb;
++bool emit_buffer_ok;
+ };
+ 
+ GrooveEncoder *encoder;
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 000..3040e56
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+0001-fix-emitting-buffer-event-too-often.patch
___
Pkg-javascript-devel mailing list
Pkg-javascript-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-javascript-devel