douban / Kenshin

Kenshin: A time-series database alternative to Graphite Whisper with 40x improvement in IOPS
Apache License 2.0
206 stars 24 forks source link

start kenshin but some errors got out with "maximum recursion depth exceeded" #12

Closed luckywarrior closed 7 years ago

luckywarrior commented 7 years ago

File "/opt/Kenshin/lib/python2.6/site-packages/pyparsing.py", line 3530, in parseImpl ret = e._parse( instring, loc, doActions ) File "/opt/Kenshin/lib/python2.6/site-packages/pyparsing.py", line 1379, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/opt/Kenshin/lib/python2.6/site-packages/pyparsing.py", line 3717, in parseImpl return self.expr._parse( instring, loc, doActions, callPreParse=False ) File "/opt/Kenshin/lib/python2.6/site-packages/pyparsing.py", line 1379, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/opt/Kenshin/lib/python2.6/site-packages/pyparsing.py", line 3378, in parseImpl loc, resultlist = self.exprs[0]._parse( instring, loc, doActions, callPreParse=False ) File "/opt/Kenshin/lib/python2.6/site-packages/pyparsing.py", line 1379, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/opt/Kenshin/lib/python2.6/site-packages/pyparsing.py", line 3449, in parseImpl loc2 = e.tryParse( instring, loc ) File "/opt/Kenshin/lib/python2.6/site-packages/pyparsing.py", line 1421, in tryParse return self._parse( instring, loc, doActions=False )[0] File "/opt/Kenshin/lib/python2.6/site-packages/pyparsing.py", line 1383, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/opt/Kenshin/lib/python2.6/site-packages/pyparsing.py", line 2798, in parseImpl ret = ParseResults(result.group()) File "/opt/Kenshin/lib/python2.6/site-packages/pyparsing.py", line 341, in new if isinstance(toklist, cls): RuntimeError: maximum recursion depth exceeded while calling a Python object

zzl0 commented 7 years ago

@luckywarrior Thanks for your feedback!

The logs you provided show something wrong with pyparsing.

Can you show us how to reproduce the problem? The more info you can provide, the more quickly we can pin down and squash those bugs.

luckywarrior commented 7 years ago

I open a new vm and reinstall the packages following your steps, a new problem occured when i tried to start a instance,it said as follows:(my environment:centos 6.8_x86_64 python2.6)

Traceback (most recent call last): File "bin/rurouni-cache.py", line 13, in run_twistd_plugin(file) File "/opt/Kenshin/kenshinEnv/lib/python2.6/site-packages/kenshin-0.3.1-py2.6-linux-x86_64.egg/rurouni/utils.py", line 11, in run_twistd_plugin from rurouni.conf import get_parser File "/opt/Kenshin/kenshinEnv/lib/python2.6/site-packages/kenshin-0.3.1-py2.6-linux-x86_64.egg/rurouni/conf.py", line 286 instances = {int(s[len(prefix):]) for s in parser.sections() ^ SyntaxError: invalid syntax

luckywarrior commented 7 years ago

problem solved ! changed this line: instances = {int(s[len(prefix):]) for s in parser.sections() to instances = [int(s[len(prefix):]) for s in parser.sections() if s.startswith(prefix)]

zzl0 commented 7 years ago

They are different things, and instances = {int(s[len(prefix):]) for s in parser.sections() should not raise SyntaxError: invalid syntax. What's the version of your Python interpreter?

In [5]: a = [1, 1, 2, 3]

In [6]: {i for i in a}  # set
Out[6]: {1, 2, 3}

In [7]: [i for i in a]  # list
Out[7]: [1, 1, 2, 3]
zzl0 commented 7 years ago

@luckywarrior Set comprehension was introduced in Version 2.7

https://en.wikipedia.org/wiki/List_comprehension#Set_comprehension