Henry Robinson commented on ZOOKEEPER-482:

Great stuff Chris, thanks very much!

> ignore sigpipe in testRetry to avoid silent immediate failure
> -------------------------------------------------------------
>                 Key: ZOOKEEPER-482
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-482
>             Project: Zookeeper
>          Issue Type: Bug
>          Components: c client, tests
>    Affects Versions: 3.2.0
>            Reporter: Chris Darroch
>            Assignee: Chris Darroch
>            Priority: Minor
>             Fix For: 3.2.1, 3.3.0
>         Attachments: ZOOKEEPER-482.patch
> The testRetry test silently exits for me periodically, especially, it seems, 
> on newer hardware.  It also spits out from log messages clutter the test 
> output.
> The silent exits turn out to be because SIGPIPE is sometimes delivered during 
> the sleep(1) in createClient(), the second time createClient() is called.  
> Since SIGPIPE is not being ignored and there is no signal handler, the 
> process exists immediately.  This leaves the test suite in a broken state, 
> with the test ZooKeeper process still running because "zkServer.sh stop" is 
> not run by tearDown().  You have to manually kill the ZK server and retry the 
> tests; sometimes they succeed and sometimes they don't.
> I described SIGPIPE handling a little in ZOOKEEPER-320.  The appropriate 
> thing, I think, is for the client application to ignore or handle SIGPIPE.  
> In this case, that falls to the test processes.  The attached patch fixes the 
> issue for me with testRetry.
> The patch uses sigaction() to ignore SIGPIPE in TestClientRetry.cc and, for 
> good measure (although I never saw it actually fail for me), TestClient.cc, 
> since that file also uses sleep() extensively.
> I also removed a couple of unused functions and a macro definition from 
> TestClientRetry.cc, just to simply matters, and turned off log output, which 
> makes the testRetry output much, much cleaner (otherwise you get a lot of log 
> output spamming into the nice clean cppunit output :-).

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Reply via email to