Re: Simultaneous indexing and searching in 2 threads gets Failed to execute phase exception...

2015-01-26 Thread TimOnGmail
I could do that - I'll have to see if I can trim it down to a reasonable 
size without all the unrelated code in it.

Is it obvious on GitHub where people can submit error samples? I haven't 
done that before.

- Tim

On Friday, January 23, 2015 at 1:27:05 AM UTC-8, David Pilato wrote:

 Yes I am.

 Client is thread safe. Any chance you could share on github a small 
 project which reproduce this error?

 David

 Le 23 janv. 2015 à 01:18, TimOnGmail timb...@gmail.com javascript: a 
 écrit :

 I changed the code to use a Singleton.  Even so, when I made the indexing 
 and searching happen in 2 different threads (without waiting for responses 
 - just ignoring the returned future), it failed similarly - even if I 
 waited for awhile before issuing the search.

 If I did the same thing, but didn't do it in 2 threads, it succeeded.

 So I am wondering if there is some issue when accessing the Singleton 
 client in different threads, some non-threadsafe issue at work.

 David, are you a dev on the Elasticsearch team?  If not, I hope one of 
 them chimes in here.

 - Tim



-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/c405d2af-cc0f-4803-8197-7791b0133845%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Simultaneous indexing and searching in 2 threads gets Failed to execute phase exception...

2015-01-22 Thread TimOnGmail
I changed the code to use a Singleton.  Even so, when I made the indexing 
and searching happen in 2 different threads (without waiting for responses 
- just ignoring the returned future), it failed similarly - even if I 
waited for awhile before issuing the search.

If I did the same thing, but didn't do it in 2 threads, it succeeded.

So I am wondering if there is some issue when accessing the Singleton 
client in different threads, some non-threadsafe issue at work.

David, are you a dev on the Elasticsearch team?  If not, I hope one of them 
chimes in here.

- Tim

On Thursday, January 22, 2015 at 2:30:07 PM UTC-8, David Pilato wrote:

 Answers inlined 

 --
 David ;-)
 Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs

 Le 22 janv. 2015 à 20:19, TimOnGmail timb...@gmail.com javascript: a 
 écrit :

 Thanks for your suggestions!

 I'm generally created a fresh client for each index/search request.  So 
 that's not correct?  I had thought it was better to do it that way.


 No. You should create a singleton.


 Any problems with using separate clients in the same VM, different 
 threads, that you know of?


 You don't need them so that's a waste of resources IMHO.

 The indexes are already created, incidentally; the calls I'm making are in 
 adding items to the index or in searching the index only.


 That's super strange that shards are failing if the index has been created 
 with success.

 - Tim


 On Wednesday, January 21, 2015 at 10:57:52 PM UTC-8, David Pilato wrote:

 Some ideas:

 You can/should share the same client within all threads. So only one 
 client for the full JVM.
 You should create first the index and wait for the index to be created, 
 using actionGet(). It's a quick operation. Then run your code as you wrote.

 My 2 cents.

 David

 Le 22 janv. 2015 à 06:12, TimOnGmail timb...@gmail.com a écrit :

 I have a situation where, using the Java API, I initiate a bunch of 
 indexing operations, but throw away the Future object (I don't need the 
 return status).  This is so I can do a lot of indexing reasonably 
 asynchronously, so I don't have to hold up the GUI that triggers these 
 calls.

 However, if I fire off these indexing operations, and immediately after 
 do a search operation on the same index, I get the following exception:

 Caused by: org.elasticsearch.action.search.SearchPhaseExecutionException: 
 Failed to execute phase [init_scan], all shards failed
 at 
 org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult(TransportSearchTypeAction.java:233)
  
 [elasticsearch-1.4.1.jar:]
 at 
 org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction$1.onFailure(TransportSearchTypeAction.java:179)
  
 [elasticsearch-1.4.1.jar:]
 at 
 org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:565)
  
 [elasticsearch-1.4.1.jar:]
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  
 [rt.jar:1.7.0_60]
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  
 [rt.jar:1.7.0_60]
 ... 1 more


 ... however, if I wait awhile after indexing before searching, the search 
 succeeds, no errors.

 Does anyone know what is going on there?  Shouldn't initiating an index 
 operation asynchronously not affect search operations made in a different 
 client?

 This is happening only when I use 2 separate threads (and two separate 
 TransportClients) for each operation... thus:

 1. Thread 1: Fork Thread 2
 2. Thread 2: Create new TransportClient; Index list of items, not waiting 
 for Future objects (i.e. not calling actionGet())
 3. Thread 1: While Thread 2 is running, create new TransportClient and do 
 search

 4. Get exception above 


 ... compared to:

 1. Thread 1: Fork Thread 2
 2. Thread 2: Create new TransportClient; Index list of items, not waiting 
 for Future objects (i.e. not calling actionGet())

 3. Wait a bit

 4. Thread 1: (Thread 2 has presumably finished by now); create new 
 TransportClient and do search
 5. Don't get exception above 

  

 ... also, if, instead, I do it one thread:

 1. Create new TransportClient; Index list of items, not waiting for 
 Future objects (i.e. not calling actionGet())
 2. Close TransportClient
 3. Create new TransportClient; do search


 ... it works fine.  So it seems to have something to do with simultaneous 
 actions on 2 different TransportClients to the same index.  It might also 
 have something to do with internal client state, even though I'm using 2 
 separate client objects.

 Does this sound unusual to anyone?

 - Tim

  -- 
 You received this message because you are subscribed to the Google Groups 
 elasticsearch group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to elasticsearc...@googlegroups.com.
 To view this discussion on the web visit 
 https://groups.google.com/d/msgid/elasticsearch/b1992277-4e72-4ba9-9cdd-f00a6917e55a

