No connections currently available


#1

I’m using 3(!) concurrent requests (from different threads) to a cluster (to the same bucket).
The requests are multi Get() with 1 key each.
Cluster and Buckets are static

All 3 requests hang (not returning, not even an error) !

The log states:
Couchbase.IO.ConnectionPool`1 - No connections currently available on x.x.x.x:11210

Stack trace is:

I read Avoiding TCP/IP Port Exhaustion but I don’t think that raising the server above 5000 requests is relevant here.

It also happens when I use 1 thread.
Same configuration works when using a different app.
Same call succeed several times before hanging
This scenario is consistent and happens every time I run the app.

What should I do now ?

Itay


ClientFailure when Getting concurrently
#2

Perhaps this is relevant but I’m not sure how it can help.


#3

@itay -

Can you file a bug and attach a project containing the code so I can try to reproduce?

Thanks,

-Jeff


#4

Unfortunately, I cannot attach a project as this situation is part of a complex application.
However, I’m trying to isolate the problem and I’ll try to update with more information that I’ll find.

@jmorris, Can port exhaustion is to blame when an app requests no more than ~5 ops/sec ?


#5

I can update that it is definitely an issue with multi Get: Bucket.Get<>(array)
I replace all the Get<>(array) with only 1 key using Get<>(string) and the app is not hanging (not even when multi threaded)

My recent experience did showed that Get(array) works well with many keys so perhaps it is an issue with just one key

Another important change that get me going is:

Apparently log4net introduced some issues that hang Get and caused errors like: OperationTimeout