Found the PR, approved,

Side note: It looks like AdminUIServlet is another candidate for a filter
since it's manually loading a static html file and then feeding it to the
out stream ( I think HttpServletResponseWrapper can be used to do the
version substitution)...

On Wed, Oct 23, 2024 at 9:30 AM Gus Heck <gus.h...@gmail.com> wrote:

> As for next steps, I was planning on heading for creation of filters next,
> so that when a servlet is create it can just be configured with all the
> same filters. That way the old dispatch filter can continue to do it's
> thing without requiring all 3 aspects to be migrated to a servlet at once.
>
> On Wed, Oct 23, 2024 at 9:27 AM Gus Heck <gus.h...@gmail.com> wrote:
>
>> Absolutely one step at a time. We've seen in the past how an enormous
>> change is just too hard to work back into the mainline, and I'd hate to put
>> in the effort only to suffer that fate. Review is always welcome of course!
>> I'll check for that review you requested. I might have missed it.
>>
>> On Tue, Oct 22, 2024 at 11:06 PM David Smiley <dsmi...@apache.org> wrote:
>>
>>> Hmm, quite some ideas there :-)
>>>
>>> One step at a time, though I'm not sure I agree with the destination you
>>> fantasized about.  Would the next step "just" be a matter of splitting
>>> out
>>> the parts of SolrDispatchFilter that are not very filter-y and creating a
>>> SolrServlet from that?  Don't need to retain any dubious things
>>> like excludePatterns or "passthrough".  Thinking of Solr 10 here; more
>>> freedom to do something different that works but might break <1% of users
>>> for some obscure thing.  FWIW I'd be happy to be a code reviewer.  I
>>> tagged
>>> you for a review on something nearby the other day.
>>>
>>> On Tue, Oct 22, 2024 at 5:35 PM Gus Heck <gus.h...@gmail.com> wrote:
>>>
>>> > Converting Solr to a servlet, or even a query servlet, an update
>>> servlet
>>> > and an admin servlet because those are really very separate operations
>>> has
>>> > been on my mind for a long time. The overlap among those operations is
>>> all
>>> > in things like authentication or tracing that should be reusable
>>> > ServletFilters, is one of those things I have long thought about, and
>>> these
>>> > thoughts are part of why I moved CoreContainer Initialization out of
>>> the
>>> > very bloated SolrDispatchFilter. Having CoreContainer exist before any
>>> > processing code is initialized or invoked was a critical first step to
>>> any
>>> > disassembly into a series of reusable filters and/or separation of
>>> > concerns. There's an even more radical possibility of making
>>> CoreContainer
>>> > a container (jetty) level resource, and separating the
>>> update/admin/query
>>> > bits into entirely distinct web applications... any of which might not
>>> be
>>> > installed in a particular running jetty. (assuming use sort of
>>> replication
>>> > to transfer indexes to installations hosting the query app... ) That's
>>> > pretty radical though, and servletization (TM) and separation of
>>> concerns
>>> > come first anyway.
>>> >
>>> > My recent web-socket stuff is also a sideways exploration of ways to
>>> get a
>>> > separate thing running inside our code base. Originally, I'd hoped to
>>> make
>>> > it a separate servlet, but we don't have any notion in our code base
>>> of how
>>> > to twiddle/tweak/adjust what's deployed via web.xml. I spent some time
>>> > thinking about the possibility of web-fragment.xml usage, but there's
>>> an
>>> > important tension there with startup time and classpath scanning. Our
>>> > classpath is gigantic so I'm loath to unset the metadata-complete=true
>>> > <
>>> >
>>> https://github.com/apache/solr/blob/main/solr/webapp/web/WEB-INF/web.xml#L22
>>> > >
>>> > and so it wound up in the module world instead...
>>> >
>>> > I hack on things related to this occasionally, but it's a big project
>>> that
>>> > likely will take me a very long time to work through on my own unless
>>> I get
>>> > lucky and find a sponsor that allows me to work on it full time...
>>> >
>>> > -Gus
>>> >
>>> > On Tue, Oct 22, 2024 at 4:51 PM David Smiley <dsmi...@apache.org>
>>> wrote:
>>> >
>>> > > 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
>>> > >
>>> >
>>> >
>>> > --
>>> > http://www.needhamsoftware.com (work)
>>> > https://a.co/d/b2sZLD9 (my fantasy fiction book)
>>> >
>>>
>>
>>
>> --
>> http://www.needhamsoftware.com (work)
>> https://a.co/d/b2sZLD9 (my fantasy fiction book)
>>
>
>
> --
> http://www.needhamsoftware.com (work)
> https://a.co/d/b2sZLD9 (my fantasy fiction book)
>


-- 
http://www.needhamsoftware.com (work)
https://a.co/d/b2sZLD9 (my fantasy fiction book)

Reply via email to