getsentry / sentry

Developer-first error tracking and performance monitoring
https://sentry.io
Other
38.67k stars 4.15k forks source link

parsimonious error when running sentry upgrade with 9.1.1 #13059

Closed jameshartig closed 4 years ago

jameshartig commented 5 years ago

Important Details

How are you running Sentry?

Description

After upgrading from 9.0.0 to 9.1.1 using pip install --upgrade sentry I ran sentry upgrade and was presented with an error immediately.

Steps to Reproduce

  1. pip install --upgrade sentry
  2. sentry upgrade

Good items to include here include:

Traceback (most recent call last):
  File "/bin/sentry", line 11, in <module>
    sys.exit(main())
  File "/usr/lib/python2.7/site-packages/sentry/runner/__init__.py", line 162, in main
    cli(prog_name=get_prog(), obj={}, max_content_width=100)
  File "/usr/lib/python2.7/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python2.7/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python2.7/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/sentry/runner/decorators.py", line 35, in inner
    configure()
  File "/usr/lib/python2.7/site-packages/sentry/runner/__init__.py", line 125, in configure
    configure(ctx, py, yaml, skip_service_validation)
  File "/usr/lib/python2.7/site-packages/sentry/runner/settings.py", line 156, in configure
    skip_service_validation=skip_service_validation
  File "/usr/lib/python2.7/site-packages/sentry/runner/initializer.py", line 319, in initialize_app
    register_plugins(settings)
  File "/usr/lib/python2.7/site-packages/sentry/runner/initializer.py", line 23, in register_plugins
    from sentry.plugins import plugins
  File "/usr/lib/python2.7/site-packages/sentry/plugins/__init__.py", line 21, in <module>
    from sentry.plugins.bases import *  # NOQA
  File "/usr/lib/python2.7/site-packages/sentry/plugins/bases/__init__.py", line 4, in <module>
    from .issue2 import IssueTrackingPlugin2  # NOQA
  File "/usr/lib/python2.7/site-packages/sentry/plugins/bases/issue2.py", line 19, in <module>
    from sentry.plugins.endpoints import PluginGroupEndpoint
  File "/usr/lib/python2.7/site-packages/sentry/plugins/endpoints.py", line 7, in <module>
    from sentry.api.bases.group import GroupEndpoint
  File "/usr/lib/python2.7/site-packages/sentry/api/bases/__init__.py", line 6, in <module>
    from .organization_events import *  # NOQA
  File "/usr/lib/python2.7/site-packages/sentry/api/bases/organization_events.py", line 4, in <module>
    from sentry.api.event_search import get_snuba_query_args, InvalidSearchQuery
  File "/usr/lib/python2.7/site-packages/sentry/api/event_search.py", line 127, in <module>
    """)
  File "/usr/lib/python2.7/site-packages/parsimonious/grammar.py", line 69, in __init__
    exprs, first = self._expressions_from_rules(rules, decorated_custom_rules)
  File "/usr/lib/python2.7/site-packages/parsimonious/grammar.py", line 106, in _expressions_from_rules
    return RuleVisitor(custom_rules).visit(tree)
  File "/usr/lib/python2.7/site-packages/parsimonious/nodes.py", line 217, in visit
    return method(node, [self.visit(n) for n in node])
  File "/usr/lib/python2.7/site-packages/parsimonious/nodes.py", line 217, in visit
    return method(node, [self.visit(n) for n in node])
  File "/usr/lib/python2.7/site-packages/parsimonious/nodes.py", line 217, in visit
    return method(node, [self.visit(n) for n in node])
  File "/usr/lib/python2.7/site-packages/parsimonious/nodes.py", line 217, in visit
    return method(node, [self.visit(n) for n in node])
  File "/usr/lib/python2.7/site-packages/parsimonious/nodes.py", line 217, in visit
    return method(node, [self.visit(n) for n in node])
  File "/usr/lib/python2.7/site-packages/parsimonious/nodes.py", line 217, in visit
    return method(node, [self.visit(n) for n in node])
  File "/usr/lib/python2.7/site-packages/parsimonious/nodes.py", line 227, in visit
    reraise(VisitationError, VisitationError(exc, exc_class, node), tb)
  File "/usr/lib/python2.7/site-packages/parsimonious/nodes.py", line 217, in visit
    return method(node, [self.visit(n) for n in node])
  File "/usr/lib/python2.7/site-packages/parsimonious/grammar.py", line 371, in visit_regex
    verbose='X' in flags)
  File "/usr/lib/python2.7/site-packages/parsimonious/expressions.py", line 274, in __init__
    (verbose and re.X))
  File "/usr/lib64/python2.7/re.py", line 190, in compile
    return _compile(pattern, flags)
  File "/usr/lib64/python2.7/re.py", line 242, in _compile
    raise error, v # invalid expression
parsimonious.exceptions.VisitationError: error: nothing to repeat

Parse tree:
<Node called "regex" matching "~r"\"((?:[^\"]|(?<=\\)[\"])*)?\""s
">  <-- *** We were here. ***
    <Node matching "~">
    <Node called "spaceless_literal" matching "r"\"((?:[^\"]|(?<=\\)[\"])*)?\""">
        <RegexNode matching "r"\"((?:[^\"]|(?<=\\)[\"])*)?\""">
    <RegexNode matching "s">
    <Node called "_" matching "
    ">
        <Node called "meaninglessness" matching "
        ">
            <RegexNode matching "
            ">

What you expected to happen

I expected the upgrade to happen as normal.

Possible Solution

I tried upgrading parsimonious but that didn't help.

gray314 commented 5 years ago

Have a same issue after upgrade on 9.1.1 version

xiatian commented 5 years ago

me too

dcramer commented 5 years ago

Would you be able to capture the output of pip freeze?

bobschi commented 4 years ago

FYI: Running sentry 9.1.2 on CentOS 7.7.1908 on python 2.7. This never showed up for me after upgrading from sentry 8.x to sentry 9.1.2. This is the output from pip freeze:

amqp==1.4.9
anyjson==0.3.3
asn1crypto==1.0.1
attrs==19.2.0
backports.ssl-match-hostname==3.5.0.1
BeautifulSoup==3.2.2
billiard==3.3.0.23
boto3==1.4.5
botocore==1.5.70
celery==3.1.18
certifi==2019.9.11
cffi==1.12.3
chardet==3.0.4
click==6.7
configobj==4.7.2
croniter==0.3.30
cryptography==2.7
cssselect==1.1.0
cssutils==0.9.10
decorator==3.4.0
Django==1.6.11
django-crispy-forms==1.4.0
django-jsonfield==0.9.13
django-picklefield==0.3.2
django-sudo==2.1.0
django-templatetag-sugar==1.0
djangorestframework==2.4.8
docutils==0.15.2
email-reply-parser==0.2.0
enum34==1.1.6
exam==0.10.6
funcsigs==1.0.2
functools32==3.2.3.post2
futures==3.3.0
hiredis==0.1.6
honcho==1.0.1
httplib2==0.14.0
idna==2.7
iniparse==0.4
ipaddress==1.0.22
jmespath==0.9.4
jsonschema==2.6.0
kombu==3.0.35
loremipsum==1.0.5
lxml==4.4.1
milksnake==0.1.5
mistune==0.8.4
mmh3==2.3.1
mock==2.0.0
more-itertools==7.2.0
msgpack==0.6.2
oauth2==1.9.0.post1
oauthlib==3.1.0
olefile==0.46
parsimonious==0.8.0
pbr==5.4.3
percy==2.0.2
perf==0.1
petname==2.0
Pillow==4.2.1
pluggy==0.6.0
progressbar2==3.10.1
psycopg2-binary==2.7.7
py==1.8.0
pycparser==2.19
pycurl==7.19.0
pygobject==3.22.0
pygpgme==0.3
PyJWT==1.5.3
pyliblzma==0.5.3
pyOpenSSL==19.0.0
pytest==3.5.1
pytest-django==2.9.1
pytest-html==1.9.0
python-dateutil==2.8.0
python-linux-procfs==0.4.9
python-memcached==1.59
python-openid==2.2.5
python-u2flib-server==4.0.1
python-utils==2.3.0
pytz==2019.3
pyudev==0.15
pyxattr==0.5.1
PyYAML==3.11
qrcode==5.3
querystring-parser==1.2.4
rb==1.7
redis==2.10.5
redis-py-cluster==1.3.4
requests==2.20.1
requests-oauthlib==0.3.3
s3transfer==0.1.13
schedutils==0.4
selenium==3.141.0
semaphore==0.4.46
sentry==9.1.2
sentry-sdk==0.12.3
setproctitle==1.1.10
simplejson==3.8.2
six==1.10.0
slip==0.4.0
slip.dbus==0.4.0
sqlparse==0.1.19
statsd==3.1
strict-rfc3339==0.7
structlog==16.1.0
symbolic==6.1.4
toronado==0.0.11
ua-parser==0.7.3
unidiff==0.5.5
urlgrabber==3.10
urllib3==1.24.2
uWSGI==2.0.18
virtualenv==15.1.0
yum-metadata-parser==1.1.4
BYK commented 4 years ago

per @bobschi's comment I'm closing this as it seems to be fixed on 9.1.2. Will reopen if we get reports for 9.1.2

axiaoxin commented 4 years ago

centos7 python2.7.5 upgrade from 8.13.0 to 10.0.0 having the same issue

BYK commented 4 years ago

@axiaoxin - please file a new issue with some more details like your pip freeze output. Also keep in mind that direct upgrades from anything below 9.1.2 to 10.0.0 are not supported so you need to upgrade to 9.1.2 first.