JIRA Services Fail due to 'Passed List had more than one value' Error
Symptoms
- The mail queue must be flushed manually. Flushing the queue manually works (from
Administration > Mail Queue
). - LDAP synchronisation fails and cannot complete successfully.
The below may be found within the atlassian-jira.log
:
Exception in thread "JiraQuartzScheduler_QuartzSchedulerThread" java.lang.IllegalArgumentException: Passed List had more than one value.
at org.ofbiz.core.entity.EntityUtil.getOnly(EntityUtil.java:58)
at com.atlassian.scheduler.OfBizJobStore.persistTrigger(OfBizJobStore.java:335)
at com.atlassian.scheduler.OfBizJobStore.triggerFired(OfBizJobStore.java:681)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:307)
...
Cause
There are duplicate Quartz triggers saved in the database which is blocking the service from proceeding.
Resolution
Always back up your data before performing any modifications to the database. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.
- Shutdown JIRA.
Run the following SQL query in the JIRA database to find the duplicate schedule triggers:
select trigger_name, count(*) as cn from qrtz_triggers group by trigger_name having cn>1;
For the duplicate schedule triggers found in the STEP 3, run the following SQL statement to get the duplicated ID's:
select id, trigger_name from qrtz_triggers where trigger_name = <the trigger_name found in STEP 2>;
Delete one of duplicate rows from qrtz_triggers table by ID:
delete from qrtz_triggers where id = <one of duplicate triggers' ids found in STEP 3>;
- Restart JIRA instance.
- Reindex JIRA (Administration -> System -> Indexing).
Please see our Troubleshooting LDAP User Management documentation for further assistance with diagnosing LDAP problems.