Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-7589

Mail queue hangs when trackback ping hangs

    XMLWordPrintable

Details

    Description

      JIRA analyses entered text for URLs, and tries to retrieve their contents to check whether the linked-to page accepts trackback pings. If retrieving the page contents takes a long time or hangs, the JIRA mail queue is effectively frozen. There doesn't appear to be a timeout in the code (or httpclient) to abort hung connections.

      When JIRA is in such a state, clicking the 'flush queue' link returns immediately with no effect. Taking a thread dump ('kill -3') shows the stuck thread:

      "JiraQuartzScheduler_Worker-1" prio=1 tid=0x20000000814b0740 nid=0x4d4a runnable [2000000082842000..2000000082843d00]
      at java.net.SocketInputStream.socketRead0(Native Method)
      at java.net.SocketInputStream.read(SocketInputStream.java:129)
      at java.io.FilterInputStream.read(FilterInputStream.java:111)
      at java.io.PushbackInputStream.read(PushbackInputStream.java:161)
      at java.io.FilterInputStream.read(FilterInputStream.java:111)
      at org.apache.commons.httpclient.ContentLengthInputStream.read(ContentLengthInputStream.java:167)
      at java.io.FilterInputStream.read(FilterInputStream.java:111)
      at org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:142)
      at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:408)
      at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:450)
      at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)

      • locked <0x2000000069f889c8> (a java.io.InputStreamReader)
        at java.io.InputStreamReader.read(InputStreamReader.java:167)
        at java.io.BufferedReader.fill(BufferedReader.java:136)
        at java.io.BufferedReader.readLine(BufferedReader.java:299)
      • locked <0x2000000069f889c8> (a java.io.InputStreamReader)
        at java.io.BufferedReader.readLine(BufferedReader.java:362)
        at com.atlassian.trackback.TrackbackUtils.getUrlContent(TrackbackUtils.java:164)
        at com.atlassian.trackback.DefaultTrackbackFinder.findPingUrls(DefaultTrackbackFinder.java:49)
        at com.atlassian.trackback.DefaultTrackbackFinder.findPingUrls(DefaultTrackbackFinder.java:23)
        at com.atlassian.trackback.DefaultTrackbackHelper.pingTrackbacksInContent(DefaultTrackbackHelper.java:27)
        at com.atlassian.jira.trackback.TrackbackMailQueueItem.send(TrackbackMailQueueItem.java:61)
        at com.atlassian.mail.queue.MailQueueImpl.sendBuffer(MailQueueImpl.java:55)
        at com.atlassian.jira.service.services.mail.MailQueueService.run(MailQueueService.java:23)
        at com.atlassian.jira.service.JiraServiceContainer.run(JiraServiceContainer.java:59)
        at com.atlassian.jira.service.ServiceRunner.execute(ServiceRunner.java:50)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:191)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:516)

      Attachments

        Issue Links

          Activity

            People

              keith@atlassian.com Keith Brophy
              7ee5c68a815f Jeff Turner
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: