33 keys were used by get_multi, my uwsgi command is "*sudo uwsgi -s /tmp/uwsgi.sock --wsgi-file api.py --callable app --master --process 4 -R 10000", *I didn't use threads.
2014-07-18 0:24 GMT+08:00 Mark Nunberg <[email protected]>: > Just how many keys are you passing to get_multi/set_multi? > > Mentioning uwsgi, what form of thread/process configuration are you using? > Keep in mind that in the case of forking, you must ensure the Connection > object is create in the child process, not the parent process. > > On Jul 17, 2014, at 9:19 AM, 孙如镇 <[email protected]> wrote: > > Hi Nunberg, > > My libcouchbase-dev is 2.3.2. I have tried to use your > libcouchbase-dev 2.4.0, but situation even be much worsen.A lot "*timeout*" > were throw out,but no *"src/server.c:666: > lcb_server_purge_implicit_responses: Assertion `c->cmd_log.nbytes' failed."* > errors. Now I am sure that the error " *src/server.c:666: > lcb_server_purge_implicit_responses: Assertion `c->cmd_log.nbytes' failed.*" > makes my python application container(uwsgi) down before. By the way some > time another error *"evmap.c:401: Assertion ctx failed in evmap_io_active*", > So really need your help. > > Best regards. > > > 2014-07-17 22:52 GMT+08:00 孙如镇 <[email protected]>: > >> Hi Nunberg, >> >> Thanks for your replay. I will follow you advices and do some >> experiments. >> >> Best regards. >> >> >> 2014-07-17 22:42 GMT+08:00 M. Nunberg <[email protected]>: >> >> Hi >>> >>> Such errors would fall under the domain of the underlying libcouchbase. >>> What version of libcouchbase are you using? Version 2.3.1 and earlier has a >>> bug which may manifest itself in the symptom you are describing, so please >>> try 2.3.2 (http://www.couchbase.com/communities/c-client-library) >>> >>> I would also suggest you try to run your tests with the new 2.4.0-beta >>> version to see how that goes. Get it here http://packages.couchbase.com/ >>> clients/c/index.html >>> >>> >>> On 07/17/2014 04:23 AM, Chen Sun wrote: >>> >>>> I am a new guy to couchbase.I try to use couchbase and couchbase's >>>> python client in my python-base web APIs.But I find some errors when I >>>> use ab(a tool to test the web api performence) to test the api with some >>>> concurrecny http requests. The errors of the python clinet throwed >>>> bellow here.I want know why these errors occoured,and how to solve this >>>> problem. >>>> >>>> The errors >>>> ------------------------------------------------------------ >>>> --------------------------------------------------------------- >>>> >>>> uwsgi: src/server.c:666: lcb_server_purge_implicit_responses: >>>> Assertion `c->cmd_log.nbytes' failed. >>>> python-couchbase: self->nremaining == 0 at src/oputil.c:77. >>>> AbortTraceback (most recent call last): >>>> File "api.py", line 111, in falcon.api.API.__call__ >>>> (falcon/api.c:1389) >>>> # startkey=start, >>>> endkey=end, >>>> File "api.py", line 96, in falcon.api.API.__call__ >>>> (falcon/api.c:1210) >>>> # end = '/' + adid + '/' + end >>>> File "api.py", line 174, in on_post >>>> query_results = couchbase_category.get_multi(keys, quiet=True) >>>> File "/usr/local/lib/python2.7/dist-packages/couchbase/connection.py", >>>> line 1053, in get_multi >>>> return _Base.get_multi(self, keys, ttl=ttl, quiet=quiet, >>>> replica=replica, no_format=no_format) >>>> couchbase.exceptions._TimeoutError_0x17 (generated, catch >>>> TimeoutError): <Key=u'com.htc.fm', RC=0x17[Client-Side timeout >>>> exceeded for operation. Inspect network conditions or increase the >>>> timeout], Operational Error, Results=34, C Source=(src/multiresult.c,286) >>>> > >>>> >>>> ------------------------------------------------------------ >>>> ------------------------------------------------------------ >>>> ------------ >>>> >>>> My python code >>>> >>>> couchbase_category= Couchbase.connect( >>>> >>>> bucket='Category', host='127.0.0.1', timeout=5) >>>> class Category: >>>> >>>> def on_post(self, req, resp): >>>> >>>> t1= datetime.datetime.now() >>>> content= {} >>>> # try: >>>> params= json.load(req.stream, 'utf-8') >>>> keys= [] >>>> for appin params['apps']: >>>> >>>> keys.append(app['bundle_id']) >>>> >>>> unknown_apps= [] >>>> result= {} >>>> result['known_bundle_ids'] = [] >>>> result['unknown_bundle_ids'] = [] >>>> result['apps'] = [] >>>> result['categorys'] = [] >>>> >>>> query_results= couchbase_category.get_multi(keys, >>>> quiet=True) >>>> for keyin query_results: >>>> >>>> if query_results[key].success: >>>> result['apps'].append(query_results[key].value) >>>> result['known_bundle_ids'].append(key) >>>> result['categorys'].append( >>>> query_results[key].value['categoryName']) >>>> else: >>>> result['unknown_bundle_ids'].append(key) >>>> result['categorys'] = list(set(result['categorys'])) >>>> for itemin params['apps']: >>>> >>>> if item['bundle_id'] in result['unknown_bundle_ids']: >>>> unknown_apps.append(item) >>>> timestamp= time.time() >>>> pipe= r.pipeline() >>>> for appin unknown_apps: >>>> >>>> pipe.zadd('uncached_apps', timestamp, app) >>>> pipe.execute() >>>> content['is_ok'] = True >>>> content['result'] = result >>>> t2= datetime.datetime.now() >>>> >>>> content['total_time'] = (t2 - t1).total_seconds() >>>> # except Exception, err: >>>> # content['is_ok'] = False >>>> # finally: >>>> resp.status = falcon.HTTP_201 >>>> resp.body = json.dumps(content) >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Couchbase" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected] >>>> <mailto:[email protected]>. >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "Couchbase" group. >>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>> topic/couchbase/mhiJsqPkk7g/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > > -- > You received this message because you are subscribed to the Google Groups > "Couchbase" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > > For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to a topic in the > Google Groups "Couchbase" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/couchbase/mhiJsqPkk7g/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Couchbase" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
