On Sun, 30 Nov 2014 17:36:04 +0100, Alessandro Ghedini wrote: > On dom, nov 30, 2014 at 03:06:55 +0100, Tobias Frost wrote: > > Am Sonntag, den 30.11.2014, 00:21 -0800 schrieb Tom Lee:
> > > Also, I feel like the "serious" severity is overstating the issue
> > > given that 0.11.0-4 builds fine in buildd/sbuild. Alessandro pointed
> > > out the periodic rebuilds would have revealed this issue otherwise.
> >
> > >
> > > If there are no objections I'd like to propose we adjust the severity
> > > of this bug to "normal" & leave the fix for this particular bug until
> > > after the Jessie freeze.
> >
> > Here I can reprodcue the FTBFS locally with pbuilder 0.215+nmu3, so
> > I disagree. It maybe has not been detected *yet*?
>
> What does this "yet" even mean? Except inside pbuilder, hiredis builds fine
> [1].
> The fact that it fails *only* inside pbuilder (and the fact that hiredis is
> not
> the only package in this situation) suggests that this is indeed a pbuilder
> bug.
> I really don't see how this is release critical in any way on the part of the
> hiredis package.
While I tend to agree in general, here's an additional data point:
I rebuilt 0.11.0-4 in my sid amd64 cowbuilder chroot, which has
USENETWORK=yes (due to #753944) but firewalls off everything except
localhost during build. And in this environment I see a test failure:
make check
make[2]: Entering directory '/tmp/buildd/hiredis-0.11.0'
echo \
"daemonize yes\n" \
"pidfile /tmp/hiredis-test-redis.pid\n" \
"port 56379\n" \
"bind 127.0.0.1\n" \
"unixsocket /tmp/hiredis-test-redis.sock" \
| redis-server -
./hiredis-test -h 127.0.0.1 -p 56379 -s /tmp/hiredis-test-redis.sock || \
( kill `cat /tmp/hiredis-test-redis.pid` && false )
#01 Format command without interpolation: PASSED
#02 Format command with %s string interpolation: PASSED
#03 Format command with %s and an empty string: PASSED
#04 Format command with an empty string in between proper interpolations: PASSED
#05 Format command with %b string interpolation: PASSED
#06 Format command with %b and an empty string: PASSED
#07 Format command with literal %: PASSED
#08 Format command with printf-delegation (int): PASSED
#09 Format command with printf-delegation (char): PASSED
#10 Format command with printf-delegation (short): PASSED
#11 Format command with printf-delegation (long): PASSED
#12 Format command with printf-delegation (long long): PASSED
#13 Format command with printf-delegation (unsigned int): PASSED
#14 Format command with printf-delegation (unsigned char): PASSED
#15 Format command with printf-delegation (unsigned short): PASSED
#16 Format command with printf-delegation (unsigned long): PASSED
#17 Format command with printf-delegation (unsigned long long): PASSED
#18 Format command with printf-delegation (float): PASSED
#19 Format command with printf-delegation (double): PASSED
#20 Format command with invalid printf format: PASSED
#21 Format command by passing argc/argv without lengths: PASSED
#22 Format command by passing argc/argv with lengths: PASSED
#23 Error handling in reply parser: PASSED
#24 Memory cleanup in reply parser: PASSED
#25 Set error on nested multi bulks with depth > 7: PASSED
#26 Works with NULL functions for reply: PASSED
#27 Works when a single newline (\r\n) covers two calls to feed: PASSED
#28 Don't reset state after protocol error: PASSED
#29 Don't do empty allocation for empty multi bulk: PASSED
#30 Returns error when host cannot be resolved: FAILED
#31 Returns error when the unix socket path doesn't accept connections: PASSED
[..]
which seems to be the same as what Daniel originally reported.
Adding a printf statement to test.c shows:
#30 Returns error when host cannot be resolved: FAILED
ERROR: Temporary failure in name resolution
test.c currently looks for "Name or service not known" or "Can't
resolve: idontexist.local" but not for what I get here ...
Not sure what the best way forward is; adding a test for "Temporary
failure in name resolution" might be an option (and works
unsurprisingly):
#v+
--- a/test.c
+++ b/test.c
@@ -286,7 +286,8 @@
c = redisConnect((char*)"idontexist.local", 6379);
test_cond(c->err == REDIS_ERR_OTHER &&
(strcmp(c->errstr,"Name or service not known") == 0 ||
- strcmp(c->errstr,"Can't resolve: idontexist.local") == 0));
+ strcmp(c->errstr,"Can't resolve: idontexist.local") == 0 ||
+ strcmp(c->errstr,"Temporary failure in name resolution") == 0));
redisFree(c);
/*test("Returns error when the port is not open: ");
#v-
But maybe there are better ways to fix this.
Cheers,
gregor
--
.''`. Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
: :' : Debian GNU/Linux user, admin, and developer - http://www.debian.org/
`. `' Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
`- NP: Spider Murphy Gang: Rock'n Roll Rendevouz
signature.asc
Description: Digital Signature

