Skip to content

servlet: fix threadingTest and update lincheck #12306

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

panchenko
Copy link
Contributor

Seems like previously it was not testing all the flows but only: the write/flush calls are added to the queue by runOrBuffer because readyAndDrained is initially false.

So,

  • isReady() is never called
  • isReadyReturnedFalse never set to true
  • maybeOnWritePossible() does nothing

All that makes me think that #9917 is caused by some bugs in older versions of llincheck, can be closed now.

A more real simulation happens if calling onWritePossible first via initialOnWritePossible, and then it has found a race condition in AsyncServletOutputStreamWriterConcurrencyTest.isReady(), if maybeOnWritePossible() is executed before return isReady.

Additionally updated lincheck,

  • it does not need jvmArgs now
  • is compatible with java 8 again
  • changed asserts from Truth to junit, as lincheck was trying to use com.google.common.truth.Subject.equals(Object)

It still does not detect #12268, but might be needs more time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant