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
Serialization of queue size is broken #6325
Comments
I think I found the root cause of this... the |
spinscale
added a commit
to spinscale/elasticsearch
that referenced
this issue
Jul 16, 2014
As a SizeValue is used for serializing the thread pool size, a negative number resulted in throwing an exception when deserializing (using -ea an assertionerror was thrown). This fixes a check for changing the serialization logic, so that negative numbers are read correctly, by adding an internal UNBOUNDED value. Closes elastic#6325 Closes elastic#5357
spinscale
added a commit
that referenced
this issue
Jul 16, 2014
As a SizeValue is used for serializing the thread pool size, a negative number resulted in throwing an exception when deserializing (using -ea an assertionerror was thrown). This fixes a check for changing the serialization logic, so that negative numbers are read correctly, by adding an internal UNBOUNDED value. Closes #6325 Closes #5357
spinscale
added a commit
that referenced
this issue
Jul 16, 2014
As a SizeValue is used for serializing the thread pool size, a negative number resulted in throwing an exception when deserializing (using -ea an assertionerror was thrown). This fixes a check for changing the serialization logic, so that negative numbers are read correctly, by adding an internal UNBOUNDED value. Closes #6325 Closes #5357
spinscale
added a commit
that referenced
this issue
Jul 16, 2014
As a SizeValue is used for serializing the thread pool size, a negative number resulted in throwing an exception when deserializing (using -ea an assertionerror was thrown). This fixes a check for changing the serialization logic, so that negative numbers are read correctly, by adding an internal UNBOUNDED value. Closes #6325 Closes #5357
mute
pushed a commit
to mute/elasticsearch
that referenced
this issue
Jul 29, 2015
As a SizeValue is used for serializing the thread pool size, a negative number resulted in throwing an exception when deserializing (using -ea an assertionerror was thrown). This fixes a check for changing the serialization logic, so that negative numbers are read correctly, by adding an internal UNBOUNDED value. Closes elastic#6325 Closes elastic#5357
mute
pushed a commit
to mute/elasticsearch
that referenced
this issue
Jul 29, 2015
As a SizeValue is used for serializing the thread pool size, a negative number resulted in throwing an exception when deserializing (using -ea an assertionerror was thrown). This fixes a check for changing the serialization logic, so that negative numbers are read correctly, by adding an internal UNBOUNDED value. Closes elastic#6325 Closes elastic#5357
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This issue exists in both in the 1.1 branch and head.
I have set the threadpool.get.queue_size to -1 using the REST API.
I am running the elasticsearch server with assertions enable (-ea).
If then a TransportClient with "sniff=false" connects and tries to send a query it gets a org.elasticsearch.client.transport.NoNodeAvailableException
The underlying exception is:
Caused by: java.lang.AssertionError
at org.elasticsearch.common.io.stream.StreamOutput.writeVLong(StreamOutput.java:176)
at org.elasticsearch.common.io.stream.AdapterStreamOutput.writeVLong(AdapterStreamOutput.java:126)
at org.elasticsearch.common.unit.SizeValue.writeTo(SizeValue.java:211)
at org.elasticsearch.threadpool.ThreadPool$Info.writeTo(ThreadPool.java:643)
at org.elasticsearch.threadpool.ThreadPoolInfo.writeTo(ThreadPoolInfo.java:74)
at org.elasticsearch.action.admin.cluster.node.info.NodeInfo.writeTo(NodeInfo.java:291)
at org.elasticsearch.action.admin.cluster.node.info.NodesInfoResponse.writeTo(NodesInfoResponse.java:68)
at org.elasticsearch.transport.netty.NettyTransportChannel.sendResponse(NettyTransportChannel.java:83)
at org.elasticsearch.action.support.nodes.TransportNodesOperationAction$TransportHandler$1.onResponse(TransportNodesOperationAction.java:246)
at org.elasticsearch.action.support.nodes.TransportNodesOperationAction$TransportHandler$1.onResponse(TransportNodesOperationAction.java:241)
at org.elasticsearch.action.support.nodes.TransportNodesOperationAction$AsyncAction.finishHim(TransportNodesOperationAction.java:227)
at org.elasticsearch.action.support.nodes.TransportNodesOperationAction$AsyncAction.onOperation(TransportNodesOperationAction.java:202)
at org.elasticsearch.action.support.nodes.TransportNodesOperationAction$AsyncAction.access$900(TransportNodesOperationAction.java:102)
at org.elasticsearch.action.support.nodes.TransportNodesOperationAction$AsyncAction$2.run(TransportNodesOperationAction.java:146)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
That is the server tries to use OutputStream.writeVLong on a negative number.
Please let me know if you need more information.
The text was updated successfully, but these errors were encountered: