Browse Source

coroutine: Remove problematic diagnostic from api-3 test

The api-3 testcase devotes most of its available stack space to a test
buffer, leaving only a small amount (COROUTINE_MIN_STKSZ) for the actual
stack usage of the coroutine.

It turns out that the ccan/tap diag() function can - depending on compiler
version and flags, and on whether diagnostics are enabled - exceed that
limited stack space.  That leads to a stack overrun, and in turn corruption
of the parent routine's stack, generating unpredictable and hard to debug
SEGVs.

At present, this bug seems to be tripped by clang-3.8 when diagnostic
messages are printed.

This removes the troublesome diag() call.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
David Gibson 9 years ago
parent
commit
ace6131ed7
1 changed files with 0 additions and 2 deletions
  1. 0 2
      ccan/coroutine/test/api-3.c

+ 0 - 2
ccan/coroutine/test/api-3.c

@@ -27,8 +27,6 @@ static void clobber(void *p)
 		buf[i] = random() & 0xff;
 		buf[i] = random() & 0xff;
 	}
 	}
 
 
-	diag("Wrote random to buffer\n");
-
 	s->total = 0;
 	s->total = 0;
 	for (i = 0; i < sizeof(buf); i++) {
 	for (i = 0; i < sizeof(buf); i++) {
 		s->total += buf[i];
 		s->total += buf[i];