I am using same connection once the connection is established. What I see 
so far is the inconsistency in the establishing the connection itself. As 
pasted above in the logs, for same password/user name, same setup, same 
test program, same memcached bin, if I run the test program multiple times 
from command line,  memcached_set either returns success or the 
timeout(MEMCACHED_TIMEOUT). The logs from the server side shows......

 going from conn_read to conn_closing
<36 connection closed.
36: going from conn_closing to conn_closed

If the connection establishment is successful then I can set/get "n" number 
of values without any issue. 
  

On Wednesday, April 26, 2017 at 11:57:43 PM UTC-7, Dormando wrote:
>
> Are you reusing connections, or re-SASL'ing every time? I wonder if the 
> underlying sasl daemon/mechanism is failing. SASL stuff is only ever 
> checked when the connection is first established. All requests after the 
> connection setup is fine. 
>
> On Wed, 26 Apr 2017, watul123 wrote: 
>
> > I think the binary protocol just works as expected, there is nothing to 
> do with length as well, it was my test program where I commented out the 
> below 
> > line.... 
> > "memcached_behavior_set(cache, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, 1);" 
> > 
> > After fixing(un commenting) this line, no matter what length the 
> key/value are , it's success all the time. 
> > 
> > The actual issue is with SASL- connection gets closed all of sudden like 
> below, and the app gets Set Timeout, where as same thing gives success some 
> time 
> > Failed 
> > <36 new binary client connection. 
> > 36: going from conn_new_cmd to conn_waiting 
> > 36: going from conn_waiting to conn_read 
> > 36: going from conn_read to conn_parse_cmd 
> > <36 Read binary protocol data: 
> > <36    0x80 0x20 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x02 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > authenticated() in cmd 0x20 is true 
> > >36 Writing bin response: 
> > >36   0x81 0x20 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x05 
> > >36   0x00 0x02 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > 36: going from conn_parse_cmd to conn_mwrite 
> > 36: going from conn_mwrite to conn_new_cmd 
> > 36: going from conn_new_cmd to conn_waiting 
> > 36: going from conn_waiting to conn_read 
> > 36: going from conn_read to conn_closing 
> > <36 connection closed. 
> > 
> > Success: 
> > <36 new binary client connection. 
> > 36: going from conn_new_cmd to conn_waiting 
> > 36: going from conn_waiting to conn_read 
> > 36: going from conn_read to conn_parse_cmd 
> > <36 Read binary protocol data: 
> > <36    0x80 0x20 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x02 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > authenticated() in cmd 0x20 is true 
> > >36 Writing bin response: 
> > >36   0x81 0x20 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x05 
> > >36   0x00 0x02 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > 36: going from conn_parse_cmd to conn_mwrite 
> > 36: going from conn_mwrite to conn_new_cmd 
> > 36: going from conn_new_cmd to conn_waiting 
> > 36: going from conn_waiting to conn_read 
> > 36: going from conn_read to conn_parse_cmd 
> > <36 Read binary protocol data: 
> > <36    0x80 0x21 0x00 0x05 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x16 
> > <36    0x00 0x02 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > authenticated() in cmd 0x21 is true 
> > 36: going from conn_parse_cmd to conn_nread 
> > mech:  ``PLAIN'' with 17 bytes of data 
> > INFO: User <real@awpcabm02> failed to authenticate 
> > sasl result code:  0 
> > >36 Writing bin response: 
> > >36   0x81 0x21 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x0d 
> > >36   0x00 0x02 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > 36: going from conn_nread to conn_mwrite 
> > 36: going from conn_mwrite to conn_new_cmd 
> > 36: going from conn_new_cmd to conn_waiting 
> > 36: going from conn_waiting to conn_read 
> > 36: going from conn_read to conn_parse_cmd 
> > <36 Read binary protocol data: 
> > <36    0x80 0x01 0x00 0x17 
> > <36    0x08 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x39 
> > <36    0x00 0x01 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > authenticated() in cmd 0x01 is true 
> > 36: going from conn_parse_cmd to conn_nread 
> > <36 SET abcefghjklmnopqrstvwxyz Value len is 26 
> > > NOT FOUND abcefghjklmnopqrstvwxyz 
> > >36 Writing bin response: 
> > >36   0x81 0x01 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x01 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x01 
> > 36: going from conn_nread to conn_mwrite 
> > 36: going from conn_mwrite to conn_new_cmd 
> > 36: going from conn_new_cmd to conn_waiting 
> > 36: going from conn_waiting to conn_read 
> > 36: going from conn_read to conn_parse_cmd 
> > <36 Read binary protocol data: 
> > <36    0x80 0x0c 0x00 0x17 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x17 
> > <36    0x00 0x03 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > authenticated() in cmd 0x0c is true 
> > 36: going from conn_parse_cmd to conn_nread 
> > <36 GET abcefghjklmnopqrstvwxyz 
> > > FOUND KEY abcefghjklmnopqrstvwxyz 
> > >36 Writing bin response: 
> > >36   0x81 0x0c 0x00 0x17 
> > >36   0x04 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x35 
> > >36   0x00 0x03 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > 36: going from conn_nread to conn_mwrite 
> > 36: going from conn_mwrite to conn_new_cmd 
> > 36: going from conn_new_cmd to conn_waiting 
> > 36: going from conn_waiting to conn_read 
> > 36: going from conn_read to conn_parse_cmd 
> > <36 Read binary protocol data: 
> > <36    0x80 0x07 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x04 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > <36    0x00 0x00 0x00 0x00 
> > authenticated() in cmd 0x07 is true 
> > >36 Writing bin response: 
> > >36   0x81 0x07 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x04 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > >36   0x00 0x00 0x00 0x00 
> > 36: going from conn_parse_cmd to conn_mwrite 
> > 36: going from conn_mwrite to conn_closing 
> > <36 connection closed. 
> > 36: going from conn_closing to conn_closed 
> > 
> > 
> > 
> > 
> > 
> > 
> > On Wednesday, April 26, 2017 at 11:08:45 PM UTC-7, Dormando wrote: 
> >       How long are they when you get connection failure? 
> > 
> >       On Wed, 26 Apr 2017, watul123 wrote: 
> > 
> >       > No, its just like below 
> >       > 
> >       > const char* key = "abczadfg"; 
> >       > const char* value = "valuetestapp"; 
> >       > 
> >       > and 
> >       > 
> >       > I am using the   this to ste the value "rc = 
> memcached_set(cache, key, strlen(key), value, strlen(value), (time_t)0, 
> flags);" 
> >       > 
> >       > Thanks, 
> >       > Atul 
> >       > 
> >       > On Wednesday, April 26, 2017 at 10:50:33 PM UTC-7, Dormando 
> wrote: 
> >       >       Your key isn't over 256 bytes is it? 
> >       > 
> >       >       On Wed, 26 Apr 2017, watul123 wrote: 
> >       > 
> >       >       > Ok, thanks. Let me debug in that direction. I will 
> update the thread with my findings. 
> >       >       > 
> >       >       > BTW, if I increase the length of key and value in my 
> test program with binary protocol then I consistently get CONNECTION 
> FAILURE 
> >       with 
> >       >       below output on 
> >       >       > memcached side 
> >       >       > <36 new binary client connection. 
> >       >       > 36: going from conn_new_cmd to conn_waiting 
> >       >       > 36: going from conn_waiting to conn_read 
> >       >       > 36: going from conn_read to conn_parse_cmd 
> >       >       > <36 Read binary protocol data: 
> >       >       > <36    0x73 0x65 0x74 0x20 
> >       >       > <36    0x61 0x62 0x63 0x7a 
> >       >       > <36    0x20 0x30 0x20 0x30 
> >       >       > <36    0x20 0x36 0x0d 0x0a 
> >       >       > <36    0x76 0x61 0x6c 0x75 
> >       >       > <36    0x65 0x65 0x0d 0x0a 
> >       >       > Invalid magic:  73 
> >       >       > 36: going from conn_parse_cmd to conn_closing 
> >       >       > <36 connection closed. 
> >       >       > 
> >       >       > Thanks again, 
> >       >       > Atul 
> >       >       > 
> >       >       > On Wednesday, April 26, 2017 at 10:30:14 PM UTC-7, 
> Dormando wrote: 
> >       >       >       Ok. 
> >       >       > 
> >       >       >       The binary protocol is tested pretty well so it's 
> *probably* something in 
> >       >       >       your program, but I won't rule out a bug on the 
> server either. The binary 
> >       >       >       protocol is in heavy usage in a bunch of places 
> though. 
> >       >       > 
> >       >       >       On Wed, 26 Apr 2017, watul123 wrote: 
> >       >       > 
> >       >       >       > I can test with large string quickly. In the 
> test app I may be sending fewer bytes, but in my real app I am sending way 
> >       more bytes. 
> >       >       >       > 
> >       >       >       > FYI: I started with SASL auth, which was failing 
> intermittently. After debugging I realized something is not right with 
> >       binary 
> >       >       protocol, 
> >       >       >       then I disabled 
> >       >       >       > the SASL to take it our of picture completely, 
> and spawned the memcached with binary protocol and still I see the the 
> >       intermittent 
> >       >       >       behavior.      
> >       >       >       > 
> >       >       >       > On Wednesday, April 26, 2017 at 9:54:00 PM 
> UTC-7, Dormando wrote: 
> >       >       >       >       Looks like the protocol is getting out of 
> sync somehow. 
> >       >       >       > 
> >       >       >       >       conn_waiting only means it's waiting to 
> read more bytes from the socket 
> >       >       >       >       from a set. Then it looks like the client 
> doesn't send anymore bytes, 
> >       >       >       >       times out, then closes the socket (-> 
> conn_read -> conn_closing). 
> >       >       >       > 
> >       >       >       >       It's most likely a bug in how you're using 
> the binary protocol, but it's 
> >       >       >       >       hard to say from here. Somehow you're 
> writing fewer bytes to the socket 
> >       >       >       >       than you told the binary protocol to 
> receive. 
> >       >       >       > 
> >       >       >       >       On Wed, 26 Apr 2017, watul123 wrote: 
> >       >       >       > 
> >       >       >       >       > Yes I am 100% sure. 
> >       >       >       >       > When the binary protocol is in picture 
> then only this happens, otherwise same test program with same argument runs 
> >       perfect. 
> >       >       I 
> >       >       >       debugged a 
> >       >       >       >       lot before 
> >       >       >       >       > posting to this group. I am with you on 
> the fact the binary protocol has nothing to do with the timeouts, but it is 
> >       the one 
> >       >       cause 
> >       >       >       the 
> >       >       >       >       failure while 
> >       >       >       >       > reading from socket, then I guess the 
> connection gets close, and at the application level I get 
> MEMCACHED_TIMEOUT.  
> >       >       >       >       > 
> >       >       >       >       > This is what I see on memcached's log 
> >       >       >       >       > 
> >       >       >       >       > 36: going from conn_parse_cmd to 
> conn_mwrite 
> >       >       >       >       > 36: going from conn_mwrite to 
> conn_new_cmd 
> >       >       >       >       > 36: going from conn_new_cmd to 
> conn_waiting 
> >       >       >       >       > 36: going from conn_waiting to conn_read 
> >       >       >       >       > 36: going from conn_read to conn_closing 
> >       >       >       >       > <36 connection closed. 
> >       >       >       >       > 36: going from conn_closing to 
> conn_closed 
> >       >       >       >       > 
> >       >       >       >       > 
> >       >       >       >       > 
> >       >       >       >       > On Wednesday, April 26, 2017 at 5:02:04 
> PM UTC-7, Dormando wrote: 
> >       >       >       >       >       Any way to get more information 
> about the timeouts you're seeing? 
> >       >       >       >       > 
> >       >       >       >       >       There's nothing in the protocol 
> that would cause "timeouts", but bugs 
> >       >       >       >       >       somewhere could cause clients to 
> hang waiting on more data I guess. 
> >       >       >       >       > 
> >       >       >       >       >       You're sure they're timeouts and 
> not some other kind of error? 
> >       >       >       >       > 
> >       >       >       >       >       On Wed, 26 Apr 2017, Atul Waghmare 
> wrote: 
> >       >       >       >       > 
> >       >       >       >       >       > Hi there, 
> >       >       >       >       >       > 
> >       >       >       >       >       > I am facing one issue with 
> memcached binary protocol. Whenever I force the memcached to use the binary 
> >       protocol, my 
> >       >       >       application get 
> >       >       >       >       >       occasional timeouts 
> >       >       >       >       >       > and occasional success. The 
> percentage of failure(set timeouts) is more than 80% when the memcached 
> spawn 
> >       with 
> >       >       binary 
> >       >       >       protocol . 
> >       >       >       >       The moment 
> >       >       >       >       >       I remove the 
> >       >       >       >       >       > binary option, the success rate 
> is 100%.  
> >       >       >       >       >       > 
> >       >       >       >       >       > memcached - v1.4.36    
> >       >       >       >       >       > libmemcached -v1.0.18 
> >       >       >       >       >       > 
> >       >       >       >       >       > Any idea what may be wrong? 
> >       >       >       >       >       > 
> >       >       >       >       >       > Thanks, 
> >       >       >       >       >       > Atul 
> >       >       >       >       >       > 
> >       >       >       >       >       > -- 
> >       >       >       >       >       > 
> >       >       >       >       >       > --- 
> >       >       >       >       >       > You received this message 
> because you are subscribed to the Google Groups "memcached" group. 
> >       >       >       >       >       > To unsubscribe from this group 
> and stop receiving emails from it, send an email to 
> >       memcached+...@googlegroups.com. 
> >       >       >       >       >       > For more options, visit 
> https://groups.google.com/d/optout. 
> >       >       >       >       >       > 
> >       >       >       >       >       > 
> >       >       >       >       > 
> >       >       >       >       > -- 
> >       >       >       >       > 
> >       >       >       >       > --- 
> >       >       >       >       > You received this message because you 
> are subscribed to the Google Groups "memcached" group. 
> >       >       >       >       > To unsubscribe from this group and stop 
> receiving emails from it, send an email to memcached+...@googlegroups.com. 
>
> >       >       >       >       > For more options, visit 
> https://groups.google.com/d/optout. 
> >       >       >       >       > 
> >       >       >       >       > 
> >       >       >       > 
> >       >       >       > -- 
> >       >       >       > 
> >       >       >       > --- 
> >       >       >       > You received this message because you are 
> subscribed to the Google Groups "memcached" group. 
> >       >       >       > To unsubscribe from this group and stop 
> receiving emails from it, send an email to memcached+...@googlegroups.com. 
>
> >       >       >       > For more options, visit 
> https://groups.google.com/d/optout. 
> >       >       >       > 
> >       >       >       > 
> >       >       > 
> >       >       > -- 
> >       >       > 
> >       >       > --- 
> >       >       > You received this message because you are subscribed to 
> the Google Groups "memcached" group. 
> >       >       > To unsubscribe from this group and stop receiving emails 
> from it, send an email to memcached+...@googlegroups.com. 
> >       >       > For more options, visit 
> https://groups.google.com/d/optout. 
> >       >       > 
> >       >       > 
> >       > 
> >       > -- 
> >       > 
> >       > --- 
> >       > You received this message because you are subscribed to the 
> Google Groups "memcached" group. 
> >       > To unsubscribe from this group and stop receiving emails from 
> it, send an email to memcached+...@googlegroups.com. 
> >       > For more options, visit https://groups.google.com/d/optout. 
> >       > 
> >       > 
> > 
> > -- 
> > 
> > --- 
> > You received this message because you are subscribed to the Google 
> Groups "memcached" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to memcached+...@googlegroups.com <javascript:>. 
> > For more options, visit https://groups.google.com/d/optout. 
> > 
> >

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"memcached" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to memcached+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to