[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-482?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12737652#action_12737652
 ] 

Hudson commented on ZOOKEEPER-482:
----------------------------------

Integrated in ZooKeeper-trunk #400 (See 
[http://hudson.zones.apache.org/hudson/job/ZooKeeper-trunk/400/])
    . ignore sigpipe in testRetry to avoid silent immediate failure. (chris via 
mahadev)


> 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