[ https://issues.apache.org/jira/browse/ZOOKEEPER-482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Reed updated ZOOKEEPER-482: ------------------------------------ +1 thanks chris! > 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.