[ 
https://issues.apache.org/jira/browse/HBASE-14772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

stack updated HBASE-14772:
--------------------------
    Attachment: zombie.patch

Here's a start. It changes our tagging of surefire forked processes so instead 
of hbase.test, its now is hbase.build.id=BUILD_ID where BUILD_ID is whatever we 
pass maven on command line with -Dbuild.id. Was planning to pass in the jenkins 
BUILD_ID. If no BUILD_ID, it goes with the maven build time as ISO8601.

The zombie detector script in this patch takes recording of processes 
outstanding that have the current build id attached. It then waits 30 seconds. 
It then checks for presence of these process ids ... if they are still around 
(before, any surefire with the hbase.test flag would do... whether ours or not, 
whether it was a new test or not). So, more discerning.

> Improve zombie detector; be more discerning
> -------------------------------------------
>
>                 Key: HBASE-14772
>                 URL: https://issues.apache.org/jira/browse/HBASE-14772
>             Project: HBase
>          Issue Type: Sub-task
>          Components: test
>            Reporter: stack
>         Attachments: zombie.patch
>
>
> Currently, any surefire process with the hbase flag is a potential zombie. 
> Our zombie check currently takes a reading and if it finds candidate zombies, 
> it waits 30 seconds and then does another reading. If a concurrent build 
> going on, in both cases the zombie detector will come up positive though the 
> adjacent test run may be making progress; i.e. the cast of surefire processes 
> may have changed between readings but our detector just sees presence of  
> hbase surefire processes.
> Here is example:
> {code}
> Suspicious java process found - waiting 30s to see if there are just slow to 
> stop
> There appear to be 5 zombie tests, they should have been killed by surefire 
> but survived
> 12823 surefirebooter852180186418035480.jar -enableassertions -Dhbase.test 
> -Xmx2800m -XX:MaxPermSize=256m -Djava.security.egd=file:/dev/./urandom 
> -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true
> 7653 surefirebooter8579074445899448699.jar -enableassertions -Dhbase.test 
> -Xmx2800m -XX:MaxPermSize=256m -Djava.security.egd=file:/dev/./urandom 
> -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true
> 12614 surefirebooter136529596936417090.jar -enableassertions -Dhbase.test 
> -Xmx2800m -XX:MaxPermSize=256m -Djava.security.egd=file:/dev/./urandom 
> -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true
> 7836 surefirebooter3217047564606450448.jar -enableassertions -Dhbase.test 
> -Xmx2800m -XX:MaxPermSize=256m -Djava.security.egd=file:/dev/./urandom 
> -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true
> 13566 surefirebooter2084039411151963494.jar -enableassertions -Dhbase.test 
> -Xmx2800m -XX:MaxPermSize=256m -Djava.security.egd=file:/dev/./urandom 
> -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true
> ************ BEGIN zombies jstack extract
> ************ END  zombies jstack extract
> {code}
> 5 is the number of forked processes we allow when doing medium and large 
> tests.... so an adjacent build will always show as '5 zombies'.
> Need to add discerning if list of processes changes between readings.
> Can I also add a tag per build run that all forked processes pick up so I can 
> look at the current builds progeny only?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to