Re: Simultaneous indexing and searching in 2 threads gets Failed to execute phase exception...
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...
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...
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...
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
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
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
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
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)..
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)..
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.