Re: Simultaneous indexing and searching in 2 threads gets Failed to execute phase exception...

2015-01-22 Thread TimOnGmail
Thanks for your suggestions!

I'm generally created a fresh client for each index/search request.  So 
that's not correct?  I had thought it was better to do it that way.

Any problems with using separate clients in the same VM, different threads, 
that you know of?

The indexes are already created, incidentally; the calls I'm making are in 
adding items to the index or in searching the index only.

- Tim


On Wednesday, January 21, 2015 at 10:57:52 PM UTC-8, David Pilato wrote:

 Some ideas:

 You can/should share the same client within all threads. So only one 
 client for the full JVM.
 You should create first the index and wait for the index to be created, 
 using actionGet(). It's a quick operation. Then run your code as you wrote.

 My 2 cents.

 David

 Le 22 janv. 2015 à 06:12, TimOnGmail timb...@gmail.com javascript: a 
 écrit :

 I have a situation where, using the Java API, I initiate a bunch of 
 indexing operations, but throw away the Future object (I don't need the 
 return status).  This is so I can do a lot of indexing reasonably 
 asynchronously, so I don't have to hold up the GUI that triggers these 
 calls.

 However, if I fire off these indexing operations, and immediately after do 
 a search operation on the same index, I get the following exception:

 Caused by: org.elasticsearch.action.search.SearchPhaseExecutionException: 
 Failed to execute phase [init_scan], all shards failed
 at 
 org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult(TransportSearchTypeAction.java:233)
  
 [elasticsearch-1.4.1.jar:]
 at 
 org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction$1.onFailure(TransportSearchTypeAction.java:179)
  
 [elasticsearch-1.4.1.jar:]
 at 
 org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:565)
  
 [elasticsearch-1.4.1.jar:]
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  
 [rt.jar:1.7.0_60]
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  
 [rt.jar:1.7.0_60]
 ... 1 more


 ... however, if I wait awhile after indexing before searching, the search 
 succeeds, no errors.

 Does anyone know what is going on there?  Shouldn't initiating an index 
 operation asynchronously not affect search operations made in a different 
 client?

 This is happening only when I use 2 separate threads (and two separate 
 TransportClients) for each operation... thus:

 1. Thread 1: Fork Thread 2
 2. Thread 2: Create new TransportClient; Index list of items, not waiting 
 for Future objects (i.e. not calling actionGet())
 3. Thread 1: While Thread 2 is running, create new TransportClient and do 
 search

 4. Get exception above 


 ... compared to:

 1. Thread 1: Fork Thread 2
 2. Thread 2: Create new TransportClient; Index list of items, not waiting 
 for Future objects (i.e. not calling actionGet())

 3. Wait a bit

 4. Thread 1: (Thread 2 has presumably finished by now); create new 
 TransportClient and do search
 5. Don't get exception above 

  

 ... also, if, instead, I do it one thread:

 1. Create new TransportClient; Index list of items, not waiting for Future 
 objects (i.e. not calling actionGet())
 2. Close TransportClient
 3. Create new TransportClient; do search


 ... it works fine.  So it seems to have something to do with simultaneous 
 actions on 2 different TransportClients to the same index.  It might also 
 have something to do with internal client state, even though I'm using 2 
 separate client objects.

 Does this sound unusual to anyone?

 - Tim

  -- 
 You received this message because you are subscribed to the Google Groups 
 elasticsearch group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to elasticsearc...@googlegroups.com javascript:.
 To view this discussion on the web visit 
 https://groups.google.com/d/msgid/elasticsearch/b1992277-4e72-4ba9-9cdd-f00a6917e55a%40googlegroups.com
  
 https://groups.google.com/d/msgid/elasticsearch/b1992277-4e72-4ba9-9cdd-f00a6917e55a%40googlegroups.com?utm_medium=emailutm_source=footer
 .
 For more options, visit https://groups.google.com/d/optout.



