Skip to content

Instantly share code, notes, and snippets.

@ekelog
Created March 3, 2011 09:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ekelog/852536 to your computer and use it in GitHub Desktop.
Save ekelog/852536 to your computer and use it in GitHub Desktop.
EsBugTest
cluster.name: testCluster107
gateway.type: fs
index.gateway.snapshot_interval : -1
import org.elasticsearch.action.ActionFuture;
import org.elasticsearch.action.ActionResponse;
import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.IndicesAdminClient;
import org.elasticsearch.client.Requests;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.settings.loader.JsonSettingsLoader;
import org.elasticsearch.common.settings.loader.YamlSettingsLoader;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import java.net.InetSocketAddress;
import java.util.HashMap;
import java.util.Map;
public class EsBugTest {
String es_clusterName="testCluster107";
String es_hostName="192.168.1.107";
int es_port=9300;
int timeout=1000;
Client client;
public static void main(String[]args) throws Exception
{
new EsBugTest().testBug();
}
private void testBug() throws Exception
{
String indexName="axios_views";
try{
connect();
try{
System.out.println("delete index "+indexName);
deleteIndex(indexName);
}
catch(Exception e){
System.out.println("Can not delete index "+indexName+"Reason:"+ e);
}
Thread.sleep(1000);
System.out.println("create index "+indexName);
createIndex(indexName);
Thread.sleep(1000);
HashMap props1 = buildProps("",65);
HashMap props2 = buildProps("",1);
System.out.println(" indexing leo_airports props "+props1);
indexProps("axios_views","leo_airports",props1);
System.out.println(" indexing leo_cities props "+props2);
indexProps("axios_views","leo_cities",props2);
System.out.println(" indexing leo_airports props "+props1);
indexProps("axios_views","leo_airports",props1);
System.out.println(" indexing leo_cities props "+props2);
indexProps("axios_views","leo_cities",props2);
}
finally
{
disconnect();
}
}
private HashMap buildProps(String prefix,int size)
{
HashMap props=new HashMap<String, String>();
for(int it=0;it<size;it++)
{
String key=prefix+"prop_"+it;
props.put(key,"a");
}
return props;
}
private void indexProps(String indexName,String type,Map props)
{
IndexRequest indexRequest = new IndexRequest(indexName);
indexRequest.type(type);
indexRequest.source(props, Requests.CONTENT_TYPE);
indexRequest.opType(IndexRequest.OpType.INDEX);
ActionFuture<IndexResponse> future=client.index(indexRequest);
IndexResponse response = future.actionGet(timeout);
}
private boolean deleteIndex(String indexName) throws Exception{
DeleteIndexRequest deleteRequest = new DeleteIndexRequest(indexName);
IndicesAdminClient adminClient = client.admin().indices();
ActionFuture<DeleteIndexResponse> future=adminClient.delete(deleteRequest);
DeleteIndexResponse response = future.actionGet(timeout);
return response.acknowledged();
}
private boolean createIndex(String indexName) throws Exception {
Map<String, String> config = new HashMap<String, String>();
Settings settings = ImmutableSettings.settingsBuilder().put(config).build();
CreateIndexRequest createRequest = new CreateIndexRequest(indexName, settings);
IndicesAdminClient adminClient = client.admin().indices();
ActionFuture<CreateIndexResponse> future=adminClient.create(createRequest);
CreateIndexResponse createResponse = future.actionGet(timeout);
return createResponse.acknowledged();
}
private void connect() throws Exception{
Map<String, String> m = new HashMap<String, String>();
m.put("cluster.name", es_clusterName);
Settings s = ImmutableSettings.settingsBuilder().put(m).build();
client = new TransportClient(s);
try{
((TransportClient) client).addTransportAddress(new InetSocketTransportAddress(new InetSocketAddress(es_hostName, es_port)));
ClusterHealthRequest healthRequest = new ClusterHealthRequest();
client.admin().cluster().health(healthRequest).actionGet();
}
catch(Exception e)
{
client.close();
throw e;
}
}
private void disconnect() {
client.close();
}
}
delete index axios_views
Can not delete index axios_viewsReason:org.elasticsearch.transport.RemoteTransportException: [Kiber the Cruel][inet[/192.168.1.107:9300]][indices/deleteIndex]
create index axios_views
indexing leo_airports props {prop_52=a, prop_5=a, prop_51=a, prop_4=a, prop_54=a, prop_7=a, prop_53=a, prop_6=a, prop_56=a, prop_9=a, prop_55=a, prop_8=a, prop_58=a, prop_57=a, prop_10=a, prop_1=a, prop_11=a, prop_0=a, prop_12=a, prop_50=a, prop_13=a, prop_3=a, prop_14=a, prop_2=a, prop_48=a, prop_49=a, prop_43=a, prop_42=a, prop_41=a, prop_40=a, prop_47=a, prop_46=a, prop_45=a, prop_44=a, prop_39=a, prop_37=a, prop_38=a, prop_34=a, prop_33=a, prop_36=a, prop_35=a, prop_30=a, prop_32=a, prop_31=a, prop_26=a, prop_27=a, prop_28=a, prop_29=a, prop_25=a, prop_24=a, prop_23=a, prop_22=a, prop_21=a, prop_59=a, prop_20=a, prop_60=a, prop_61=a, prop_19=a, prop_62=a, prop_17=a, prop_63=a, prop_18=a, prop_64=a, prop_15=a, prop_16=a}
indexing leo_cities props {prop_0=a}
indexing leo_airports props {prop_52=a, prop_5=a, prop_51=a, prop_4=a, prop_54=a, prop_7=a, prop_53=a, prop_6=a, prop_56=a, prop_9=a, prop_55=a, prop_8=a, prop_58=a, prop_57=a, prop_10=a, prop_1=a, prop_11=a, prop_0=a, prop_12=a, prop_50=a, prop_13=a, prop_3=a, prop_14=a, prop_2=a, prop_48=a, prop_49=a, prop_43=a, prop_42=a, prop_41=a, prop_40=a, prop_47=a, prop_46=a, prop_45=a, prop_44=a, prop_39=a, prop_37=a, prop_38=a, prop_34=a, prop_33=a, prop_36=a, prop_35=a, prop_30=a, prop_32=a, prop_31=a, prop_26=a, prop_27=a, prop_28=a, prop_29=a, prop_25=a, prop_24=a, prop_23=a, prop_22=a, prop_21=a, prop_59=a, prop_20=a, prop_60=a, prop_61=a, prop_19=a, prop_62=a, prop_17=a, prop_63=a, prop_18=a, prop_64=a, prop_15=a, prop_16=a}
indexing leo_cities props {prop_0=a}
Exception in thread "main" org.elasticsearch.transport.RemoteTransportException: [Kiber the Cruel][inet[/192.168.1.107:9300]][indices/index/shard/index]
Caused by: org.elasticsearch.index.mapper.MapperParsingException: Failed to parse
at org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XContentDocumentMapper.java:470)
at org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XContentDocumentMapper.java:368)
at org.elasticsearch.index.shard.service.InternalIndexShard.prepareCreate(InternalIndexShard.java:250)
at org.elasticsearch.action.index.TransportIndexAction.shardOperationOnPrimary(TransportIndexAction.java:187)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction.performOnPrimary(TransportShardReplicationOperationAction.java:418)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction.access$100(TransportShardReplicationOperationAction.java:233)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction$1.run(TransportShardReplicationOperationAction.java:331)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.elasticsearch.common.jackson.JsonParseException: Invalid shared name reference 17; only got 0 names in buffer (invalid content)
at [Source: [B@17b6643; line: 1, column: 7]
at org.elasticsearch.common.jackson.JsonParser._constructError(JsonParser.java:1213)
at org.elasticsearch.common.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:375)
at org.elasticsearch.common.jackson.smile.SmileParser._reportInvalidSharedName(SmileParser.java:1805)
at org.elasticsearch.common.jackson.smile.SmileParser._handleFieldName(SmileParser.java:740)
at org.elasticsearch.common.jackson.smile.SmileParser.nextToken(SmileParser.java:348)
at org.elasticsearch.common.xcontent.json.JsonXContentParser.nextToken(JsonXContentParser.java:46)
at org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XContentDocumentMapper.java:400)
... 9 more
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment