Page 1 of 1

Treat 499 articles as missing?

Posted: January 28th, 2013, 1:43 am
by ratchet
Is there a way to get sabnzbd to treat "499 Remote server unavailable." articles as missing and skip them immediately?

I had the following problem today (version 0.7.9, with usenext):
A download was stuck at 99% and just would not finish downloading. The three last files were nearly done (49.7 of 50Mb) but nothing happened and the logs didn't show any actual errors and no missing articles up to that point.

So I checked with wireshark and the server was responding with "499 Remote server unavailable." for the last 3 articles.
Sabnzbd was waiting the set timeout amount and then retried the articles multiple times.
After that I just set timeout and retry to very low values and it finished within a minute and a few articles missing.

I had the same problem a few times before but never really bothered to check up on it.
Is there anything else I can do about that, because this solution isn't really ideal since the server sometimes responds pretty slowly so I don't really want to keep the timeout that low?

Re: Treat 499 articles as missing?

Posted: January 28th, 2013, 2:22 pm
by sander
Do you run SABnzbd from source? If so, the file sabnzbd/downloader.py contains this piece of code:

Code: Select all

                    elif code in ('411', '423', '430'):
                        done = True
                        nw.lines = None

                        logging.info('Thread %s@%s:%s: Article ' + \
                                        '%s missing (error=%s)',
                                        nw.thrdnum, nw.server.host,
                                        nw.server.port, article.article, code)
So do you mean want to put 499 in that if-line? What happens when you do?

FWIW: RFC 977 / 3977 says this about 499:

Code: Select all

   The first digit of the response broadly indicates the success,
   failure, or progress of the previous command:

      1xx - Informative message
      2xx - Command completed OK
      3xx - Command OK so far; send the rest of it
      4xx - Command was syntactically correct but failed for some reason
      5xx - Command unknown, unsupported, unavailable, or syntax error

   The next digit in the code indicates the function response category:

      x0x - Connection, setup, and miscellaneous messages
      x1x - Newsgroup selection
      x2x - Article selection
      x3x - Distribution functions
      x4x - Posting
      x8x - Reserved for authentication and privacy extensions
      x9x - Reserved for private use (non-standard extensions)
So it's a non-standard answerd. What does your server give as reason after the 499?

Re: Treat 499 articles as missing?

Posted: January 28th, 2013, 3:08 pm
by shypike
ratchet wrote:Is there a way to get sabnzbd to treat "499 Remote server unavailable." articles as missing and skip them immediately?
That would not be a correct action.
499 does not mean that an article is unavailable, but that the server has a (temporary) problem.
One "solution" would be to set that server as "optional", which means that it will be
ignored for 10 minutes after it causes to many timeouts or errors.

Re: Treat 499 articles as missing?

Posted: January 29th, 2013, 10:07 am
by ratchet
sander wrote:Do you run SABnzbd from source? If so, the file sabnzbd/downloader.py contains this piece of code:
I will try that, thank you very much.
sander wrote: So it's a non-standard answerd. What does your server give as reason after the 499?
Nothing else, just the "499 Remote server unavailable." But this only happens with a few articles, all others still work.
shypike wrote: That would not be a correct action.
499 does not mean that an article is unavailable, but that the server has a (temporary) problem.
One "solution" would be to set that server as "optional", which means that it will be
ignored for 10 minutes after it causes to many timeouts or errors.
Unfortunately usenext is pretty crappy and these problems never go away. So it just seems easier to ignore the articles right away instead of retrying them since they never become available anyway. But this only happens with a few articles, most still work without problems, I probably should have made that more clear in my post.
Also I don't have any other servers I could use.