790: Replying to comments sometimes pre-fills with most-recently-added reply text

timw.a******@gmai***** (Google Code) (Is this you? Claim this profile.)
chipx86
chipx86
Jan. 2, 2009
Latest reviewboard and djblets (at revision 1656)...

What's the URL of the page containing the problem?
http://site/r/123/ (i.e., the review page)

What steps will reproduce the problem?
1. Have a review open which has comments against source code (2 or more in
the same file)
2. Compose a reply to one comment in file X (not the last comment for file
X); click OK
3. Click 'Add comment' on the next comment in file X

What is the expected output? What do you see instead?
Expected: after 3, an reply edit box is visible under the comment I just
tried to reply to.

Actual: after 3, the reply edit box from step 2 re-opens.
Further, pressing OK in the box causes an empty, uneditable reply (no "Add
comment" link, no pencil icon) to appear in your name under the comment you
clicked on.

Upon reloading the page shows that the reply from step 2 has been repeated
under step 3's comment. However, at this point, you can edit the reply from
(3) to make it say what you wanted.

What operating system are you using? What browser?
Ubuntu 8.10's Firefox 3.0.5 on x86_64.

Additional details:
I see no javascript errors in the Error Console or in Firebug's console at
any point.
chipx86
#1 chipx86
I fixed a bug tonight that may very well be related to this. Can you try again in
about 20 minutes with the new Review Board nightly (20081231)?
  • +NeedInfo
  • -Priority-Medium
    +Priority-Critical
    +Component-Reviews
    +Milestone-Release1.0
  • +chipx86
#2 timw.a******@gmai***** (Google Code) (Is this you? Claim this profile.)
Interesting tidbit:
With Firebug, after adding the first reply and hitting OK (step 2), I noticed <label
for="yourcomment_undefined-draft"> which corresponds to
for="yourcomment_{{context_id}}-{{id}}" in review_reply.html. The nearby 'dd' element
similarly has an undefined context_id.
#3 timw.a******@gmai***** (Google Code) (Is this you? Claim this profile.)
Actually, I did an svn update 15 minutes ago when I noticed you posted that fix. It
did fix the other issue, 787 (which you already marked fixed).
#4 timw.a******@gmai***** (Google Code) (Is this you? Claim this profile.)
My apologies for the barrage of replies. Upon reloading the page (without publishing
the reply), a legitimate ID is present: yourcomment_rc2087-550
chipx86
#5 chipx86
Interesting. I'll look into it, but unfortunately I must head to bed shortly (full
day tomorrow). I'll try to figure this out tomorrow or the day after.
  • -NeedInfo
    +Confirmed
#6 t**@alsop-fa******** (Google Code) (Is this you? Claim this profile.)
I am also getting same issue with latest revision. 
chipx86
#7 chipx86
I believe I have this fixed in r1660. This will appear in tomorrow's nightly, but
it's a one-line change (see the change in r1660 if you wnat to make it in your copy).
  • -Confirmed
    +Fixed
#8 t**@alsop-fa******** (Google Code) (Is this you? Claim this profile.)
I did 'svn update' to get r1660 and then restarted apache, and I am still getting the
same problem. It looks like it is not fixed yet :-(
#9 t**@alsop-fa******** (Google Code) (Is this you? Claim this profile.)
Just in case the problem is not clear I will explain what happens.

I have a review that has many comments, and when I open this review, each comment has
"Add Comment" button. When I press this button next to first comment, a box opens on
page allowing me to add comments - I then press OK. The problem occurs when I move to
the next comment and press the "Add Comment" button - the box opens for me to type
reply to comment, but the box opens under first comment, not under the second comment
which I am trying to reply to.
#10 t**@alsop-fa******** (Google Code) (Is this you? Claim this profile.)
I have discovered that if I reply to comments in different order, e.g. reply to last
comment, then previous, then one before previous ... this works fine. It seems that
the problem only occurs if I reply to a comment and then reply to one after it ...
chipx86
#11 chipx86
Hmm, I'm pretty sure this is taken care of. I can no longer reproduce the problem.

Did you clear/bypass your cache? The change was to a single JavaScript file, and it
may be that the browser is caching it (which we've definitely seen happen before).

Also, I take it you're not using rb-site? We may be making changes to the directory
structure in the somewhat near future that will break installs served completely out
of SVN. If instead you're running setup.py install from Review Board and Djblets,
you're okay.
  • -Fixed
    +NeedInfo
#12 t**@alsop-fa******** (Google Code) (Is this you? Claim this profile.)
I cleared the browser cache, tested again, and it now works ... Thanks.

Yes, I am using svn and not rb-site. I wondered if you could provide me with a
reference to allow me to change my svn installation to rb-site so that I don't miss
anything in future updates ?
chipx86
#13 chipx86
Glad it works :)

The GettingStarted wiki page is the best bet for instructions right now. It has a
section on migrating from SVN. There's not much you have to worry about. Move away
your existing install directory, then follow the instructions for installing Review
Board and creating your site. You can then copy your database file over (if using
sqlite) or just enter your database info for MySQL or whatever. Update your installed
Apache config file for the site to look like the one provided in the conf/ directory
under your new site directory. The main highlights there include the PythonPath
variable and the media directories.

Upgrades from then on include upgrading ReviewBoard and Djblets packages, re-running
'rb-site upgrade', and restarting Apache. Right now, updating ReviewBoard or Djblets
will grab nightlies. Later on, we'll have bleeding edge snapshots (new ones generated
on each SVN commit), and releases. Releases will take precedence and you'll need a
config option to move back to nightlies, which I'll document when we perform the
first release.
  • -NeedInfo
    +Fixed
#14 timw.a******@gmai***** (Google Code) (Is this you? Claim this profile.)
Gratuitous confirmation (fixed for me, too). End of meaningful content.

To the other reporter here, if you track SVN for the same reason I do (local
modifications, including integration code for external systems), using nightlies
obviously won't work. The following steps are what I use:

1) svn update
2) ./setup.py build
3) ./setup.py install [--home $HOME if you don't install reviewboard to your global
site-packages]
If you track local changes to djblets, you may have to repeat steps 2-3 for djblets
4) rb-site upgrade /path/to/site
5) if you use mod_python and don't have PythonAutoReload on, restart Apache
#15 Graham.D********@gmai***** (Google Code) (Is this you? Claim this profile.)
The PythonAutoReload option is only really relevant to web applications written against mod_python specific APIs 
and which use its internal module import system. It doesn't make any difference for standard Python module 
imports. Thus you would always need to restart Apache with mod_python in this case and what 
PythonAutoReload is set to would make no difference.