I suspect the choice of a ServletFilter vs Servlet was done for reasons
that might have made sense forever-ago.  It has always been weird.  Does it
still make sense?  Maybe Hossman remembers.

Why I'm bringing this up:
I heard of HTTP 404 responses coming from a Solr server I run, but didn't
see the request in our Solr logs.  It turns out that requests into Solr to
a non-existent core are not logged by Solr.  A 404 made sense of course,
and that's what happened, so there's no bug but the logging situation is
disappointing.  By code inspection, I see that SolrDispatchFilter will do
the PASSTHROUGH case if it can't find the core.  Jetty ultimately gets it
(default servlet?) and returns the 404 and HTML in our "error404.html".
Furthermore, I have also recently seen error scenarios where Solr does
handle the request but doesn't log it *unless* it's a 500 (see
ResponseUtils).  Shouldn't we want at least one *Solr* log message for
every request to Solr and no matter the HTTP status?  I'm aware Jetty has
logs but it's a patchwork between looking at both.

~ David Smiley
Apache Lucene/Solr Search Developer
http://www.linkedin.com/in/davidwsmiley

Reply via email to