Fewer client threads updating makes sense, and going to 1 core also seems
like it might help. But it's all a crap-shoot unless the underlying cause
gets fixed up. Both would improve things, but you'll still hit the problem
sometime, probably when doing a demo for your boss ;).

Adrien has branched the code for SOLR 4.5 in preparation for a release
candidate tentatively scheduled for next week. You might just start working
with that branch if you can rather than apply individual patches...

I suspect there'll be a couple more changes to this code (looks like
Shikhar already raised an issue for instance) before 4.5 is finally cut...

FWIW,
Erick



On Thu, Sep 12, 2013 at 2:13 AM, Tim Vaillancourt <t...@elementspace.com>wrote:

> Thanks Erick!
>
> Yeah, I think the next step will be CloudSolrServer with the SOLR-4816
> patch. I think that is a very, very useful patch by the way. SOLR-5232
> seems promising as well.
>
> I see your point on the more-shards idea, this is obviously a
> global/instance-level lock. If I really had to, I suppose I could run more
> Solr instances to reduce locking then? Currently I have 2 cores per
> instance and I could go 1-to-1 to simplify things.
>
> The good news is we seem to be more stable since changing to a bigger
> client->solr batch-size and fewer client threads updating.
>
> Cheers,
>
> Tim
>
> On 11/09/13 04:19 AM, Erick Erickson wrote:
>
>> If you use CloudSolrServer, you need to apply SOLR-4816 or use a recent
>> copy of the 4x branch. By "recent", I mean like today, it looks like Mark
>> applied this early this morning. But several reports indicate that this
>> will
>> solve your problem.
>>
>> I would expect that increasing the number of shards would make the problem
>> worse, not
>> better.
>>
>> There's also SOLR-5232...
>>
>> Best
>> Erick
>>
>>
>> On Tue, Sep 10, 2013 at 5:20 PM, Tim 
>> Vaillancourt<tim@elementspace.**com<t...@elementspace.com>
>> >wrote:
>>
>>  Hey guys,
>>>
>>> Based on my understanding of the problem we are encountering, I feel
>>> we've
>>> been able to reduce the likelihood of this issue by making the following
>>> changes to our app's usage of SolrCloud:
>>>
>>> 1) We increased our document batch size to 200 from 10 - our app batches
>>> updates to reduce HTTP requests/overhead. The theory is increasing the
>>> batch size reduces the likelihood of this issue happening.
>>> 2) We reduced to 1 application node sending updates to SolrCloud - we
>>> write
>>> Solr updates to Redis, and have previously had 4 application nodes
>>> pushing
>>> the updates to Solr (popping off the Redis queue). Reducing the number of
>>> nodes pushing to Solr reduces the concurrency on SolrCloud.
>>> 3) Less threads pushing to SolrCloud - due to the increase in batch size,
>>> we were able to go down to 5 update threads on the update-pushing-app
>>> (from
>>> 10 threads).
>>>
>>> To be clear the above only reduces the likelihood of the issue happening,
>>> and DOES NOT actually resolve the issue at hand.
>>>
>>> If we happen to encounter issues with the above 3 changes, the next steps
>>> (I could use some advice on) are:
>>>
>>> 1) Increase the number of shards (2x) - the theory here is this reduces
>>> the
>>> locking on shards because there are more shards. Am I onto something
>>> here,
>>> or will this not help at all?
>>> 2) Use CloudSolrServer - currently we have a plain-old least-connection
>>> HTTP VIP. If we go "direct" to what we need to update, this will reduce
>>> concurrency in SolrCloud a bit. Thoughts?
>>>
>>> Thanks all!
>>>
>>> Cheers,
>>>
>>> Tim
>>>
>>>
>>> On 6 September 2013 14:47, Tim 
>>> Vaillancourt<tim@elementspace.**com<t...@elementspace.com>>
>>>  wrote:
>>>
>>>  Enjoy your trip, Mark! Thanks again for the help!
>>>>
>>>> Tim
>>>>
>>>>
>>>> On 6 September 2013 14:18, Mark Miller<markrmil...@gmail.com>  wrote:
>>>>
>>>>  Okay, thanks, useful info. Getting on a plane, but ill look more at
>>>>> this
>>>>> soon. That 10k thread spike is good to know - that's no good and could
>>>>> easily be part of the problem. We want to keep that from happening.
>>>>>
>>>>> Mark
>>>>>
>>>>> Sent from my iPhone
>>>>>
>>>>> On Sep 6, 2013, at 2:05 PM, Tim 
>>>>> Vaillancourt<tim@elementspace.**com<t...@elementspace.com>
>>>>> >
>>>>> wrote:
>>>>>
>>>>>  Hey Mark,
>>>>>>
>>>>>> The farthest we've made it at the same batch size/volume was 12 hours
>>>>>> without this patch, but that isn't consistent. Sometimes we would only
>>>>>>
>>>>> get
>>>>>
>>>>>> to 6 hours or less.
>>>>>>
>>>>>> During the crash I can see an amazing spike in threads to 10k which is
>>>>>> essentially our ulimit for the JVM, but I strangely see no
>>>>>>
>>>>> "OutOfMemory:
>>>
>>>> cannot open native thread errors" that always follow this. Weird!
>>>>>>
>>>>>> We also notice a spike in CPU around the crash. The instability caused
>>>>>>
>>>>> some
>>>>>
>>>>>> shard recovery/replication though, so that CPU may be a symptom of the
>>>>>> replication, or is possibly the root cause. The CPU spikes from about
>>>>>> 20-30% utilization (system + user) to 60% fairly sharply, so the CPU,
>>>>>>
>>>>> while
>>>>>
>>>>>> spiking isn't quite "pinned" (very beefy Dell R720s - 16 core Xeons,
>>>>>>
>>>>> whole
>>>>>
>>>>>> index is in 128GB RAM, 6xRAID10 15k).
>>>>>>
>>>>>> More on resources: our disk I/O seemed to spike about 2x during the
>>>>>>
>>>>> crash
>>>>>
>>>>>> (about 1300kbps written to 3500kbps), but this may have been the
>>>>>> replication, or ERROR logging (we generally log nothing due to
>>>>>> WARN-severity unless something breaks).
>>>>>>
>>>>>> Lastly, I found this stack trace occurring frequently, and have no
>>>>>>
>>>>> idea
>>>
>>>> what it is (may be useful or not):
>>>>>>
>>>>>> "java.lang.**IllegalStateException :
>>>>>>       at
>>>>>>
>>>>> org.eclipse.jetty.server.**Response.resetBuffer(Response.**java:964)
>>>
>>>>       at org.eclipse.jetty.server.**Response.sendError(Response.**
>>>>>> java:325)
>>>>>>       at
>>>>>>
>>>>>>  org.apache.solr.servlet.**SolrDispatchFilter.sendError(**
>>> SolrDispatchFilter.java:692)
>>>
>>>>       at
>>>>>>
>>>>>>  org.apache.solr.servlet.**SolrDispatchFilter.doFilter(**
>>> SolrDispatchFilter.java:380)
>>>
>>>>       at
>>>>>>
>>>>>>  org.apache.solr.servlet.**SolrDispatchFilter.doFilter(**
>>> SolrDispatchFilter.java:155)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.servlet.**ServletHandler$CachedChain.**
>>> doFilter(ServletHandler.java:**1423)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.servlet.**ServletHandler.doHandle(**
>>> ServletHandler.java:450)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.server.**handler.ScopedHandler.handle(**
>>> ScopedHandler.java:138)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.security.**SecurityHandler.handle(**
>>> SecurityHandler.java:564)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.server.**session.SessionHandler.**
>>> doHandle(SessionHandler.java:**213)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.server.**handler.ContextHandler.**
>>> doHandle(ContextHandler.java:**1083)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.servlet.**ServletHandler.doScope(**
>>> ServletHandler.java:379)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.server.**session.SessionHandler.**
>>> doScope(SessionHandler.java:**175)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.server.**handler.ContextHandler.**
>>> doScope(ContextHandler.java:**1017)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.server.**handler.ScopedHandler.handle(**
>>> ScopedHandler.java:136)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.server.**handler.**ContextHandlerCollection.**
>>> handle(**ContextHandlerCollection.java:**258)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.server.**handler.HandlerCollection.**
>>> handle(HandlerCollection.java:**109)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.server.**handler.HandlerWrapper.handle(**
>>> HandlerWrapper.java:97)
>>>
>>>>       at org.eclipse.jetty.server.**Server.handle(Server.java:445)
>>>>>>       at
>>>>>>
>>>>> org.eclipse.jetty.server.**HttpChannel.handle(**HttpChannel.java:260)
>>>>>
>>>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.server.**HttpConnection.onFillable(**
>>> HttpConnection.java:225)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.io.**AbstractConnection$**ReadCallback.run(**
>>> AbstractConnection.java:358)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.util.thread.**QueuedThreadPool.runJob(**
>>> QueuedThreadPool.java:596)
>>>
>>>>       at
>>>>>>
>>>>>>  org.eclipse.jetty.util.thread.**QueuedThreadPool$3.run(**
>>> QueuedThreadPool.java:527)
>>>
>>>>       at java.lang.Thread.run(Thread.**java:724)"
>>>>>>
>>>>>> On your live_nodes question, I don't have historical data on this from
>>>>>>
>>>>> when
>>>>>
>>>>>> the crash occurred, which I guess is what you're looking for. I could
>>>>>>
>>>>> add
>>>>>
>>>>>> this to our monitoring for future tests, however. I'd be glad to
>>>>>>
>>>>> continue
>>>>>
>>>>>> further testing, but I think first more monitoring is needed to
>>>>>>
>>>>> understand
>>>>>
>>>>>> this further. Could we come up with a list of metrics that would be
>>>>>>
>>>>> useful
>>>>>
>>>>>> to see following another test and successful crash?
>>>>>>
>>>>>> Metrics needed:
>>>>>>
>>>>>> 1) # of live_nodes.
>>>>>> 2) Full stack traces.
>>>>>> 3) CPU used by Solr's JVM specifically (instead of system-wide).
>>>>>> 4) Solr's JVM thread count (already done)
>>>>>> 5) ?
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> Tim Vaillancourt
>>>>>>
>>>>>>
>>>>>> On 6 September 2013 13:11, Mark Miller<markrmil...@gmail.com>  wrote:
>>>>>>
>>>>>>  Did you ever get to index that long before without hitting the
>>>>>>>
>>>>>> deadlock?
>>>>>
>>>>>> There really isn't anything negative the patch could be introducing,
>>>>>>>
>>>>>> other
>>>>>
>>>>>> than allowing for some more threads to possibly run at once. If I had
>>>>>>>
>>>>>> to
>>>>>
>>>>>> guess, I would say its likely this patch fixes the deadlock issue and
>>>>>>>
>>>>>> your
>>>>>
>>>>>> seeing another issue - which looks like the system cannot keep up
>>>>>>>
>>>>>> with
>>>
>>>> the
>>>>>
>>>>>> requests or something for some reason - perhaps due to some OS
>>>>>>>
>>>>>> networking
>>>>>
>>>>>> settings or something (more guessing). Connection refused happens
>>>>>>>
>>>>>> generally
>>>>>
>>>>>> when there is nothing listening on the port.
>>>>>>>
>>>>>>> Do you see anything interesting change with the rest of the system?
>>>>>>>
>>>>>> CPU
>>>
>>>> usage spikes or something like that?
>>>>>>>
>>>>>>> Clamping down further on the overall number of threads night help
>>>>>>>
>>>>>> (which
>>>>>
>>>>>> would require making something configurable). How many nodes are
>>>>>>>
>>>>>> listed in
>>>>>
>>>>>> zk under live_nodes?
>>>>>>>
>>>>>>> Mark
>>>>>>>
>>>>>>> Sent from my iPhone
>>>>>>>
>>>>>>> On Sep 6, 2013, at 12:02 PM, Tim 
>>>>>>> Vaillancourt<tim@elementspace.**com<t...@elementspace.com>
>>>>>>> >
>>>>>>> wrote:
>>>>>>>
>>>>>>>  Hey guys,
>>>>>>>>
>>>>>>>> (copy of my post to SOLR-5216)
>>>>>>>>
>>>>>>>> We tested this patch and unfortunately encountered some serious
>>>>>>>>
>>>>>>> issues a
>>>>>
>>>>>> few hours of 500 update-batches/sec. Our update batch is 10 docs, so
>>>>>>>>
>>>>>>> we
>>>>>
>>>>>> are
>>>>>>>
>>>>>>>> writing about 5000 docs/sec total, using autoCommit to commit the
>>>>>>>>
>>>>>>> updates
>>>>>
>>>>>> (no explicit commits).
>>>>>>>>
>>>>>>>> Our environment:
>>>>>>>>
>>>>>>>>    Solr 4.3.1 w/SOLR-5216 patch.
>>>>>>>>    Jetty 9, Java 1.7.
>>>>>>>>    3 solr instances, 1 per physical server.
>>>>>>>>    1 collection.
>>>>>>>>    3 shards.
>>>>>>>>    2 replicas (each instance is a leader and a replica).
>>>>>>>>    Soft autoCommit is 1000ms.
>>>>>>>>    Hard autoCommit is 15000ms.
>>>>>>>>
>>>>>>>> After about 6 hours of stress-testing this patch, we see many of
>>>>>>>>
>>>>>>> these
>>>
>>>> stalled transactions (below), and the Solr instances start to see
>>>>>>>>
>>>>>>> each
>>>
>>>> other as down, flooding our Solr logs with "Connection Refused"
>>>>>>>>
>>>>>>> exceptions,
>>>>>>>
>>>>>>>> and otherwise no obviously-useful logs that I could see.
>>>>>>>>
>>>>>>>> I did notice some stalled transactions on both /select and /update,
>>>>>>>> however. This never occurred without this patch.
>>>>>>>>
>>>>>>>> Stack /select seems stalled on: http://pastebin.com/Y1NCrXGC
>>>>>>>> Stack /update seems stalled on: http://pastebin.com/cFLbC8Y9
>>>>>>>>
>>>>>>>> Lastly, I have a summary of the ERROR-severity logs from this
>>>>>>>>
>>>>>>> 24-hour
>>>
>>>> soak.
>>>>>>>
>>>>>>>> My script "normalizes" the ERROR-severity stack traces and returns
>>>>>>>>
>>>>>>> them
>>>>>
>>>>>> in
>>>>>>>
>>>>>>>> order of occurrence.
>>>>>>>>
>>>>>>>> Summary of my solr.log: http://pastebin.com/pBdMAWeb
>>>>>>>>
>>>>>>>> Thanks!
>>>>>>>>
>>>>>>>> Tim Vaillancourt
>>>>>>>>
>>>>>>>>
>>>>>>>> On 6 September 2013 07:27, Markus Jelsma<
>>>>>>>>
>>>>>>> markus.jel...@openindex.io>
>>>
>>>> wrote:
>>>>>>>
>>>>>>>> Thanks!
>>>>>>>>>
>>>>>>>>> -----Original message-----
>>>>>>>>>
>>>>>>>>>> From:Erick 
>>>>>>>>>> Erickson<erickerickson@gmail.**com<erickerick...@gmail.com>
>>>>>>>>>> >
>>>>>>>>>> Sent: Friday 6th September 2013 16:20
>>>>>>>>>> To: solr-user@lucene.apache.org
>>>>>>>>>> Subject: Re: SolrCloud 4.x hangs under high update volume
>>>>>>>>>>
>>>>>>>>>> Markus:
>>>>>>>>>>
>>>>>>>>>> See: 
>>>>>>>>>> https://issues.apache.org/**jira/browse/SOLR-5216<https://issues.apache.org/jira/browse/SOLR-5216>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Sep 4, 2013 at 11:04 AM, Markus Jelsma
>>>>>>>>>> <markus.jel...@openindex.io>**wrote:
>>>>>>>>>>
>>>>>>>>>>  Hi Mark,
>>>>>>>>>>>
>>>>>>>>>>> Got an issue to watch?
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Markus
>>>>>>>>>>>
>>>>>>>>>>> -----Original message-----
>>>>>>>>>>>
>>>>>>>>>>>> From:Mark Miller<markrmil...@gmail.com>
>>>>>>>>>>>> Sent: Wednesday 4th September 2013 16:55
>>>>>>>>>>>> To: solr-user@lucene.apache.org
>>>>>>>>>>>> Subject: Re: SolrCloud 4.x hangs under high update volume
>>>>>>>>>>>>
>>>>>>>>>>>> I'm going to try and fix the root cause for 4.5 - I've suspected
>>>>>>>>>>>>
>>>>>>>>>>> what it
>>>>>>>>>
>>>>>>>>>> is since early this year, but it's never personally been an
>>>>>>>>>>>
>>>>>>>>>> issue,
>>>
>>>> so
>>>>>
>>>>>> it's
>>>>>>>>>
>>>>>>>>>> rolled along for a long time.
>>>>>>>>>>>
>>>>>>>>>>>> Mark
>>>>>>>>>>>>
>>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>>
>>>>>>>>>>>> On Sep 3, 2013, at 4:30 PM, Tim Vaillancourt<
>>>>>>>>>>>>
>>>>>>>>>>> t...@elementspace.com>
>>>>>
>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hey guys,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I am looking into an issue we've been having with SolrCloud
>>>>>>>>>>>>>
>>>>>>>>>>>> since
>>>
>>>> the
>>>>>>>>>
>>>>>>>>>> beginning of our testing, all the way from 4.1 to 4.3 (haven't
>>>>>>>>>>>>>
>>>>>>>>>>>> tested
>>>>>>>>>
>>>>>>>>>> 4.4.0
>>>>>>>>>>>
>>>>>>>>>>>> yet). I've noticed other users with this same issue, so I'd
>>>>>>>>>>>>>
>>>>>>>>>>>> really
>>>>>
>>>>>> like to
>>>>>>>>>>>
>>>>>>>>>>>> get to the bottom of it.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Under a very, very high rate of updates (2000+/sec), after 1-12
>>>>>>>>>>>>>
>>>>>>>>>>>> hours
>>>>>>>>>
>>>>>>>>>> we
>>>>>>>>>>>
>>>>>>>>>>>> see stalled transactions that snowball to consume all Jetty
>>>>>>>>>>>>>
>>>>>>>>>>>> threads in
>>>>>>>>>
>>>>>>>>>> the
>>>>>>>>>>>
>>>>>>>>>>>> JVM. This eventually causes the JVM to hang with most threads
>>>>>>>>>>>>>
>>>>>>>>>>>> waiting
>>>>>>>>>
>>>>>>>>>> on
>>>>>>>>>>>
>>>>>>>>>>>> the condition/stack provided at the bottom of this message. At
>>>>>>>>>>>>>
>>>>>>>>>>>> this
>>>>>
>>>>>> point
>>>>>>>>>>>
>>>>>>>>>>>> SolrCloud instances then start to see their neighbors (who also
>>>>>>>>>>>>>
>>>>>>>>>>>> have
>>>>>>>>>
>>>>>>>>>> all
>>>>>>>>>>>
>>>>>>>>>>>> threads hung) as down w/"Connection Refused", and the shards
>>>>>>>>>>>>>
>>>>>>>>>>>> become
>>>>>
>>>>>> "down"
>>>>>>>>>>>
>>>>>>>>>>>> in state. Sometimes a node or two survives and just returns
>>>>>>>>>>>>>
>>>>>>>>>>>> 503s
>>>
>>>> "no
>>>>>>>>>
>>>>>>>>>> server
>>>>>>>>>>>
>>>>>>>>>>>> hosting shard" errors.
>>>>>>>>>>>>>
>>>>>>>>>>>>> As a workaround/experiment, we have tuned the number of threads
>>>>>>>>>>>>>
>>>>>>>>>>>> sending
>>>>>>>>>
>>>>>>>>>> updates to Solr, as well as the batch size (we batch updates
>>>>>>>>>>>>>
>>>>>>>>>>>> from
>>>
>>>> client ->
>>>>>>>>>>>
>>>>>>>>>>>> solr), and the Soft/Hard autoCommits, all to no avail. Turning
>>>>>>>>>>>>>
>>>>>>>>>>>> off
>>>>>
>>>>>> Client-to-Solr batching (1 update = 1 call to Solr), which also
>>>>>>>>>>>>>
>>>>>>>>>>>> did not
>>>>>>>>>
>>>>>>>>>> help. Certain combinations of update threads and batch sizes
>>>>>>>>>>>>>
>>>>>>>>>>>> seem
>>>
>>>> to
>>>>>>>>>
>>>>>>>>>> mask/help the problem, but not resolve it entirely.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Our current environment is the following:
>>>>>>>>>>>>> - 3 x Solr 4.3.1 instances in Jetty 9 w/Java 7.
>>>>>>>>>>>>> - 3 x Zookeeper instances, external Java 7 JVM.
>>>>>>>>>>>>> - 1 collection, 3 shards, 2 replicas (each node is a leader of
>>>>>>>>>>>>>
>>>>>>>>>>>> 1
>>>
>>>> shard
>>>>>>>>>
>>>>>>>>>> and
>>>>>>>>>>>
>>>>>>>>>>>> a replica of 1 shard).
>>>>>>>>>>>>> - Log4j 1.2 for Solr logs, set to WARN. This log has no
>>>>>>>>>>>>>
>>>>>>>>>>>> movement
>>>
>>>> on a
>>>>>>>>>
>>>>>>>>>> good
>>>>>>>>>>>
>>>>>>>>>>>> day.
>>>>>>>>>>>>> - 5000 max jetty threads (well above what we use when we are
>>>>>>>>>>>>>
>>>>>>>>>>>> healthy),
>>>>>>>>>
>>>>>>>>>> Linux-user threads ulimit is 6000.
>>>>>>>>>>>>> - Occurs under Jetty 8 or 9 (many versions).
>>>>>>>>>>>>> - Occurs under Java 1.6 or 1.7 (several minor versions).
>>>>>>>>>>>>> - Occurs under several JVM tunings.
>>>>>>>>>>>>> - Everything seems to point to Solr itself, and not a Jetty or
>>>>>>>>>>>>>
>>>>>>>>>>>> Java
>>>>>
>>>>>> version
>>>>>>>>>>>
>>>>>>>>>>>> (I hope I'm wrong).
>>>>>>>>>>>>>
>>>>>>>>>>>>> The stack trace that is holding up all my Jetty QTP threads is
>>>>>>>>>>>>>
>>>>>>>>>>>> the
>>>>>
>>>>>> following, which seems to be waiting on a lock that I would
>>>>>>>>>>>>>
>>>>>>>>>>>> very
>>>
>>>> much
>>>>>>>>>
>>>>>>>>>> like
>>>>>>>>>>>
>>>>>>>>>>>> to understand further:
>>>>>>>>>>>>>
>>>>>>>>>>>>> "java.lang.Thread.State: WAITING (parking)
>>>>>>>>>>>>>   at sun.misc.Unsafe.park(Native Method)
>>>>>>>>>>>>>   - parking to wait for<0x00000007216e68d8>  (a
>>>>>>>>>>>>> java.util.concurrent.**Semaphore$NonfairSync)
>>>>>>>>>>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> java.util.concurrent.locks.**LockSupport.park(LockSupport.**
>>>>>>>>> java:186)
>>>>>>>>>
>>>>>>>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> java.util.concurrent.locks.**AbstractQueuedSynchronizer.**
>>> parkAndCheckInterrupt(**AbstractQueuedSynchronizer.**java:834)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> java.util.concurrent.locks.**AbstractQueuedSynchronizer.**
>>> doAcquireSharedInterruptibly(**AbstractQueuedSynchronizer.**java:994)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> java.util.concurrent.locks.**AbstractQueuedSynchronizer.**
>>> acquireSharedInterruptibly(**AbstractQueuedSynchronizer.**java:1303)
>>>
>>>>   at java.util.concurrent.**Semaphore.acquire(Semaphore.**java:317)
>>>>>>>>>>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.util.**AdjustableSemaphore.acquire(**
>>> AdjustableSemaphore.java:61)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.update.**SolrCmdDistributor.submit(**
>>> SolrCmdDistributor.java:418)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.update.**SolrCmdDistributor.submit(**
>>> SolrCmdDistributor.java:368)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.update.**SolrCmdDistributor.flushAdds(**
>>> SolrCmdDistributor.java:300)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.update.**SolrCmdDistributor.finish(**
>>> SolrCmdDistributor.java:96)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.update.**processor.**
>>> DistributedUpdateProcessor.**doFinish(**DistributedUpdateProcessor.**
>>> java:462)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.update.**processor.**
>>> DistributedUpdateProcessor.**finish(**DistributedUpdateProcessor.**
>>> java:1178)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.handler.**ContentStreamHandlerBase.**
>>> handleRequestBody(**ContentStreamHandlerBase.java:**83)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.handler.**RequestHandlerBase.**handleRequest(**
>>> RequestHandlerBase.java:135)
>>>
>>>>   at org.apache.solr.core.SolrCore.**execute(SolrCore.java:1820)
>>>>>>>>>>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.servlet.**SolrDispatchFilter.execute(**
>>> SolrDispatchFilter.java:656)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.servlet.**SolrDispatchFilter.doFilter(**
>>> SolrDispatchFilter.java:359)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.solr.servlet.**SolrDispatchFilter.doFilter(**
>>> SolrDispatchFilter.java:155)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.servlet.**ServletHandler$CachedChain.**
>>> doFilter(ServletHandler.java:**1486)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.servlet.**ServletHandler.doHandle(**
>>> ServletHandler.java:503)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.server.**handler.ScopedHandler.handle(**
>>> ScopedHandler.java:138)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.security.**SecurityHandler.handle(**
>>> SecurityHandler.java:564)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.server.**session.SessionHandler.**
>>> doHandle(SessionHandler.java:**213)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.server.**handler.ContextHandler.**
>>> doHandle(ContextHandler.java:**1096)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.servlet.**ServletHandler.doScope(**
>>> ServletHandler.java:432)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.server.**session.SessionHandler.**
>>> doScope(SessionHandler.java:**175)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.server.**handler.ContextHandler.**
>>> doScope(ContextHandler.java:**1030)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.server.**handler.ScopedHandler.handle(**
>>> ScopedHandler.java:136)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.server.**handler.**ContextHandlerCollection.*
>>> *handle(**ContextHandlerCollection.java:**201)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.server.**handler.HandlerCollection.**
>>> handle(HandlerCollection.java:**109)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.server.**handler.HandlerWrapper.handle(**
>>> HandlerWrapper.java:97)
>>>
>>>>   at org.eclipse.jetty.server.**Server.handle(Server.java:445)
>>>>>>>>>>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.server.**HttpChannel.handle(**
>>>>>>>>> HttpChannel.java:268)
>>>>>>>>>
>>>>>>>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.server.**HttpConnection.onFillable(**
>>> HttpConnection.java:229)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.io.**AbstractConnection$**ReadCallback.run(**
>>> AbstractConnection.java:358)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.util.thread.**QueuedThreadPool.runJob(**
>>> QueuedThreadPool.java:601)
>>>
>>>>   at
>>>>>>>>>>>>>
>>>>>>>>>>>> org.eclipse.jetty.util.thread.**QueuedThreadPool$3.run(**
>>> QueuedThreadPool.java:532)
>>>
>>>>   at java.lang.Thread.run(Thread.**java:724)"
>>>>>>>>>>>>>
>>>>>>>>>>>>> Some questions I had were:
>>>>>>>>>>>>> 1) What exclusive locks does SolrCloud "make" when performing
>>>>>>>>>>>>>
>>>>>>>>>>>> an
>>>
>>>> update?
>>>>>>>>>>>
>>>>>>>>>>>> 2) Keeping in mind I do not read or write java (sorry :D),
>>>>>>>>>>>>>
>>>>>>>>>>>> could
>>>
>>>> someone
>>>>>>>>>>>
>>>>>>>>>>>> help me understand "what" solr is locking in this case at
>>>>>>>>>>>>>
>>>>>>>>>>>> "org.apache.solr.util.**AdjustableSemaphore.acquire(**
>>> AdjustableSemaphore.java:61)"
>>>
>>>> when performing an update? That will help me understand where
>>>>>>>>>>>>>
>>>>>>>>>>>> to
>>>
>>>> look
>>>>>>>>>
>>>>>>>>>> next.
>>>>>>>>>>>
>>>>>>>>>>>> 3) It seems all threads in this state are waiting for
>>>>>>>>>>>>>
>>>>>>>>>>>> "0x00000007216e68d8",
>>>>>>>>>>>
>>>>>>>>>>>> is there a way to tell what "0x00000007216e68d8" is?
>>>>>>>>>>>>> 4) Is there a limit to how many updates you can do in
>>>>>>>>>>>>>
>>>>>>>>>>>> SolrCloud?
>>>
>>>> 5) Wild-ass-theory: would more shards provide more locks
>>>>>>>>>>>>>
>>>>>>>>>>>> (whatever
>>>>>
>>>>>> they
>>>>>>>>>
>>>>>>>>>> are) on update, and thus more update throughput?
>>>>>>>>>>>>>
>>>>>>>>>>>>> To those interested, I've provided a stacktrace of 1 of 3 nodes
>>>>>>>>>>>>>
>>>>>>>>>>>> at
>>>>
>>>>

Reply via email to