Pull Reqest c.ancestor assertion

Issue #829 resolved
Erik Mathisen created an issue

I downloaded and installed RhodeCode 1.6.0rc1. I created a repo, created a branch from it. i made a changeset and tried a pull request. I received a 500 error. I attached a copy of the error email the system provided.

Comments (21)

  1. Marcin Kuzminski repo owner

    @kiilerix can you take a look at the traceback, and the assertion about ancestor ?

  2. Erik Mathisen reporter

    @marcinkuzminski I tried to tests to recreate it, I was unable to recreate it on the demo site.

  3. Erik Mathisen reporter

    System Info and Packages Python - 2.7.3 System - Linux-3.2.0-39-generic-pae-i686-with-Ubuntu-12.04-precise amqplib 1.0.2 anyjson 0.3.3 argparse 1.2.1 Babel 0.9.6 Beaker 1.6.4 celery 2.2.10 decorator 3.4.0 docutils 0.8.1 dulwich 0.8.7 FormEncode 1.2.4 git 0.0 kombu 1.5.1 Mako 0.7.3 Markdown 2.2.1 MarkupSafe 0.15 mercurial 2.5.4 mock 1.0.1 nose 1.3.0 Paste 1.7.5.1 PasteDeploy 1.5.0 PasteScript 1.7.5 pip 1.3.1 py-bcrypt 0.3 Pygments 1.6 Pylons 1.0 pyparsing 1.5.7 Python 2.7 python-dateutil 1.5 repoze.lru 0.6 RhodeCode 1.6.0rc1 Routes 1.13 setuptools 0.6c11 simplejson 2.5.2 SQLAlchemy 0.7.10 Tempita 0.5.1 waitress 0.8.2 WebError 0.10.3 WebHelpers 1.3 WebOb 1.0.8 WebTest 1.4.3 Whoosh 2.4.1 wsgiref 0.1.2

  4. Marcin Kuzminski repo owner

    I thought it might be issue with older mercurial. Demo is running almost the same code as rc1 with no changes to pull request code. So i dont have an idea why the assertion fails for you

  5. Erik Mathisen reporter

    I am able to regularly recreate it on my local server. I will try to make it happen on the demo server again.

  6. Mads Kiilerich

    I guess that is when creating a pull request between two unrelated repositories. Something that really doesn't make sense and just should give the user an error somehow.

    The assertion shows the intention with the code, but the assertion can probably just be removed so we get garbage-in-garbage-out in this case.

  7. Wolfgang Baron

    I had the same problem until I explicitly added the requesting user with write permissions to the repository.

  8. Marcin Kuzminski repo owner

    @erm213 the title of this issue was very broad 500 error can happen with many other cases, i edited the title to the c.ancestor issue. Please check your traceback and post more details here if it's the same error, or open another ticket if the error is different.

    On a side note, i noticed the c.ancestor failing sometimes on our demo instance, but it seems to be concurrency issues related since opening the URL manually works fine. Error happens when there's a lot of concurrent access to the repository.

  9. Chris Stylianou

    I also have the same issue.

    General steps I followed: - Createed a new repo (foo), commited a few files. - Created a new fork (foo-fork), commited a few files to the fork - Create a pull request from foo-fork tip to foo's tip - I get "Error 500" appears in red above "Detailed compare view" and an email with the "Module rhodecode.controllers.compare:149 in index >> assert c.ancestor" message.

    All I can see in logs is a message "Error - <type 'exceptions.AssertionError'>:

    2013-05-22 15:42:33.729 INFO [rhodecode.RequestWrapper] IP: 192.168.2.128 Request to /foo/compare/rev@ac738fb7c1b9b1632858a6899e3935f4440c960d...rev@d8353ad5853e3ea9a5e55d314cb0e3febf7decc7 time: 0.949s 2013-05-22 15:42:33.786 INFO [rhodecode.lib.base] IP: 192.168.2.128 User: <AuthUser('id:3:chris|True')> accessed /foo/compare/rev@ac738fb7c1b9b1632858a6899e3935f4440c960d...rev@d8353ad5853e3ea9a5e55d314cb0e3febf7decc7 2013-05-22 15:42:33.792 INFO [rhodecode.RequestWrapper] IP: 192.168.2.128 Request to /foo/compare/rev@ac738fb7c1b9b1632858a6899e3935f4440c960d...rev@d8353ad5853e3ea9a5e55d314cb0e3febf7decc7 time: 0.063s

    Looking at the requests, it does not appear to be referencing the "foo-fork" directly, maybe this is the issue?

    Pull requests for internal repo changes appear to work, so it seems this is specifically related to pull requests that go across related repos.

    Other info: Revision tip of "foo": ac738fb7c1b9b1632858a6899e3935f4440c960d Revision tip of "foo-fork": d8353ad5853e3ea9a5e55d314cb0e3febf7decc7

  10. Chris Stylianou

    Ignore my previous comment on "Looking at the requests, it does not appear to be referencing the "foo-fork" directly, maybe this is the issue?". It appears the rhodecode log only reports the url path, the query string "as_form=True&amp;other_repo=foo-fork&amp;merge=True&rnd=1369295438704" is also being sent. If I go directly to "/foo/compare/rev@ac738fb7c1b9b1632858a6899e3935f4440c960d...rev@d8353ad5853e3ea9a5e55?as_form=True&amp;other_repo=foo-fork&amp;merge=True&rnd=1369295438704", this page successfully reports the correct changesets.

  11. Marcin Kuzminski repo owner

    Ok so it looks like only the preview is broken, compare details shows proper data. I'll investigate that issue today

  12. Chris Stylianou

    Cool :)

    It's not just the preview button, it won't let you create the pull request by clicking the "Send pull request" button. The error bar across the top states: "Revisions: Missing value".

  13. Marcin Kuzminski repo owner

    yeah so this seems to be fixed in 1.7.0dev. 1.7.0 should be released soonish (This week maybe if i have enough time)

  14. Log in to comment