|
One comment: on our system, we started getting these exceptions once we installed the Jira charting plugin. And we got them on a very regular basis (as soon as we "resolved" an issue, for example).
Removing the charting plugin made these exceptions disappear. Hope this helps, David Fischer Our JIRA instance is having this problem every single day.
We made intensive use of JIRA. 1500 new issues are reported every day. The plungins we have installed are JIRA Toolkit plugin and JIRA Charting Plugin. But this problem is ocurring even before the installation of these plugins. Sorry about the poor English. Thiago,
1500 issues is quite a lot of new issues every day. For 3.6 we are hopefully going to be introducing an indexing queue. This will stop the error in 99% of the cases. Though can I ask how your issues are being created? Are they being imported from another system or do you have users actually creating 1500? We may be able to attach a patch that increases the time out for you. This may alleviate your problem. Cheers, Hi Nick,
These issues are created by about 800 users. By the way, right now, the reindex process didn´t work anymore. Please, I´m waiting for your answer very soon. Thanks, hi,
Attached is an patch that will cause optimisations to happen half as often (every 300 issues), and uses a 30 second timeout. Please let me know if this helps your problems. Cheers, Replaces the com/atlassian/jira/issue/index/DefaultIndexManager.class file from an exapnded web app.
Nick, it didn´t work fine.
2006-03-06 14:41:01,033 ERROR [jira.issue.index.DefaultIndexManager] Giving up reindex - waited 30 seconds com.atlassian.jira.issue.index.IndexException at com.atlassian.jira.issue.index.DefaultIndexManager.getIndexLock(DefaultIndexManager.java:473) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:249) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:221) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndex(DefaultIndexManager.java:401) at com.atlassian.jira.workflow.function.issue.IssueReindexFunction.execute(IssueReindexFunction.java:28) at com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:1179) at com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1434) at com.opensymphony.workflow.AbstractWorkflow.doAction(AbstractWorkflow.java:533) at com.atlassian.jira.workflow.SimpleWorkflowManager.doWorkflowAction(SimpleWorkflowManager.java:228) at com.atlassian.jira.workflow.WorkflowTransitionUtilImpl.progress(WorkflowTransitionUtilImpl.java:259) at com.atlassian.jira.web.action.issue.CommentAssignIssue.doExecute(CommentAssignIssue.java:188) at webwork.action.ActionSupport.execute(ActionSupport.java:153) Is there an way to work without index optimizations until version 3.6 get ready? It is now possible via the jira-application.properties file to set Lucene's max timeout for a file lock.
While the fix implemented will alleviate this problem. Further work should be carried out to diagnose the underlying problem.
The problem occurs on databases that do not implement multi-versioning of records: MS SQL, DB2 and Sybase. In this case if a row is modified, all reads of that row will be blocked until the transaction that modified the row is committed.
The problem surfaces when there are 2 concurrent updates in the system, and at least one of them is in the middle of a transaction. If one thread obtains the index lock and then e.g. tries to retrieve comments for an issue, the db's query optimizer might decide that it is more efficient to do a table scan to retrieve the record. If another thread did an insert into the table, the select will block until the transaction that inserted a record is committed. If the comment was added as part of the workflow transition, the transaction will not be committed until the issue is reindexed. However the reindex will not happen as the thread that it in the middle of the workflow operation (transaction) will try to obtain the indexing lock. This causes a deadlock between the database and JIRA's indexing lock. It if often difficult to predict the behaviour of the query optimizer which causes the table scan and hence a deadlock. The solution is to perform indexing outside the database transaction. Anton,
This fix is really a good new for us! Version 3.6.3 is under development. Is there a release date for this version? Thanks, Hi Thiago,
We are hoping to release JIRA 3.6.3 some time next week. I believe Nick has provided the patch for you in your open support case. Thanks, Anton,
No patch was attached to my open support issue. Yesterday our indexes got corrupted. I think that the problem reported by this issue is the reason. Cheers, Thiago,
The patach was the one I attached in the 4/7. Have you applied these? cheers, > the attached patch, is recommended for 3.6.3, what if we use 3.6.2?
The DefauiltIndexManager class being patched here is identical in 3.6.2 and 3.6.3, so the patch should work fine in either. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anton