13c agent oracle.sysman.gcagent.task.TaskFutureImpl$WrappedTask:621

We found have error at A server with a 13c's agent and the number of occurrences is frequent.

we found error informations from  the gcagent_erro.log file.


oracle.sysman.gcagent.task.TaskZombieException: task declared as a zombie
    at oracle.sysman.gcagent.task.TaskFutureImpl$WrappedTask.accountedCall(TaskFutureImpl.java:621)
    at oracle.sysman.gcagent.task.TaskFutureImpl$WrappedTask.call(TaskFutureImpl.java:644)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at oracle.sysman.gcagent.task.TaskFutureImpl.run1(TaskFutureImpl.java:373)
    at oracle.sysman.gcagent.task.TaskFutureImpl.run(TaskFutureImpl.java:330)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at oracle.sysman.gcagent.task.executor.TrackThreadFactory$1.run(TrackThreadFactory.java:54)
    atoracle.sysman.gcagent.util.system.GCAThread$RunnableWrapper.run(GCAThread.java:198)
    at java.lang.Thread.run(Thread.java:745)
2017-02-16 15:30:01,734 [2713889:GC.Executor.124190
(oracle_database:hpaypr1:Response)] ERROR - oracle_database:hpaypr1:Response
oracle.sysman.gcagent.task.TaskZombieException: task declared as a zombie
    at oracle.sysman.gcagent.task.TaskFutureImpl$WrappedTask.accountedCall(TaskFutureImpl.java:621)
    at oracle.sysman.gcagent.task.TaskFutureImpl$WrappedTask.call(TaskFutureImpl.java:644)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at oracle.sysman.gcagent.task.TaskFutureImpl.run1(TaskFutureImpl.java:373)
    at oracle.sysman.gcagent.task.TaskFutureImpl.run(TaskFutureImpl.java:330)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at oracle.sysman.gcagent.task.executor.TrackThreadFactory$1.run(TrackThreadFactory.java:54)
    at oracle.sysman.gcagent.util.system.GCAThread$RunnableWrapper.run(GCAThread.java:198)
    at java.lang.Thread.run(Thread.java:745)

CAUSE:
When an agent task such as collecting metrics is running more than the expected time, the process is marked as Zombie.
This generates an Incident in order to let the Enterprise Manager (EM) Administrator know that a task has generated a zombie process.
The zombie process is a valid mechanism of the agent.
A parameter to eliminate Incident creation for Zombies needs to be added to the $AGENT_INST/sysman/config/emd.properties. 
This parameter was not documented; and a bug was filed.

TECHNICAL IMPACT
1.Zombie processes and Incidents created. 
2.Agent can try to restart
 
RELATED ISSUES (bugs, forums, RFAs)
similar to bug : Bug 22221528 – Zombie process seen during DB Metric collection

SOLUTION:
In order to avoid the Zombie Process Alerts/Incidents, the following parameter can be added to the $AGENT_INST/sysman/config/emd.properties:

_zombieCreateIncident=false 

1. Edit the file emd.properties
2. Add the parameter : _zombieCreateIncident=false
3. emctl stop agent
4. emctl start agent

Other parameter reference:
_canceledThreadWait == > The amount of time before a canceled thread is considered a 'zombie' thread
_zombieSuspensions ==> Whether to indefinitely suspend a zombie task
_zombieThreadPercentThreshold ==> The number of 'zombie' threads (as a percent of the REGULAR thread pool) before a bounce will be started; set to zero to disable auto restarts
Note: Setting these parameters , agent restart due to zombies would reduce/stop and incident  dump shall get created
_zombieCreateIncident==>Whether to create an incident for the zombie abort