-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/b81b3d52-a3c0-4222-9009-117ea6f28c93%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Simultaneous indexing and searching in 2 threads gets Failed to execute phase exception...

2015-01-21 Thread TimOnGmail
I have a situation where, using the Java API, I initiate a bunch of 
indexing operations, but throw away the Future object (I don't need the 
return status).  This is so I can do a lot of indexing reasonably 
asynchronously, so I don't have to hold up the GUI that triggers these 
calls.

However, if I fire off these indexing operations, and immediately after do 
a search operation on the same index, I get the following exception:

Caused by: org.elasticsearch.action.search.SearchPhaseExecutionException: 
Failed to execute phase [init_scan], all shards failed
at 
org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult(TransportSearchTypeAction.java:233)
 
[elasticsearch-1.4.1.jar:]
at 
org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction$1.onFailure(TransportSearchTypeAction.java:179)
 
[elasticsearch-1.4.1.jar:]
at 
org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:565)
 
[elasticsearch-1.4.1.jar:]
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[rt.jar:1.7.0_60]
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[rt.jar:1.7.0_60]
... 1 more


... however, if I wait awhile after indexing before searching, the search 
succeeds, no errors.

Does anyone know what is going on there?  Shouldn't initiating an index 
operation asynchronously not affect search operations made in a different 
client?

This is happening only when I use 2 separate threads (and two separate 
TransportClients) for each operation... thus:

1. Thread 1: Fork Thread 2
2. Thread 2: Create new TransportClient; Index list of items, not waiting 
for Future objects (i.e. not calling actionGet())
3. Thread 1: While Thread 2 is running, create new TransportClient and do 
search

4. Get exception above 


... compared to:

1. Thread 1: Fork Thread 2
2. Thread 2: Create new TransportClient; Index list of items, not waiting 
for Future objects (i.e. not calling actionGet())

3. Wait a bit

4. Thread 1: (Thread 2 has presumably finished by now); create new 
TransportClient and do search
5. Don't get exception above 

 

... also, if, instead, I do it one thread:

1. Create new TransportClient; Index list of items, not waiting for Future 
objects (i.e. not calling actionGet())
2. Close TransportClient
3. Create new TransportClient; do search


... it works fine.  So it seems to have something to do with simultaneous 
actions on 2 different TransportClients to the same index.  It might also 
have something to do with internal client state, even though I'm using 2 
separate client objects.

Does this sound unusual to anyone?

- Tim

-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/b1992277-4e72-4ba9-9cdd-f00a6917e55a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


If I index a bunch of items, then search without waiting for the indexing to finish, I get Failed to execute phase

2015-01-21 Thread TimOnGmail
I have a situation where, using the Java API, I initiate a bunch of 
indexing operations, but throw away the Future object (I don't need the 
return status).  This is so I can do a lot of indexing reasonably 
asynchronously, so I don't have to hold up the GUI that triggers these 
calls.

However, if I fire off these indexing operations, and immediately after do 
a search operation on the same index, I get the following exception:

Caused by: org.elasticsearch.action.search.SearchPhaseExecutionException: 
Failed to execute phase [init_scan], all shards failed
at 
org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult(TransportSearchTypeAction.java:233)
 
