You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Oleg Kalnichevski <ol...@apache.org> on 2026/01/13 18:01:39 UTC
TestSocketTimeout test failure
Hi Ryan
Should we move this one to the `slow` group as well?
https://github.com/apache/httpcomponents-client/actions/runs/20966906846/job/60259719742
---
Error: Tests run: 10, Failures: 1, Errors: 0, Skipped: 0, Time elapsed:
3.763 s <<< FAILURE! -- in
org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds
Error:
org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds.testReadTimeouts(String)[10]
-- Time elapsed: 0.703 s <<< FAILURE!
org.opentest4j.AssertionFailedError: Socket read timed out too late (589
out of 150 ms) ==> expected: <true> but was: <false>
at
org.apache.hc.client5.testing.sync.AbstractTestSocketTimeout.testReadTimeouts(TestSocketTimeout.java:115)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at
java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
at
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at
java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at
java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at
java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at
java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org
Re: TestSocketTimeout test failure
Posted by Ryan Schmitt <rs...@apache.org>.
I took care of this. I also submitted a PR for a related bug I found at the
start of the week: https://github.com/apache/httpcomponents-client/pull/785
On Wed, Jan 14, 2026 at 12:36 PM Gary Gregory <ga...@gmail.com>
wrote:
>
>
> On Wed, Jan 14, 2026, 15:05 Ryan Schmitt <rs...@apache.org> wrote:
>
>> The idea in this case is that speed and robustness reinforce each other.
>> If these tests are robust, they can run in parallel with the other tests
>> instead of being `@Isolated`. If they run in parallel, they can use longer
>> timeouts. (I have changes locally to parallelize the client tests, similar
>> to what I did with the core tests, but I haven't published them yet. The
>> client tests won't run reliably until I can get a new version of httpcore5
>> that has the loopback binding fixes.)
>>
>
> That all sounds pretty awesome.
>
> Gary
>
>
>> On Wed, Jan 14, 2026 at 9:47 AM Gary Gregory <ga...@gmail.com>
>> wrote:
>>
>>>
>>>
>>> On Wed, Jan 14, 2026, 12:33 Ryan Schmitt <rs...@apache.org> wrote:
>>>
>>>> Maybe, I'll look into it. I've been rethinking the assertions in these
>>>> tests as part of my general push to make the test suite faster and more
>>>> robust.
>>>>
>>>
>>> I think robustness is much more important. For my money, the build is
>>> currently fast enough ;-)
>>>
>>> Gary
>>>
>>>>
>>>> On Tue, Jan 13, 2026 at 10:03 AM Oleg Kalnichevski <ol...@apache.org>
>>>> wrote:
>>>>
>>>> > Hi Ryan
>>>> >
>>>> > Should we move this one to the `slow` group as well?
>>>> >
>>>> >
>>>> >
>>>> https://github.com/apache/httpcomponents-client/actions/runs/20966906846/job/60259719742
>>>> >
>>>> > ---
>>>> > Error: Tests run: 10, Failures: 1, Errors: 0, Skipped: 0, Time
>>>> elapsed:
>>>> > 3.763 s <<< FAILURE! -- in
>>>> > org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds
>>>> > Error:
>>>> >
>>>> org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds.testReadTimeouts(String)[10]
>>>> >
>>>> > -- Time elapsed: 0.703 s <<< FAILURE!
>>>> > org.opentest4j.AssertionFailedError: Socket read timed out too late
>>>> (589
>>>> > out of 150 ms) ==> expected: <true> but was: <false>
>>>> > at
>>>> >
>>>> >
>>>> org.apache.hc.client5.testing.sync.AbstractTestSocketTimeout.testReadTimeouts(TestSocketTimeout.java:115)
>>>> > at java.base/java.lang.reflect.Method.invoke(Method.java:569)
>>>> > at java.base/java.util.Optional.ifPresent(Optional.java:178)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>>>> > at
>>>> >
>>>> >
>>>> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
>>>> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>>>> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>>>> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>>>> >
>>>> >
>>>>
>>>
Re: TestSocketTimeout test failure
Posted by Gary Gregory <ga...@gmail.com>.
On Wed, Jan 14, 2026, 15:05 Ryan Schmitt <rs...@apache.org> wrote:
> The idea in this case is that speed and robustness reinforce each other.
> If these tests are robust, they can run in parallel with the other tests
> instead of being `@Isolated`. If they run in parallel, they can use longer
> timeouts. (I have changes locally to parallelize the client tests, similar
> to what I did with the core tests, but I haven't published them yet. The
> client tests won't run reliably until I can get a new version of httpcore5
> that has the loopback binding fixes.)
>
That all sounds pretty awesome.
Gary
> On Wed, Jan 14, 2026 at 9:47 AM Gary Gregory <ga...@gmail.com>
> wrote:
>
>>
>>
>> On Wed, Jan 14, 2026, 12:33 Ryan Schmitt <rs...@apache.org> wrote:
>>
>>> Maybe, I'll look into it. I've been rethinking the assertions in these
>>> tests as part of my general push to make the test suite faster and more
>>> robust.
>>>
>>
>> I think robustness is much more important. For my money, the build is
>> currently fast enough ;-)
>>
>> Gary
>>
>>>
>>> On Tue, Jan 13, 2026 at 10:03 AM Oleg Kalnichevski <ol...@apache.org>
>>> wrote:
>>>
>>> > Hi Ryan
>>> >
>>> > Should we move this one to the `slow` group as well?
>>> >
>>> >
>>> >
>>> https://github.com/apache/httpcomponents-client/actions/runs/20966906846/job/60259719742
>>> >
>>> > ---
>>> > Error: Tests run: 10, Failures: 1, Errors: 0, Skipped: 0, Time
>>> elapsed:
>>> > 3.763 s <<< FAILURE! -- in
>>> > org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds
>>> > Error:
>>> >
>>> org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds.testReadTimeouts(String)[10]
>>> >
>>> > -- Time elapsed: 0.703 s <<< FAILURE!
>>> > org.opentest4j.AssertionFailedError: Socket read timed out too late
>>> (589
>>> > out of 150 ms) ==> expected: <true> but was: <false>
>>> > at
>>> >
>>> >
>>> org.apache.hc.client5.testing.sync.AbstractTestSocketTimeout.testReadTimeouts(TestSocketTimeout.java:115)
>>> > at java.base/java.lang.reflect.Method.invoke(Method.java:569)
>>> > at java.base/java.util.Optional.ifPresent(Optional.java:178)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>>> > at
>>> >
>>> >
>>> java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
>>> > at
>>> >
>>> >
>>> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>>> > at
>>> >
>>> >
>>> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>>> > at
>>> >
>>> >
>>> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
>>> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>>> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>>> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>>> >
>>> >
>>>
>>
Re: HttpCore 5.5-alpha1 soon? Re: TestSocketTimeout test failure
Posted by Gary Gregory <ga...@gmail.com>.
On Wed, Jan 14, 2026, 15:28 Oleg Kalnichevski <ol...@apache.org> wrote:
> On Wed, 2026-01-14 at 12:05 -0800, Ryan Schmitt wrote:
> > The idea in this case is that speed and robustness reinforce each
> > other. If
> > these tests are robust, they can run in parallel with the other tests
> > instead of being `@Isolated`. If they run in parallel, they can use
> > longer
> > timeouts. (I have changes locally to parallelize the client tests,
> > similar
> > to what I did with the core tests, but I haven't published them yet.
> > The
> > client tests won't run reliably until I can get a new version of
> > httpcore5
> > that has the loopback binding fixes.)
> >
>
> Hi Ryan
>
> I can try to get around to releasing HttpCore 5.5-alpha1 toward the end
> of the month, if everyone else is on board.
>
I'll be available.
Gary
> Oleg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> For additional commands, e-mail: dev-help@hc.apache.org
>
>
Re: HttpCore 5.5-alpha1 soon? Re: TestSocketTimeout test failure
Posted by Arturo Bernal <ab...@apache.org>.
I'll be available
Arturo
On Wed, 14 Jan 2026 at 9:28 PM, Oleg Kalnichevski <ol...@apache.org> wrote:
> On Wed, 2026-01-14 at 12:05 -0800, Ryan Schmitt wrote:
> > The idea in this case is that speed and robustness reinforce each
> > other. If
> > these tests are robust, they can run in parallel with the other tests
> > instead of being `@Isolated`. If they run in parallel, they can use
> > longer
> > timeouts. (I have changes locally to parallelize the client tests,
> > similar
> > to what I did with the core tests, but I haven't published them yet.
> > The
> > client tests won't run reliably until I can get a new version of
> > httpcore5
> > that has the loopback binding fixes.)
> >
>
> Hi Ryan
>
> I can try to get around to releasing HttpCore 5.5-alpha1 toward the end
> of the month, if everyone else is on board.
>
> Oleg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> For additional commands, e-mail: dev-help@hc.apache.org
>
>
Re: HttpCore 5.5-alpha1 soon? Re: TestSocketTimeout test failure
Posted by Ryan Schmitt <rs...@apache.org>.
I'd be happy with a 5.4.1 release, too. I'll just go through the master
branch and cherry-pick any other changes I need.
On Wed, Jan 14, 2026 at 12:28 PM Oleg Kalnichevski <ol...@apache.org> wrote:
> On Wed, 2026-01-14 at 12:05 -0800, Ryan Schmitt wrote:
> > The idea in this case is that speed and robustness reinforce each
> > other. If
> > these tests are robust, they can run in parallel with the other tests
> > instead of being `@Isolated`. If they run in parallel, they can use
> > longer
> > timeouts. (I have changes locally to parallelize the client tests,
> > similar
> > to what I did with the core tests, but I haven't published them yet.
> > The
> > client tests won't run reliably until I can get a new version of
> > httpcore5
> > that has the loopback binding fixes.)
> >
>
> Hi Ryan
>
> I can try to get around to releasing HttpCore 5.5-alpha1 toward the end
> of the month, if everyone else is on board.
>
> Oleg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> For additional commands, e-mail: dev-help@hc.apache.org
>
>
HttpCore 5.5-alpha1 soon? Re: TestSocketTimeout test failure
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Wed, 2026-01-14 at 12:05 -0800, Ryan Schmitt wrote:
> The idea in this case is that speed and robustness reinforce each
> other. If
> these tests are robust, they can run in parallel with the other tests
> instead of being `@Isolated`. If they run in parallel, they can use
> longer
> timeouts. (I have changes locally to parallelize the client tests,
> similar
> to what I did with the core tests, but I haven't published them yet.
> The
> client tests won't run reliably until I can get a new version of
> httpcore5
> that has the loopback binding fixes.)
>
Hi Ryan
I can try to get around to releasing HttpCore 5.5-alpha1 toward the end
of the month, if everyone else is on board.
Oleg
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org
Re: TestSocketTimeout test failure
Posted by Ryan Schmitt <rs...@apache.org>.
The idea in this case is that speed and robustness reinforce each other. If
these tests are robust, they can run in parallel with the other tests
instead of being `@Isolated`. If they run in parallel, they can use longer
timeouts. (I have changes locally to parallelize the client tests, similar
to what I did with the core tests, but I haven't published them yet. The
client tests won't run reliably until I can get a new version of httpcore5
that has the loopback binding fixes.)
On Wed, Jan 14, 2026 at 9:47 AM Gary Gregory <ga...@gmail.com> wrote:
>
>
> On Wed, Jan 14, 2026, 12:33 Ryan Schmitt <rs...@apache.org> wrote:
>
>> Maybe, I'll look into it. I've been rethinking the assertions in these
>> tests as part of my general push to make the test suite faster and more
>> robust.
>>
>
> I think robustness is much more important. For my money, the build is
> currently fast enough ;-)
>
> Gary
>
>>
>> On Tue, Jan 13, 2026 at 10:03 AM Oleg Kalnichevski <ol...@apache.org>
>> wrote:
>>
>> > Hi Ryan
>> >
>> > Should we move this one to the `slow` group as well?
>> >
>> >
>> >
>> https://github.com/apache/httpcomponents-client/actions/runs/20966906846/job/60259719742
>> >
>> > ---
>> > Error: Tests run: 10, Failures: 1, Errors: 0, Skipped: 0, Time elapsed:
>> > 3.763 s <<< FAILURE! -- in
>> > org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds
>> > Error:
>> >
>> org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds.testReadTimeouts(String)[10]
>> >
>> > -- Time elapsed: 0.703 s <<< FAILURE!
>> > org.opentest4j.AssertionFailedError: Socket read timed out too late (589
>> > out of 150 ms) ==> expected: <true> but was: <false>
>> > at
>> >
>> >
>> org.apache.hc.client5.testing.sync.AbstractTestSocketTimeout.testReadTimeouts(TestSocketTimeout.java:115)
>> > at java.base/java.lang.reflect.Method.invoke(Method.java:569)
>> > at java.base/java.util.Optional.ifPresent(Optional.java:178)
>> > at
>> >
>> >
>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
>> > at
>> >
>> >
>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>> > at
>> >
>> >
>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
>> > at
>> >
>> >
>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
>> > at
>> >
>> >
>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>> > at
>> >
>> >
>> java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
>> > at
>> >
>> >
>> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
>> > at
>> >
>> >
>> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
>> > at
>> >
>> >
>> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
>> > at
>> >
>> >
>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
>> > at
>> >
>> >
>> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>> > at
>> >
>> >
>> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
>> > at
>> >
>> >
>> java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
>> > at
>> >
>> >
>> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
>> > at
>> >
>> >
>> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
>> > at
>> >
>> >
>> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
>> > at
>> >
>> >
>> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
>> > at
>> >
>> >
>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
>> > at
>> >
>> >
>> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>> > at
>> >
>> >
>> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
>> > at
>> >
>> >
>> java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
>> > at
>> >
>> >
>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>> > at
>> >
>> >
>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>> > at
>> >
>> >
>> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
>> > at
>> >
>> >
>> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
>> > at
>> >
>> >
>> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
>> > at
>> >
>> >
>> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
>> > at
>> >
>> >
>> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
>> > at
>> >
>> >
>> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
>> > at
>> >
>> >
>> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>> > at
>> >
>> >
>> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
>> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>> >
>> >
>>
>
Re: TestSocketTimeout test failure
Posted by Gary Gregory <ga...@gmail.com>.
On Wed, Jan 14, 2026, 12:33 Ryan Schmitt <rs...@apache.org> wrote:
> Maybe, I'll look into it. I've been rethinking the assertions in these
> tests as part of my general push to make the test suite faster and more
> robust.
>
I think robustness is much more important. For my money, the build is
currently fast enough ;-)
Gary
>
> On Tue, Jan 13, 2026 at 10:03 AM Oleg Kalnichevski <ol...@apache.org>
> wrote:
>
> > Hi Ryan
> >
> > Should we move this one to the `slow` group as well?
> >
> >
> >
> https://github.com/apache/httpcomponents-client/actions/runs/20966906846/job/60259719742
> >
> > ---
> > Error: Tests run: 10, Failures: 1, Errors: 0, Skipped: 0, Time elapsed:
> > 3.763 s <<< FAILURE! -- in
> > org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds
> > Error:
> >
> org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds.testReadTimeouts(String)[10]
> >
> > -- Time elapsed: 0.703 s <<< FAILURE!
> > org.opentest4j.AssertionFailedError: Socket read timed out too late (589
> > out of 150 ms) ==> expected: <true> but was: <false>
> > at
> >
> >
> org.apache.hc.client5.testing.sync.AbstractTestSocketTimeout.testReadTimeouts(TestSocketTimeout.java:115)
> > at java.base/java.lang.reflect.Method.invoke(Method.java:569)
> > at java.base/java.util.Optional.ifPresent(Optional.java:178)
> > at
> >
> >
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
> > at
> >
> >
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> > at
> >
> >
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
> > at
> >
> >
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
> > at
> >
> >
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> > at
> >
> >
> java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
> > at
> >
> >
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
> > at
> >
> >
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
> > at
> >
> >
> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> > at
> >
> >
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> > at
> >
> >
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> > at
> >
> >
> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
> > at
> >
> >
> java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
> > at
> >
> >
> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
> > at
> >
> >
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
> > at
> >
> >
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
> > at
> >
> >
> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> > at
> >
> >
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> > at
> >
> >
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> > at
> >
> >
> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
> > at
> >
> >
> java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
> > at
> >
> >
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> > at
> >
> >
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> > at
> >
> >
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> > at
> >
> >
> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
> > at
> >
> >
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
> > at
> >
> >
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
> > at
> >
> >
> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> > at
> >
> >
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> > at
> >
> >
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> > at
> >
> >
> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
> > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
> >
> >
>
Re: TestSocketTimeout test failure
Posted by Ryan Schmitt <rs...@apache.org>.
Maybe, I'll look into it. I've been rethinking the assertions in these
tests as part of my general push to make the test suite faster and more
robust.
On Tue, Jan 13, 2026 at 10:03 AM Oleg Kalnichevski <ol...@apache.org> wrote:
> Hi Ryan
>
> Should we move this one to the `slow` group as well?
>
>
> https://github.com/apache/httpcomponents-client/actions/runs/20966906846/job/60259719742
>
> ---
> Error: Tests run: 10, Failures: 1, Errors: 0, Skipped: 0, Time elapsed:
> 3.763 s <<< FAILURE! -- in
> org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds
> Error:
> org.apache.hc.client5.testing.sync.TestSocketTimeout$Uds.testReadTimeouts(String)[10]
>
> -- Time elapsed: 0.703 s <<< FAILURE!
> org.opentest4j.AssertionFailedError: Socket read timed out too late (589
> out of 150 ms) ==> expected: <true> but was: <false>
> at
>
> org.apache.hc.client5.testing.sync.AbstractTestSocketTimeout.testReadTimeouts(TestSocketTimeout.java:115)
> at java.base/java.lang.reflect.Method.invoke(Method.java:569)
> at java.base/java.util.Optional.ifPresent(Optional.java:178)
> at
>
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
> at
>
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> at
>
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
> at
>
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
> at
>
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> at
>
> java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
> at
>
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
> at
>
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
> at
>
> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> at
>
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> at
>
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at
>
> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
> at
>
> java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
> at
>
> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
> at
>
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
> at
>
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
> at
>
> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> at
>
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> at
>
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at
>
> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
> at
>
> java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
> at
>
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> at
>
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> at
>
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> at
>
> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
> at
>
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
> at
>
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
> at
>
> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> at
>
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> at
>
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at
>
> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
> at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
> at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
> at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>
>