Accessing moved issue through original issue key or attempting to move issues in Jira Data Center fails
Platform Notice: Data Center Only - This article only applies to Atlassian apps on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
Problem
When attempting to access a moved issue by its original Issue Key, as well as triggering the Move function on Jira, the following stack trace is displayed on the interface:
Sorry, we had some technical problems during your last operation.
Request assistance
Copy the content below and send it to your JIRA Administrator
Technical details
Log's referral number: ec54d7fe-ed3d-47da-980e-c00af4dda984
Cause
Referer URL: https://yourjirainstance.com/issues/?jql=issuekey%20%3DPROJKEY-865\\
java.lang.ClassFormatError: com/atlassian/jira/issue/MovedIssueKey
java.lang.ClassFormatError: com/atlassian/jira/issue/MovedIssueKey
at com.atlassian.jira.entity.MovedIssueKeyFactory.build(MovedIssueKeyFactory.java:20) [classes/:?]Looking over at the atlassian-jira.log, we can see the following stack trace:
2018-09-04 15:18:33,607 http-nio-8080-exec-661 url:/secure/GHGoToBoard.jspa username:jirauser ERROR [o.a.c.c.C.[.[localhost].[/].[action]] Servlet.service() for servlet [action] in context with path [] threw exception [Filter execution threw an exception] with root cause
java.lang.ClassFormatError: com/atlassian/jira/issue/MovedIssueKey
at com.atlassian.jira.entity.MovedIssueKeyFactory.build(MovedIssueKeyFactory.java:20)
at com.atlassian.jira.entity.MovedIssueKeyFactory.build(MovedIssueKeyFactory.java:12)
at com.atlassian.jira.entity.SelectQueryImpl$ExecutionContextImpl.forEach(SelectQueryImpl.java:231)
at com.atlassian.jira.entity.SelectQueryImpl$ExecutionContextImpl.consumeWith(SelectQueryImpl.java:214)
at com.atlassian.jira.entity.SelectQueryImpl$ExecutionContextImpl.singleValue(SelectQueryImpl.java:191)
at com.atlassian.jira.issue.util.MovedIssueKeyStoreImpl.getMovedIssueId(MovedIssueKeyStoreImpl.java:43)
at com.atlassian.jira.issue.managers.DefaultIssueManager.findMovedIssue(DefaultIssueManager.java:283)
at com.atlassian.jira.issue.managers.DefaultIssueManager$IssueFinder.getIssue(DefaultIssueManager.java:961)
at com.atlassian.jira.issue.managers.DefaultIssueManager.getIssueByKeyIgnoreCase(DefaultIssueManager.java:354)
at com.atlassian.jira.issue.managers.RequestCachingIssueManager.getIssueByKeyIgnoreCase(RequestCachingIssueManager.java:91)
at com.atlassian.jira.jql.util.JqlIssueSupportImpl.getIssue(JqlIssueSupportImpl.java:70)
at com.atlassian.jira.jql.util.JqlIssueSupportImpl.getIssue(JqlIssueSupportImpl.java:62)
at com.atlassian.jira.jql.query.IssueIdClauseQueryFactory.createQueryForKey(IssueIdClauseQueryFactory.java:163)
at com.atlassian.jira.jql.query.IssueIdClauseQueryFactory.createQueryForNotEmptyValue(IssueIdClauseQueryFactory.java:156)
at com.atlassian.jira.jql.query.IssueIdClauseQueryFactory.createQuery(IssueIdClauseQueryFactory.java:148)
at com.atlassian.jira.jql.query.IssueIdClauseQueryFactory.createPositiveEqualsQuery(IssueIdClauseQueryFactory.java:134)
at com.atlassian.jira.jql.query.IssueIdClauseQueryFactory.handleEquals(IssueIdClauseQueryFactory.java:129)
at com.atlassian.jira.jql.query.IssueIdClauseQueryFactory.getQuery(IssueIdClauseQueryFactory.java:68)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:97)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:25)
at com.atlassian.query.clause.TerminalClauseImpl.accept(TerminalClauseImpl.java:143)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:71)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:25)
at com.atlassian.query.clause.OrClause.accept(OrClause.java:28)
at com.atlassian.jira.jql.query.QueryVisitor.createQuery(QueryVisitor.java:51)
at com.atlassian.jira.jql.query.DefaultLuceneQueryBuilder.createLuceneQuery(DefaultLuceneQueryBuilder.java:29)
at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:231)
at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.searchOverrideSecurity(LuceneSearchProvider.java:135)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at com.sun.proxy.$Proxy493.searchOverrideSecurity(Unknown Source)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:136)
at com.sun.proxy.$Proxy493.searchOverrideSecurity(Unknown Source)
at com.atlassian.greenhopper.service.issue.IssueDataServiceImpl.findImpl(IssueDataServiceImpl.java:150)
at com.atlassian.greenhopper.service.issue.IssueDataServiceImpl.findOverrideSecurity(IssueDataServiceImpl.java:78)
at com.atlassian.greenhopper.customfield.epiclink.EpicLinkResolver.findEpicIssueIdsByEpicKeyOrLabel(EpicLinkResolver.java:103)
at com.atlassian.greenhopper.customfield.epiclink.EpicLinkResolver.getQuery(EpicLinkResolver.java:58)
at com.atlassian.greenhopper.customfield.epiclink.EpicLinkEqualityQueryFactory.getQuery(EpicLinkEqualityQueryFactory.java:200)
at com.atlassian.greenhopper.customfield.epiclink.EpicLinkEqualityQueryFactory.handleIn(EpicLinkEqualityQueryFactory.java:146)
at com.atlassian.greenhopper.customfield.epiclink.EpicLinkEqualityQueryFactory.createResult(EpicLinkEqualityQueryFactory.java:102)
at com.atlassian.greenhopper.customfield.epiclink.EpicLinkEqualityQueryFactory.createQueryForMultipleValues(EpicLinkEqualityQueryFactory.java:60)
at com.atlassian.greenhopper.customfield.searcher.GhGenericClauseQueryFactory.getQuery(GhGenericClauseQueryFactory.java:68)
at com.atlassian.greenhopper.customfield.epiclink.EpicLinkClauseQueryFactory.getQuery(EpicLinkClauseQueryFactory.java:31)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:97)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:25)
at com.atlassian.query.clause.TerminalClauseImpl.accept(TerminalClauseImpl.java:143)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:71)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:25)
at com.atlassian.query.clause.OrClause.accept(OrClause.java:28)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:55)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:25)
at com.atlassian.query.clause.AndClause.accept(AndClause.java:28)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:55)
at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:25)
at com.atlassian.query.clause.AndClause.accept(AndClause.java:28)
at com.atlassian.jira.jql.query.QueryVisitor.createQuery(QueryVisitor.java:51)
at com.atlassian.jira.jql.query.DefaultLuceneQueryBuilder.createLuceneQuery(DefaultLuceneQueryBuilder.java:29)
at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.createLuceneQuery(LuceneSearchProvider.java:272)
at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.getHitCount(LuceneSearchProvider.java:177)
at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.searchCountOverrideSecurity(LuceneSearchProvider.java:121)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at com.sun.proxy.$Proxy493.searchCountOverrideSecurity(Unknown Source)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:136)
at com.sun.proxy.$Proxy493.searchCountOverrideSecurity(Unknown Source)
at com.atlassian.greenhopper.service.issue.SearchServiceImpl.searchCountOverrideSecurity(SearchServiceImpl.java:166)
at com.atlassian.greenhopper.service.rapid.RapidViewLocationServiceImpl.doesSprintMatchQuery(RapidViewLocationServiceImpl.java:366)
at com.atlassian.greenhopper.service.rapid.RapidViewLocationServiceImpl.getRapidViewsForSprint(RapidViewLocationServiceImpl.java:231)
at com.atlassian.greenhopper.web.rapid.RapidViewLocationResolverFactory$SprintRapidViewLocationResolver.getRapidViewsForObject(RapidViewLocationResolverFactory.java:203)
at com.atlassian.greenhopper.web.rapid.RapidViewLocationResolverFactory$SprintRapidViewLocationResolver.getRapidViewsForObject(RapidViewLocationResolverFactory.java:185)
at com.atlassian.greenhopper.web.rapid.BoardDispatchAction._doGoToBoard(BoardDispatchAction.java:116)
at com.atlassian.greenhopper.web.rapid.BoardDispatchAction.doGoToBoard(BoardDispatchAction.java:61)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at webwork.util.InjectionUtils$DefaultInjectionImpl.invoke(InjectionUtils.java:70)
at webwork.util.InjectionUtils.invoke(InjectionUtils.java:56)
... 2 filtered
at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:63)
... 7 filtered
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
... 52 filtered
at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:56)
... 4 filtered
at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:62)
... 7 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 47 filtered
at com.atlassian.ams.shipit.servlet.filter.AbstractThreadFilter.runWithChangedThreadName(AbstractThreadFilter.java:71)
at com.atlassian.ams.shipit.servlet.filter.AbstractThreadFilter.doFilter(AbstractThreadFilter.java:53)
at com.atlassian.ams.shipit.servlet.filter.AbstractThreadFilter.doFilter(AbstractThreadFilter.java:37)
... 14 filtered
at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:80)
... 1 filtered
at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:78)
... 36 filtered
at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
... 5 filtered
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:181)
at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:134)
at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:87)
at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:64)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:174)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:130)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:121)
... 4 filtered
at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
... 8 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 4 filtered
at com.atlassian.ams.shipit.servlet.filter.AbstractThreadFilter.runWithChangedThreadName(AbstractThreadFilter.java:71)
at com.atlassian.ams.shipit.servlet.filter.AbstractThreadFilter.doFilter(AbstractThreadFilter.java:53)
at com.atlassian.ams.shipit.servlet.filter.AbstractThreadFilter.doFilter(AbstractThreadFilter.java:37)
... 3 filtered
at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
... 29 filtered
at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
... 28 filtered
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748Diagnosis
Environment
JIRA Data Center
In this case, we've also noticed the following, which might be one of the reasons for the cache failure:
2018-08-29 11:11:21,958 ehcache-replicator-19 ERROR [c.a.j.c.cache.ehcache.BlockingParallelCacheReplicator] Exception on replication of remove. Exception creating connection to: 100.99.16.212; nested exception is:
java.net.SocketException: Too many open files. Cache: com.atlassian.jira.crowd.embedded.ofbiz.OfBizUserDao.userAttributesCache Peer: com.atlassian.jira.crowd.embedded.ofbiz.OfBizUserDao.userAttributesCache
java.rmi.ConnectIOException: Exception creating connection to: 100.99.16.212; nested exception is:
java.net.SocketException: Too many open files
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:631)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:130)
at net.sf.ehcache.distribution.RMICachePeer_Stub.remove(Unknown Source)
at com.atlassian.jira.cluster.cache.ehcache.BlockingParallelCacheReplicator.lambda$replicateRemovalNotification$1(BlockingParallelCacheReplicator.java:163)
at com.atlassian.jira.cluster.cache.ehcache.BlockingParallelCacheReplicator.lambda$null$3(BlockingParallelCacheReplicator.java:203)
at com.atlassian.jira.cluster.cache.ehcache.ClassLoaderSwitchingRunnable.run(ClassLoaderSwitchingRunnable.java:18)
at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1626)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketException: Too many open filesCause
This is caused by a cache replication failure. The node is not replicating the cache correctly, thus causing the issues to not be found and the move operation to fail.
Solution
Workaround / Resolution
Restart the node with the broken replication. This will ensure that the cache will be replicated from a healthy node and the operations will be fixed.
Was this helpful?