[DRE-maint] Bug#715190: ruby-multi-xml: FTBFS: test failure
Colin Watson
cjwatson at debian.org
Fri Mar 21 13:27:02 UTC 2014
Control: reassign -1 ruby-ox 1.8.9-2
Control: tag -1 patch
Control: affects -1 ruby-multi-xml
On Fri, Mar 21, 2014 at 01:05:52PM +0000, Colin Watson wrote:
> Here's a somewhat smaller reproduction recipe, following a build:
>
> $ ruby1.9.1 -S rspec -f d ./spec/multi_xml_spec.rb -e 'MultiXml Ox parser behaves like a parser .parse a valid XML document'
> Run options: include {:full_description=>/MultiXml\ Ox\ parser\ behaves\ like\ a\ parser\ \.parse\ a\ valid\ XML\ document/}
>
> MultiXml
> Ox parser
> behaves like a parser
> .parse
> a valid XML document
> parses correctly
> with CDATA
> returns the correct CDATA
> with content
> returns the correct content
> with an attribute
> returns the correct attribute
> with multiple attributes
> returns the correct attributes
> with :symbolize_keys => true
> symbolizes keys
> when value is true
> ruby1.9.1: malloc.c:2368: sysmalloc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
> Aborted (core dumped)
>
> (The tests for the other parsers seem to be fine.)
I finally disentangled this. It's fixed upstream in ruby-ox 1.9.2, or
you could backport the small patch as follows:
* Backport cache allocation fix from upstream (closes: #715190).
diff -Nru ruby-ox-1.8.9/debian/patches/001-fix-cache-allocation.patch ruby-ox-1.8.9/debian/patches/001-fix-cache-allocation.patch
--- ruby-ox-1.8.9/debian/patches/001-fix-cache-allocation.patch 1970-01-01 01:00:00.000000000 +0100
+++ ruby-ox-1.8.9/debian/patches/001-fix-cache-allocation.patch 2014-03-21 13:31:06.000000000 +0000
@@ -0,0 +1,47 @@
+Description: Fix cache allocation bug
+Author: Peter Ohler <peter at ohler.com>
+Origin: backport, https://github.com/ohler55/ox/commit/5d6cdcc1f68f5ab0512575df4e6bb5c7b895255d
+Bug-Debian: https://bugs.debian.org/715190
+Forwarded: not-needed
+Last-Update: 2014-03-21
+
+Index: b/ext/ox/cache.c
+===================================================================
+--- a/ext/ox/cache.c
++++ b/ext/ox/cache.c
+@@ -50,7 +50,7 @@
+
+ static char* form_key(const char *s) {
+ size_t len = strlen(s);
+- char *d = ALLOC_N(char, len);
++ char *d = ALLOC_N(char, len + 2);
+
+ *d = (255 <= len) ? 255 : len;
+ memcpy(d + 1, s, len + 1);
+Index: b/ext/ox/cache_test.c
+===================================================================
+--- a/ext/ox/cache_test.c
++++ b/ext/ox/cache_test.c
+@@ -31,6 +31,7 @@
+ #include "cache.h"
+
+ static const char *data[] = {
++#if 1
+ "one",
+ "two",
+ "one",
+@@ -38,6 +39,14 @@
+ "oney",
+ "one",
+ "tw",
++ "onexyzabcdefgh",
++#else
++ "abc",
++ "abcd",
++ "ab",
++ "a",
++ "abcdefghijklmnop",
++#endif
+ 0
+ };
+
diff -Nru ruby-ox-1.8.9/debian/patches/series ruby-ox-1.8.9/debian/patches/series
--- ruby-ox-1.8.9/debian/patches/series 2013-04-15 18:59:50.000000000 +0100
+++ ruby-ox-1.8.9/debian/patches/series 2014-03-21 13:27:32.000000000 +0000
@@ -1 +1,2 @@
000-fix-so-load-path.patch
+001-fix-cache-allocation.patch
Thanks,
--
Colin Watson [cjwatson at debian.org]
More information about the Pkg-ruby-extras-maintainers
mailing list