On 16 August 2017 at 16:01, Sam Ruby <ru...@intertwingly.net> wrote: > On Wed, Aug 16, 2017 at 6:12 AM, sebb <seb...@gmail.com> wrote: >> I think this is caused by the proxy server which sometimes returns an >> error for a valid URL. > > That's not how I read this stack trace.
Doh! I was forgetting that the 400 error comes from the PmB reply... > Mind you, the error makes no sense the way I do read it. > > The message says: > > bad URI(is not URI?): http://spamassassin.apache.org/ > > The cause for this message is that the uri passed to > URI::RFC3986_Parser.split doesn't respond to "to_str". Which is a > round-about way of saying that the uri isn't a String (or more > precisely, doesn't behave like a String in a Duck typing sense). > > That uri is obtained by ASF::Site, and the value is obtained by > parsing contents in svn working directories (i.e., no network access > required - updates are done by cronjobs). And in nearly every run, is > always a string. > > What's particularly puzzling is that I don't even see recursion here, > which would indicate following a redirect or the like. What the > message is clearly saying is that the uri isn't a string. > > And oddly enough, when the uri is included in the error message (under > the covers using to_s instead of to_str), it looks right. Maybe we could capture the error and log the various values explicitly. >> I'm not quite sure why a network access should should be triggered by >> URI.parse(). >> Whilst the code could retry (as for timeout) how can we then >> distinguish bad URIs from a temporary proxy fail? >> Ideally we don't want to retry repeatedly for invalid URIs until the >> depth is exceeded, but I don't see how to distinguish them from the >> proxy errors... >> >> On 16 August 2017 at 08:03, Ping My Box <no-re...@pingmybox.com> wrote: >>> >>> Hi there! >>> The service at whimsy.apache.org (whimsy.apache.org (https)) appears to be >>> down from multiple locations around the world. >>> >>> The exact error is: >>> >>> Error component: response >>> Error code: Internal Server Error or equivalent bad message received: >>> HTTP/1.1 400 site_scan >>> ["/usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/uri/rfc3986_parser.rb:18:in >>> `rescue in split': bad URI(is not URI?): http://spamassassin.apache.org/ >>> (URI::InvalidURIError)", "\tfrom >>> /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/uri/rfc3986_parser.rb:15:in >>> `split'", "\tfrom >>> /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/uri/rfc3986_parser.rb:73:in >>> `parse'", "\tfrom >>> /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/uri/common.rb:231:in >>> `parse'", "\tfrom /x1/srv/whimsy/lib/whimsy/cache.rb:104:in `fetch'", >>> "\tfrom /x1/srv/whimsy/lib/whimsy/cache.rb:124:in `rescue in fetch'", >>> "\tfrom /x1/srv/whimsy/lib/whimsy/cache.rb:101:in `fetch'", "\tfrom >>> /x1/srv/whimsy/lib/whimsy/cache.rb:66:in `get'", "\tfrom site-scan.rb:28:in >>> `parse'", "\tfrom site-scan.rb:184:in `block in <main>'", "\tfrom >>> site-scan.rb:176:in `each'", "\tfrom site-scan.rb:176:in `<main>'"] >>> Debug output: >>> [Wed Aug 16 07:03:40 2017]: Initialising socket >>> [Wed Aug 16 07:03:40 2017]: Looking up hostname whimsy.apache.org... >>> [Wed Aug 16 07:03:40 2017]: Connecting to 54.91.229.41:443 >>> [Wed Aug 16 07:03:41 2017]: Connected, sending HTTPS payload. >>> [Wed Aug 16 07:03:41 2017]: Analyzing server certificate >>> [Wed Aug 16 07:03:41 2017]: Saving certificate data >>> [Wed Aug 16 07:03:41 2017]: Reading response header from server >>> [Wed Aug 16 07:03:42 2017]: Caught exception: Internal Server Error or >>> equivalent bad message received: HTTP/1.1 400 site_scan >>> ["/usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/uri/rfc3986_parser.rb:18:in >>> `rescue in split': bad URI(is not URI?): http://spamassassin.apache.org/ >>> (URI::InvalidURIError)", "\tfrom >>> /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/uri/rfc3986_parser.rb:15:in >>> `split'", "\tfrom >>> /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/uri/rfc3986_parser.rb:73:in >>> `parse'", "\tfrom >>> /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/uri/common.rb:231:in >>> `parse'", "\tfrom /x1/srv/whimsy/lib/whimsy/cache.rb:104:in `fetch'", >>> "\tfrom /x1/srv/whimsy/lib/whimsy/cache.rb:124:in `rescue in fetch'", >>> "\tfrom /x1/srv/whimsy/lib/whimsy/cache.rb:101:in `fetch'", "\tfrom >>> /x1/srv/whimsy/lib/whimsy/cache.rb:66:in `get'", "\tfrom site-scan.rb:28:in >>> `parse'", "\tfrom site-scan.rb:184:in `block in <main>'", "\tfrom >>> site-scan.rb:176:in `each'", "\tfrom site-scan.rb:176:in `<main>'"] >>> >>> >>> >>> >>> >>> With regards, >>> Ping My Box - https://www.pingmybox.com/