[elasticsearch-1.4.1.jar:]
at 
org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction$1.onFailure(TransportSearchTypeAction.java:179)
 
[elasticsearch-1.4.1.jar:]
at 
org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:565)
 
[elasticsearch-1.4.1.jar:]
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[rt.jar:1.7.0_60]
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[rt.jar:1.7.0_60]
... 1 more


... however, if I wait awhile after indexing before searching, the search 
succeeds, no errors.

Does anyone know what is going on there?  Shouldn't initiating an index 
operation asynchronously not affect search operations made on the same 
client?

I'm using a TransportClient, the same one for all operations.

- Tim

-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/7be3f287-edb3-4979-93c0-38e98317a545%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: If I index a bunch of items, then search without waiting for the indexing to finish, I get Failed to execute phase

2015-01-21 Thread TimOnGmail
Final bit of info, and this seems important; one TransportClient is being 
run in one thread, the other in another... so it goes like this:

Thread 1: Fork Thread 1
Thread 2: Create new TransportClient; Index list of items, not waiting for 
Future objects (i.e. not calling actionGet())
Thread 1: While Thread 2 is running, create new TransportClient and do 
search

... that's when I get the exception above.

- Tim




-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/6171a5f7-ee20-4f7b-9d41-a8d2016f2dd6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: If I index a bunch of items, then search without waiting for the indexing to finish, I get Failed to execute phase

2015-01-21 Thread TimOnGmail
I made a mistake in my statement above - I am using different 
TransportClients for the indexing and the searching... so, one is doing the 
indexing, and while that is going on, I'm doing the searching on a 
different one.

- Tim




-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/5011f21b-cbde-4bb8-9630-895a9d4fc684%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: If I index a bunch of items, then search without waiting for the indexing to finish, I get Failed to execute phase

2015-01-21 Thread TimOnGmail
I wish I could just go back and edit prior postings. :-)

... I should mention, if I do the above, but don't create 2 threads - that 
is, synchronously index each item, close the TransportClient, create 
another TransportClient and do the search, it works.  So this is ONLY 
happening when the two actions are happening in different threads.

- Tim




-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/8cb89867-d5fa-43f5-8325-d89a50ba5f82%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: When did capitalization change in class names? (ElasticSearchException vs ElasticsearchException)..

2014-12-03 Thread TimOnGmail
Thanks, Jörg!  I thought it might be something like that (I haven't 
upgraded for a long time :-) ).

- Tim

On Wednesday, December 3, 2014 3:50:06 AM UTC-8, Jörg Prante wrote:

 The correct spelling is Elasticsearch.

 The change was applied on 6 Jan 2014 almost a year ago for ES 1.0

 See


 https://github.com/elasticsearch/elasticsearch/commit/fa16969360ea43667ad11f827bbf86718c18fcc6

 Jörg

 On Wed, Dec 3, 2014 at 1:17 AM, TimOnGmail timb...@gmail.com 
 javascript: wrote:

 Hey folks...

 I'm upgrading to the newest version of Elastic Search, and noticed that 
 ElasticSearchException was renamed to ElasticsearchException.

 Was this done across the board for lots of classes? Just this class? A 
 mistake?  Just curious what drove this.

 - Tim

  -- 
 You received this message because you are subscribed to the Google Groups 
 elasticsearch group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to elasticsearc...@googlegroups.com javascript:.
 To view this discussion on the web visit 
 https://groups.google.com/d/msgid/elasticsearch/6bcfec8b-c0df-4265-b21b-0d287b6f92af%40googlegroups.com
  
 https://groups.google.com/d/msgid/elasticsearch/6bcfec8b-c0df-4265-b21b-0d287b6f92af%40googlegroups.com?utm_medium=emailutm_source=footer
 .
 For more options, visit https://groups.google.com/d/optout.




-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/48d1f7fa-f0e2-4d84-9dac-53eb84b88cf8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


When did capitalization change in class names? (ElasticSearchException vs ElasticsearchException)..

2014-12-02 Thread TimOnGmail
Hey folks...

I'm upgrading to the newest version of Elastic Search, and noticed that 
ElasticSearchException was renamed to ElasticsearchException.

Was this done across the board for lots of classes? Just this class? A 
mistake?  Just curious what drove this.

- Tim

-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/6bcfec8b-c0df-4265-b21b-0d287b6f92af%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.