Re: Incoming refactoring
On 14/12/2016 09:33, Rémy Maucherat wrote: > 2016-12-14 10:07 GMT+01:00 Mark Thomas: > >> On 14/12/2016 08:54, Rémy Maucherat wrote: >>> 2016-12-14 9:50 GMT+01:00 Mark Thomas : >>> The failure happens on current trunk too so I don't think this is related to the refactoring. However, I am going to investigate this failure first - before I apply the refactoring. What is the intermittent failure ? >>> https://ci.apache.org/builders/tomcat-trunk seems happy (usually it's >> not). >> >> TestHttp11Processor.test57621b >> >> Fails maybe 1 time in 10. It looks like something is going wrong >> resetting the input buffer between requests. >> >> Ah this test is very specific. The runnable is doing what a dispatch would > do but it doesn't have the code to wait until the container thread has > returned: > > public synchronized boolean asyncDispatch() { > if (!ContainerThreadMarker.isContainerThread() && state == > AsyncState.STARTING) { > state = AsyncState.DISPATCH_PENDING; > return false; > } else { > return doDispatch(); > } > } > > vs: > > public synchronized void asyncRun(Runnable runnable) { > ... [set env] > processor.getExecutor().execute(runnable); > ... [unset env] > } > > So if this is allowed, it would run into the same concurrency issues that > were fixed for dispatch. That might be an issue but I am seeing something different. Still digging into this... Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Incoming refactoring
2016-12-14 10:07 GMT+01:00 Mark Thomas: > On 14/12/2016 08:54, Rémy Maucherat wrote: > > 2016-12-14 9:50 GMT+01:00 Mark Thomas : > > > >> The failure happens on current trunk too so I don't think this is > >> related to the refactoring. However, I am going to investigate this > >> failure first - before I apply the refactoring. > >> > >> What is the intermittent failure ? > > https://ci.apache.org/builders/tomcat-trunk seems happy (usually it's > not). > > TestHttp11Processor.test57621b > > Fails maybe 1 time in 10. It looks like something is going wrong > resetting the input buffer between requests. > > Ah this test is very specific. The runnable is doing what a dispatch would do but it doesn't have the code to wait until the container thread has returned: public synchronized boolean asyncDispatch() { if (!ContainerThreadMarker.isContainerThread() && state == AsyncState.STARTING) { state = AsyncState.DISPATCH_PENDING; return false; } else { return doDispatch(); } } vs: public synchronized void asyncRun(Runnable runnable) { ... [set env] processor.getExecutor().execute(runnable); ... [unset env] } So if this is allowed, it would run into the same concurrency issues that were fixed for dispatch. Rémy
Re: Incoming refactoring
On 14/12/2016 08:54, Rémy Maucherat wrote: > 2016-12-14 9:50 GMT+01:00 Mark Thomas: > >> The failure happens on current trunk too so I don't think this is >> related to the refactoring. However, I am going to investigate this >> failure first - before I apply the refactoring. >> >> What is the intermittent failure ? > https://ci.apache.org/builders/tomcat-trunk seems happy (usually it's not). TestHttp11Processor.test57621b Fails maybe 1 time in 10. It looks like something is going wrong resetting the input buffer between requests. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Incoming refactoring
2016-12-14 9:50 GMT+01:00 Mark Thomas: > The failure happens on current trunk too so I don't think this is > related to the refactoring. However, I am going to investigate this > failure first - before I apply the refactoring. > > What is the intermittent failure ? https://ci.apache.org/builders/tomcat-trunk seems happy (usually it's not). Rémy
Re: Incoming refactoring
On 13/12/2016 21:14, Mark Thomas wrote: > On 13/12/2016 15:21, Mark Thomas wrote: >> On 13/12/2016 15:09, Christopher Schultz wrote: >>> Mark, >>> >>> On 12/13/16 6:24 AM, Mark Thomas wrote: Hi, Just a heads up that - assuming the currently running tests pass - I'll be committing a batch of connector refactoring changes. The general aim of these changes is: - Reduce the duplication of configuration between Protocol and Processor In addition to removing a chunk of duplicate getters and setters, it should make it easier to make dynamic configuration changes. - Reduce the visibility of the Endpoint. Processor no longer accesses Endpoint directly. >>> >>> +1 >>> >>> Any simplification we can make in that area will be good. >>> >>> Are you thinking of back-porting to 8.5 as well, or is this likely to >>> stay in 9.0? >> >> Not sure. 8.5.x is meant to be stable and I'm changing APIs. Then again, >> they are internal APIs. Config isn't changing. Also, we'd need to back >> port the Acceptor changes first. >> >> Overall I'm neutral on this. I'd like to see the refactoring in 8.5.x >> but I'm concerned about any instability or regressions that might slip in. > > An intermittent test failure has appeared. I need to investigate further > before pushing the commit. The failure happens on current trunk too so I don't think this is related to the refactoring. However, I am going to investigate this failure first - before I apply the refactoring. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Incoming refactoring
On 13/12/2016 15:21, Mark Thomas wrote: > On 13/12/2016 15:09, Christopher Schultz wrote: >> Mark, >> >> On 12/13/16 6:24 AM, Mark Thomas wrote: >>> Hi, >>> >>> Just a heads up that - assuming the currently running tests pass - I'll >>> be committing a batch of connector refactoring changes. The general aim >>> of these changes is: >>> >>> - Reduce the duplication of configuration between Protocol and Processor >>> In addition to removing a chunk of duplicate getters and setters, it >>> should make it easier to make dynamic configuration changes. >>> >>> - Reduce the visibility of the Endpoint. >>> Processor no longer accesses Endpoint directly. >> >> +1 >> >> Any simplification we can make in that area will be good. >> >> Are you thinking of back-porting to 8.5 as well, or is this likely to >> stay in 9.0? > > Not sure. 8.5.x is meant to be stable and I'm changing APIs. Then again, > they are internal APIs. Config isn't changing. Also, we'd need to back > port the Acceptor changes first. > > Overall I'm neutral on this. I'd like to see the refactoring in 8.5.x > but I'm concerned about any instability or regressions that might slip in. An intermittent test failure has appeared. I need to investigate further before pushing the commit. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Incoming refactoring
On 13/12/2016 15:09, Christopher Schultz wrote: > Mark, > > On 12/13/16 6:24 AM, Mark Thomas wrote: >> Hi, >> >> Just a heads up that - assuming the currently running tests pass - I'll >> be committing a batch of connector refactoring changes. The general aim >> of these changes is: >> >> - Reduce the duplication of configuration between Protocol and Processor >> In addition to removing a chunk of duplicate getters and setters, it >> should make it easier to make dynamic configuration changes. >> >> - Reduce the visibility of the Endpoint. >> Processor no longer accesses Endpoint directly. > > +1 > > Any simplification we can make in that area will be good. > > Are you thinking of back-porting to 8.5 as well, or is this likely to > stay in 9.0? Not sure. 8.5.x is meant to be stable and I'm changing APIs. Then again, they are internal APIs. Config isn't changing. Also, we'd need to back port the Acceptor changes first. Overall I'm neutral on this. I'd like to see the refactoring in 8.5.x but I'm concerned about any instability or regressions that might slip in. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Incoming refactoring
Mark, On 12/13/16 6:24 AM, Mark Thomas wrote: > Hi, > > Just a heads up that - assuming the currently running tests pass - I'll > be committing a batch of connector refactoring changes. The general aim > of these changes is: > > - Reduce the duplication of configuration between Protocol and Processor > In addition to removing a chunk of duplicate getters and setters, it > should make it easier to make dynamic configuration changes. > > - Reduce the visibility of the Endpoint. > Processor no longer accesses Endpoint directly. +1 Any simplification we can make in that area will be good. Are you thinking of back-porting to 8.5 as well, or is this likely to stay in 9.0? -chris signature.asc Description: OpenPGP digital signature