Share with Feature not working

Issue #111 closed
SEI Novus created an issue

Greetings,

Like many others that reported sharing issues - we have a large team that manages many different Scheduled Issues. We recently upgraded to the 3.x.x series of releases - now all of our Scheduled tasks are private.

We attempted to use the share feature but that was not enough to make the Issue visible. How can we diagnose this issue?

First, the users in question are Project Admins. They are able to see the Access page, they can create new Schedule tasks. But they can't seen any task that was shared with them.

Regards,

Brian

Comments (26)

  1. SEI Novus reporter

    What makes this worse is only Jira Admins can see any tickets that are created. Any given creator cannot see their previously created tickets.

  2. Li Wang

    As a JIRA system admin I'm able to see all of the scheduled issues across all projects, but non-JIRA system admins don't see any scheduled issues.

    We've tried to 1. Set a recurring ticket specifically to be shared with "everyone" - single issue sharing 2. added user groups in the Scheduler Access Manager under the JIRA admin systems page. 3. added the single user accounts under single users permission in the scheduler access manager page. 4. enabled project lead, administrators, developers, participant, seniors and users Role for permission under the scheduler access manager 5. logged into test user accounts (non-JIRA System admin) on JIRA, still don't see any scheduled issues under DATAINT project.

    We thought it could be just affecting existing tickets and not new one, so I created a new scheduled task and went through the same process above. However, regular users still can't see the scheduled ticket.

  3. jost

    Hi,

    The Scheduler has a two-level security system. First is "The Scheduler Access Manager" - that allows you to choose which users are able to see TSP pages and can perform any feature provided by the plugin.

    The second level is the private issues. This means that only creator (or JIRA ADMINS) can to manage their own Scheduled Jobs (in other case the action column are disabled). What more, the scheduled issues created by another user should be visible for all other users on current project.

    This is a view of the user who does not have permission to SEE. The SI is displayed but actions column are disabled: example.png

    Please notice that The Scheduler page on project is displays only SI used on this project.

    Therefore if the scheduled Jobs are not presented in TSP page on project, it's a bug. Could you please check if atlassian-jira.log contains any errors?

  4. SEI Novus reporter

    First - let me confirm that my understanding matches yours. The issue we are seeing is that creators cannot see their own Scheduled Jobs AND when an Admin/creator (because some Admins are Job creators) share attempts to share a job with the team it is still not visible.

    Re: atlassian-jira.log the only scheduler related messages we have found are like the sample below:

    2016-01-12 01:00:03,441 TSP-Quartz-Clustered-Worker-1452513833235_Worker-2 ERROR user     [tt.thescheduler.core.TheSchedulerServiceImpl] Got error while firing scheduled issue.
    2016-01-15 01:00:05,378 TSP-Quartz-Clustered-Worker-1452762627288_Worker-3 ERROR queue     [tt.thescheduler.core.TheSchedulerServiceImpl] ERROR: The reporter specified is not a user.
    2016-01-15 01:00:05,425 TSP-Quartz-Clustered-Worker-1452762627288_Worker-3 ERROR queue     [tt.thescheduler.core.TheSchedulerServiceImpl] Got error while firing scheduled issue.
    2016-01-15 01:00:07,578 TSP-Quartz-Clustered-Worker-1452762627288_Worker-1 ERROR user     [tt.thescheduler.core.TheSchedulerServiceImpl] Got error while firing scheduled issue.
    2016-01-15 01:00:07,735 TSP-Quartz-Clustered-Worker-1452762627288_Worker-1 ERROR user     [tt.thescheduler.core.TheSchedulerServiceImpl] Got error while firing scheduled issue.
    
  5. jost

    Thank you for this information. Would you write us which TSP version you are using? I will check out this and keep you updated.

  6. SEI Novus reporter

    @ostrowskij we are using 3.2.13

    This is causing major backlogs of work on our end as non-admin users are unable to perform their duties. It is not feasible to have 1/3 of our user base receive Jira-admin access due to this bug...

    What else can be done to expidite this?

  7. jost

    Hello Novus Support,

    I saw that all those errors are preceded by error of JJupin Plugin:

    2016-01-18 01:00:01,089 TSP-Quartz-Clustered-Worker-1452762627288_Worker-1 ERROR squnibi     [atlassian.jira.workflow.DefaultOSWorkflowConfigurator] Could not load class 'com.keplerrominfo.jira.plugins.jjupin.sil.SilPostFunction'
    java.lang.ClassNotFoundException: com.keplerrominfo.jira.plugins.jjupin.sil.SilPostFunction
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
        at com.atlassian.core.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:88)
        at com.atlassian.core.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:50)
        at com.atlassian.jira.workflow.DefaultOSWorkflowConfigurator$LegacyJiraTypeResolver.loadObject(DefaultOSWorkflowConfigurator.java:150)
        at com.opensymphony.workflow.TypeResolver.getFunction(TypeResolver.java:87)
        at com.atlassian.jira.workflow.DefaultOSWorkflowConfigurator$JiraTypeResolverDelegator.getFunction(DefaultOSWorkflowConfigurator.java:114)
        at com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:1041)
        at com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1446)
        at com.opensymphony.workflow.AbstractWorkflow.initialize(AbstractWorkflow.java:615)
        at com.atlassian.jira.workflow.OSWorkflowManager.createIssue(OSWorkflowManager.java:886)
        at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:658)
        at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssueObject(DefaultIssueManager.java:776)
        at pl.com.tt.thescheduler.core.TheSchedulerServiceImpl.fireScheduledIssue(TheSchedulerServiceImpl.java:574)
        at pl.com.tt.thescheduler.core.TheSchedulerServiceImpl.fireScheduledIssue(TheSchedulerServiceImpl.java:674)
        at pl.com.tt.thescheduler.quartz.CreateIssueJob.execute(CreateIssueJob.java:55)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:223)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
    2016-01-18 01:00:01,090 TSP-Quartz-Clustered-Worker-1452762627288_Worker-1 ERROR squnibi     [tt.thescheduler.core.TheSchedulerServiceImpl] Got error while firing scheduled issue.
    com.atlassian.jira.exception.CreateException: com.atlassian.jira.workflow.WorkflowException: Could not load FunctionProvider class
        at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:671)
        at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssueObject(DefaultIssueManager.java:776)
        at pl.com.tt.thescheduler.core.TheSchedulerServiceImpl.fireScheduledIssue(TheSchedulerServiceImpl.java:574)
        at pl.com.tt.thescheduler.core.TheSchedulerServiceImpl.fireScheduledIssue(TheSchedulerServiceImpl.java:674)
        at pl.com.tt.thescheduler.quartz.CreateIssueJob.execute(CreateIssueJob.java:55)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:223)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
    Caused by: com.atlassian.jira.workflow.WorkflowException: Could not load FunctionProvider class
        at com.atlassian.jira.workflow.OSWorkflowManager.createIssue(OSWorkflowManager.java:916)
        at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:658)
        ... 6 more
    

    What more, the error of TSP is caused by some WorkflowException. Workflows are closely linked to the operation of JJupin plugin. Thus disabling JJupin plugin could resolve Your problems. Please try to disable it and let us know about the results.

  8. SEI Novus reporter

    After resolving the JJupin issue a new error surfaced. The user viewing this page has a single SJ shared with them:

    2016-01-13 18:14:43,815 http-bio-8080-exec-79 ERROR username 1094x178602x1 ao088i 38.88.237.42,192.168.122.47 /rest/thescheduler/1.0/scheduled-issue [common.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service: null
    java.lang.NullPointerException
        at pl.com.tt.thescheduler.model.ScheduledIssue.isAdminOrCreator(ScheduledIssue.java:712)
        at pl.com.tt.thescheduler.model.ScheduledIssue.hasActionsPermission(ScheduledIssue.java:659)
        at pl.com.tt.thescheduler.utils.TheSchedulerBeanHelper.getScheduledIssueBean(TheSchedulerBeanHelper.java:121)
        at pl.com.tt.thescheduler.utils.TheSchedulerBeanHelper.getScheduledIssueBeans(TheSchedulerBeanHelper.java:191)
        at pl.com.tt.thescheduler.rest.ScheduledIssueResource.getScheduledIssuesForProject(ScheduledIssueResource.java:103)  <+2> (DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)  <+19> (DispatchProviderHelper.java:234) (DispatchProviderHelper.java:100) (DefaultMethodInvocation.java:61) (ExpandInterceptor.java:38) (DefaultMethodInvocation.java:61) (DispatchProviderHelper.java:132) (DispatchProviderHelper.java:230) (ResourceJavaMethodDispatcher.java:75) (HttpMethodRule.java:288) (RightHandPathRule.java:147) (ResourceClassRule.java:108) (RightHandPathRule.java:147) (RootResourceClassesRule.java:84) (WebApplicationImpl.java:1469) (WebApplicationImpl.java:1400) (WebApplicationImpl.java:1349) (WebApplicationImpl.java:1339) (WebComponent.java:416) (ServletContainer.java:537)
        at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:178)  <+1> (ServletContainer.java:795)
        at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:73)  <+16> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70) (RestServletUtilsUpdaterFilter.java:26) (RestServletUtilsUpdaterFilter.java:40) (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70) (ContextFilter.java:25) (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
        at com.atlassian.mywork.client.filter.ServingRequestsFilter.doFilter(ServingRequestsFilter.java:37)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
        at com.atlassian.plugins.cors.CorsFilter.doFilter(CorsFilter.java:65)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
        at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFixupFilter.doFilter(PrettyUrlsSiteMeshFixupFilter.java:36)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
        at com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:60)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
        at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:92)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
        at com.atlassian.prettyurls.filter.PrettyUrlsMatcherFilter.doFilter(PrettyUrlsMatcherFilter.java:56)  <+21> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (AccessLogFilter.java:105) (AccessLogFilter.java:89) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (XsrfTokenAdditionRequestFilter.java:54) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (PageBuilderFilter.java:90) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (CommittedResponseHtmlErrorRecoveryFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:70)
        at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  <+22> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (SecurityFilter.java:239) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (TrustedApplicationsFilter.java:100) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (BaseLoginFilter.java:172) (JiraLoginFilter.java:70) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:70) (OAuthFilter.java:79) (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
        at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:40)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
        at com.atlassian.bonfire.web.filters.BonfireP3PFilter.doFilter(BonfireP3PFilter.java:42)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
        at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  <+9> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (AbstractJohnsonFilter.java:71) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208)
        at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
        at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
        at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)  <+5> (UrlRewriteFilter.java:394) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:70)
        at com.atlassian.analytics.client.filter.JiraAnalyticsFilter.doFilter(JiraAnalyticsFilter.java:40)
        at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
        at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  <+45> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (ChainedFilterStepRunner.java:87) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (AbstractCachingFilter.java:33) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (AbstractEncodingFilter.java:41) (AbstractHttpFilter.java:31) (PathMatchingEncodingFilter.java:45) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (JiraStartupChecklistFilter.java:79) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (MultipartBoundaryCheckFilter.java:41) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (ChainedFilterStepRunner.java:87) (JiraFirstFilter.java:61) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (GzipFilter.java:115) (GzipFilter.java:92) (JiraGzipFilter.java:56) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (StandardWrapperValve.java:220) (StandardContextValve.java:122) (AuthenticatorBase.java:501) (StandardHostValve.java:171) (ErrorReportValve.java:103) (StandardEngineValve.java:116) (AccessLogValve.java:950) (CoyoteAdapter.java:408) (AbstractHttp11Processor.java:1070) (AbstractProtocol.java:611) (JIoEndpoint.java:316)
        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:745)
    
  9. jost

    Hi Novus Support,

    I'm not able to reproduce this error but i can fix on base this error. We will add the fixes to the new version. Please see that on marketplace there are only updates of newest version (for Jira 7.0+). The versions supporting JIRA 6.3 - 6.4 will be published in our Bitbucket. We will inform you when a new package for your version will be available.

    The problem arises from the lack of some data while checking access. For some reason, the plugin can not obtain information about the creator of the SI or user who is trying to do something with it.

    From your comment I conclude that this problem affects one or several Scheduled Jobs. If so, please just edit those Scheduled Jobs without doing any changes. This will update the Scheduled Jobs and will add missing field if this will be needed.

    Please let us know whether you will able to resolve this issue this way.

  10. SEI Novus reporter

    Greetings,

    I attempted your edit fix detailed above and it also did not resolve the issue. I believe the Creator field is corrupted after our upgrade. Here are the steps I followed

    1. Find issue that cannot be shared
    2. Click Edit
    3. Change creator field from 'name only' to autocomplete name **
    4. Click through wizard to save
    5. Attempt to reEdit same issue
    6. Find that creator field is still 'name only'

    ** Name only is a valid user's name but is not the same as a valid Jira name with an Avatar. I suspect that the id behind the scenes does exist but does not match the name.

    I will apply your fix to see if that resolves this issue.

  11. jost

    Hi,

    We going to release new version this week. But, due to fact that i'm not able to reproduce this bug i can send you package contains fix for you. This will make sure us that my fix works. Would you to try this package?

  12. SEI Novus reporter

    We are reviewing this patch internally to see if it fixes these issues.

    It failed to install the first attempt but did the second time.

  13. SEI Novus reporter

    This patch was successful and we are able to see SJs again. Will this fix go out as a future update to the 3.x series?

  14. Maciej Kucharek

    Hi @novus-itsup,

    thanks for verifying the patch. We will include the fixes in the upcoming 3.2.15 version that will be released shortly.

    Best regards

  15. SEI Novus reporter

    Greetings,

    Has the 3.2.15 been released? For some reason this fix was cut from 3.2.15 even though 3.2.16 is in the marketplace.

    We would like to use 3.2.16 due to the bulk share feature - can you apply this patch to 3.2.16?

  16. SEI Novus reporter

    Greetings,

    We did not because it says released 2015-03-09. We will try this release and follow up with you

  17. jost

    Hello,

    This is new package, the release date is 2015-03-09 to licensing. We decided to hide few earlier packages, however we cannot just remove old package from marketplace. We had to set an earlier date to provide support for previous version.

    So please to install this version. It should resolve your problem. We would appreciate your feedback on the working of the plugin.

  18. Log in to comment