I wonder if any of you bright sparks can shed some light on this problem with Jetty 7.5.1?
I have a response that is bigger than the standard servlet buffer size (32,768).
I am using the continuation suspend/complete pattern.
When writing to the response outputstream, 32768 bytes are written to the client, and then the thread hangs forever on SelectChannelEndpoint.blockWritable() - maybe deadlocked?
This is a huge issue for us, as it brings down the server as threads get deadlocked.
Any information would be great - I can see a few similar bugs have been raised, but none quite the same.
Daemon Thread [Thread-111] (Suspended)
Object.wait(long) line: not available [native method]
SelectChannelEndPoint.blockWritable(long) line: 384
HttpGenerator(AbstractGenerator).blockForOutput(long) line: 530
HttpGenerator(AbstractGenerator).flush(long) line: 456
HttpConnection$Output(HttpOutput).flush() line: 89
HttpConnection$Output.flush() line: 995
HttpConnection$Output(HttpOutput).write(Buffer) line: 172
HttpConnection$Output(HttpOutput).write(byte[], int, int) line: 96
Utf8Generator._flushBuffer() line: 1437
Utf8Generator.writeString(String) line: 465
StdSerializers$StringSerializer.serialize(String, JsonGenerator, SerializerProvider) line: 123
StdSerializers$StringSerializer.serialize(Object, JsonGenerator, SerializerProvider) line: 113
MapSerializer.serializeFields(Map<?,?>, JsonGenerator, SerializerProvider) line: 257
MapSerializer.serialize(Map<?,?>, JsonGenerator, SerializerProvider) line: 177
MapSerializer.serialize(Object, JsonGenerator, SerializerProvider) line: 22
ContainerSerializers$IndexedListSerializer.serializeContents(List<?>, JsonGenerator, SerializerProvider) line: 291
ContainerSerializers$IndexedListSerializer.serializeContents(Object, JsonGenerator, SerializerProvider) line: 242
ContainerSerializers$IndexedListSerializer(ContainerSerializers$AsArraySerializer<T>).serialize(T, JsonGenerator, SerializerProvider) line: 130
MapSerializer.serializeFields(Map<?,?>, JsonGenerator, SerializerProvider) line: 257
MapSerializer.serialize(Map<?,?>, JsonGenerator, SerializerProvider) line: 177
MapSerializer.serialize(Object, JsonGenerator, SerializerProvider) line: 22
MapSerializer.serializeFields(Map<?,?>, JsonGenerator, SerializerProvider) line: 257
MapSerializer.serialize(Map<?,?>, JsonGenerator, SerializerProvider) line: 177
MapSerializer.serialize(Object, JsonGenerator, SerializerProvider) line: 22
MapSerializer.serializeFields(Map<?,?>, JsonGenerator, SerializerProvider) line: 257
MapSerializer.serialize(Map<?,?>, JsonGenerator, SerializerProvider) line: 177
MapSerializer.serialize(Object, JsonGenerator, SerializerProvider) line: 22
ContainerSerializers$IndexedListSerializer.serializeContents(List<?>, JsonGenerator, SerializerProvider) line: 291
ContainerSerializers$IndexedListSerializer.serializeContents(Object, JsonGenerator, SerializerProvider) line: 242
ContainerSerializers$IndexedListSerializer(ContainerSerializers$AsArraySerializer<T>).serialize(T, JsonGenerator, SerializerProvider) line: 130
BeanPropertyWriter.serializeAsField(Object, JsonGenerator, SerializerProvider) line: 428
BeanSerializer.serializeFields(Object, JsonGenerator, SerializerProvider) line: 245
BeanSerializer.serialize(Object, JsonGenerator, SerializerProvider) line: 212
StdSerializerProvider._serializeValue(JsonGenerator, Object) line: 587
StdSerializerProvider.serializeValue(SerializationConfig, JsonGenerator, Object, SerializerFactory) line: 245
ObjectMapper(ObjectMapper)._configAndWriteValue(JsonGenerator, Object) line: 1993
ObjectMapper(ObjectMapper).writeValue(OutputStream, Object) line: 1563
...