[
https://issues.apache.org/jira/browse/SOLR-12055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16771451#comment-16771451
]
Erick Erickson edited comment on SOLR-12055 at 2/19/19 12:46 AM:
-----------------------------------------------------------------
I made some changes to SolrTestCaseJ4 and StartupLoggingUtils, if anyone with
deep knowledge
can peek at them that would be good. Mainly
1> providing a logger shutdown method in StartupLoggingUtils.
2> SolrTestJ4.tearDownTestCases() now calls StartupLoggingUtils.shutdown().
There are two classes of test problems:
1> leaked objects that mention lmax.disruptor or similar. This should be fixed
by just having the test case extend SolrTestJ4 rather than LuceneTestCase so
the above shutdown method gets called.
2> Assertion errors that look at logged messages. See the changes to
RequestLoggingTest for a model, but basically just loop a few times until the
async logging gets flushed. I expect there'll be more test failures that pop
out since any test that checks logged messages is subject to timing issues and
I'm not at all sure 10 full runs is enough to flush them out. I'll investigate
them when I see them. If anyone notices something that I don't see first,
please ping me. If you're ambitious, try fixing it by looping a few times like
in RequestLoggingTest. So far it only seems to take a few repeats at most to
find the missed log message. I suspect under heavy load it may be more.
Regular Solr startup/shutdown doesn't seem affected at all.
[[email protected]]: You made a comment a loooong time ago about calling
this out loudly. Are the changes
in upgrade notes sufficient? I left in the synchronous logging configs but
commented out in the
log4j2 configs for people who want the synchronous logging back.
[~ctargett] [~gerlowskija]: I know the 8.x ref guide hasn't been released, the
doc changes are in solr-upgrade-notes.adoc if we need to take them out, this
change is for 8.1.
The leaked objects appear to have no relation to anything except logging, so
that hope is forlorn.
At this point:
1> all tests run, with the usual caveats
2> I've run the full test suite 10 times and don't see any mysterious failures
3> I've beasted TestLogWatcher SOLR-12732 1,000 times and no failures, so I'll
close that JIRA too.
I'll probably push this late this week, complain now or hold your peace ;)
was (Author: erickerickson):
I made some changes to SolrTestCaseJ4 and StartupLoggingUtils, if anyone with
deep knowledge
can peek at them that would be good. Mainly
1> providing a logger shutdown method in StartupLoggingUtils.
2> SolrTestJ4.tearDownTestCases() now calls StartupLoggingUtils.shutdown().
There are two classes of test problems:
1> leaked objects that mention lmax.disruptor or similar. This should be fixed
by just having the test case extend SolrTestJ4 rather than LuceneTestCase so
the above shutdown method gets called.
2> Assertion errors that look at logged messages. See the changes to
RequestLoggingTest for a model, but basically just loop a few times until the
async logging gets flushed. I expect there'll be more test failures that pop
out since any test that checks logged messages is subject to timing issues and
I'm not at all sure 10 full runs is enough to flush them out. I'll investigate
them when I see them. If anyone notices something that I don't see first,
please ping me. If you're ambitious, try fixing it by looping a few times like
in RequestLoggingTest. So far it only seems to take a few repeats at most to
find the missed log message. I suspect under heavy load it may be more.
Regular Solr startup/shutdown doesn't seem affected at all.
@MarkMiller: You made a comment a loooong time ago about calling this out
loudly. Are the changes
in upgrade notes sufficient? I left in the synchronous logging configs but
commented out in the
log4j2 configs for people who want the synchronous logging back.
@Cassandra: I know the 8.x ref guide hasn't been released, the doc changes are
in solr-upgrade-notes.adoc if we need to take them out, this change is for 8.1.
The leaked objects appear to have no relation to anything except logging, so
that hope is forlorn.
At this point:
1> all tests run, with the usual caveats
2> I've run the full test suite 10 times and don't see any mysterious failures
3> I've beasted TestLogWatcher SOLR-12732 1,000 times and no failures, so I'll
close that JIRA too.
I'll probably push this late this week, complain now or hold your peace ;)
> Enable async logging by default
> -------------------------------
>
> Key: SOLR-12055
> URL: https://issues.apache.org/jira/browse/SOLR-12055
> Project: Solr
> Issue Type: Improvement
> Security Level: Public(Default Security Level. Issues are Public)
> Components: logging
> Reporter: Erick Erickson
> Assignee: Erick Erickson
> Priority: Minor
> Attachments: SOLR-12055-rollback.patch,
> SOLR-12055-slh-interim1.patch, SOLR-12055-slh-interim1.patch,
> SOLR-12055.patch, SOLR-12055.patch, SOLR-12055.patch, SOLR-12055.patch
>
>
> When SOLR-7887 is done, switching to async logging will be a simple change to
> the config files for log4j2. This will reduce contention and increase
> throughput generally and logging in particular.
> There's a discussion of the pros/cons here:
> https://logging.apache.org/log4j/2.0/manual/async.html
> An alternative is to put a note in the Ref Guide about how to enable async
> logging.
> I guess even if we enable async by default the ref guide still needs a note
> about how to _disable_ it.....
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]