Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Timeslider: What's really broken #1217

Closed
marcelklehr opened this issue Nov 26, 2012 · 24 comments
Closed

Timeslider: What's really broken #1217

marcelklehr opened this issue Nov 26, 2012 · 24 comments

Comments

@marcelklehr
Copy link
Contributor

Please verify these four tests on your instance:

tests

Make sure you're running the latest version on develop branch.
Create a new pad and make some changes (aim for a fixed number of revisions)
Please refresh the page after each test and wait a bit allowing the timeslider to load all necessary things.

  1. Click anywhere on the slider bar -> associated content should be displayed.
  2. Drag the slider handle around -> associated contents should be displayed as you drag the handle.
  3. Step through all revisions manually using the back and forward buttons -> associated contents should be displayed.
  4. Click on the replay button -> all changes should be replayed, starting at the beginning.
@marcelklehr
Copy link
Contributor Author

Using firefox 17 all tests pass on a pad with 3 revisions

@marcelklehr
Copy link
Contributor Author

Using firefox 17 all tests pass on a pad with 30 revisions

@marcelklehr
Copy link
Contributor Author

Using firefox 17 tests 1, 2, 3 and 4 fail on a pad with 100 revisions.

@JohnMcLear
Copy link
Member

So TLDR any pad w/ > 100 revisions does not show changes in timeslider?

@JohnMcLear
Copy link
Member

FYI I have a pad with 7899 versions and the timeslider works okay, it's just a bit slow if I go back a long time in it's history. It's still a serious bug though, we need to get to the bottom of it even if it's just a case of showing a "loading" modal when we dont have enough data available to the client

@Wikinaut
Copy link
Contributor

Some positive feedback:

The present version commit 5eb09f9 (Mon Jan 14 14:26:30 2013 -0800) appears to work much better:

  • timeslider works in majority of cases, and
  • I regard this version as a major improvement.
  • It's not a final solution fo the timeslider issue/s

because quick timeslider pin moves can still lead to a server script crash, which just happened on my test installation with an old and bigger pad.

@ghost ghost assigned JohnMcLear Feb 7, 2013
@JohnMcLear
Copy link
Member

A PR to re-enable TS tests #1476

@JohnMcLear
Copy link
Member

As far as I understand this, if you are on point 10000 and click on point 50 it creates a changeset from 10000 to 50. This is bad.

What we want is some way of doing a changeset from 0 to 50, 1000 to 1050 etc.. This would be a lot quicker and provide a much smoother process.

Ideally what we will do is provide the users offline Storage or so with cached copies every 1000 revs or so. We could serve this when the user is on the pad.

A very simple fix that would get us started is to provide content at Rev:[0-10] to the browser so when the play button is hit the content is available.

Overall though I think the way the timeslider is provided is kinda broken. We don't provide historical search or an ability to see changes based on contributions Vs Time.

Revisions are not necessarily humanly conceivable concepts compared to time. Also there has been various discussions about making the timeslider a "plugin", while I'm not a fan of that I think it's worth considering so we can maintain it as a completely separate entity.

@dmitryuv
Copy link
Contributor

dmitryuv commented Feb 9, 2013

AFAIK it works differently. On load it starts pulling changesets from last to first revision using specified granularity (always equals to 1). For each changeset it creates forward (changeset as is) and backward (inversed changeset) version. If you want to go from head (rev50) to rev20 (i'll use smaller numbers for simplicity), it will apply backward changesets 49..20 to the head. Going forward, as you move slider back and forth it will apply forward or backward transform to the current state one by one. Timeslider stuck if you move slider too far where no changests are available yet, until they gets loaded (because loader works sequentially).

You don't need to have separate storage, changesets storage already have full text each 100 revisions. To move quicker on the timeline, you can load nearest base revision, then only small set of transformations to move from base to selected position.

@JohnMcLear
Copy link
Member

RE Storage I mean on the client so the request doesn't need to be made to the server unless the data isn't available.

@JohnMcLear
Copy link
Member

I think you are correct on behavior btw, @Pita might want to share some thoughts here.

@dmitryuv
Copy link
Contributor

dmitryuv commented Feb 9, 2013

I think you'll fill client's storage pretty quick with heavy usage :) Timeslider is a feature that is used very rarely, it should be ok to just optimize prefetcher so it will jump to the requested position rather than waiting until it is available.

@JohnMcLear
Copy link
Member

@dmitryuv agreed

@simong
Copy link
Contributor

simong commented Apr 26, 2013

+1 on making it a separate plugin.

We're not entirely comfortable with the load it puts on DB servers and have no real use for it anyway. If we could disable it, that'd be a big comforter for us.

@hevisko
Copy link

hevisko commented Jul 14, 2013

Using current git release (as per https://github.com/ether/etherpad-lite#installation ) I also have an empty slider window ;(

I especially want to go to "marked" revisions, which I can't seem to view :(

Do I have to "upgrade" to beta/dev/testing version to have this fixed?
I have installed several of the add-on modules like the check list module

@JohnMcLear
Copy link
Member

@hevisko on latest master it should be fine, try create a new pad and hit the timeslider button.

@hevisko
Copy link

hevisko commented Jul 15, 2013

Nope, same problem ;(
empty "screen"
did a "git pull origin" to confirm everything is there, rebooted the
OpenVZ container with the MySQL and still the same blank screen when
clicking on the slider button.

On 7/14/13, John McLear notifications@github.com wrote:

@hevisko on latest master it should be fine, try create a new pad and hit
the timeslider button.


Reply to this email directly or view it on GitHub:
#1217 (comment)

@JohnMcLear
Copy link
Member

hrm
try a clean install?
Also check your network tab, perhaps a url isn't being rewritten or so...

@marcelklehr
Copy link
Contributor Author

Try opening your browser's js console and look for errors.

@mhellwig
Copy link

I am also seeing this issue. Slider is completely broken, I'm not sure since how many git updates ago since I wasn't personally using it. I'm on branch "develop", is that the right one to be on?

Tried the JS console of my firefox, but that just caused CPU to max out for a few minutes and not much else .. but before that didn't see any errors, I just have a blank space below the slider (actually below the "version XX saved on XX" and so forth, roughly translated from German)

@hevisko
Copy link

hevisko commented Aug 23, 2013

I suspect that installation had a add-on that broke it. New installation it
works fine

On Tue, Aug 20, 2013 at 11:31 PM, Michael Hellwig
notifications@github.comwrote:

I am also seeing this issue. Slider is completely broken, I'm not sure
since how many git updates ago since I wasn't personally using it. I'm on
branch "develop", is that the right one to be on?

Tried the JS console of my firefox, but that just caused CPU to max out
for a few minutes and not much else .. but before that didn't see any
errors, I just have a blank space below the slider (actually below the
"version XX saved on XX" and so forth, roughly translated from German)


Reply to this email directly or view it on GitHubhttps://github.com//issues/1217#issuecomment-22979454
.

@mhellwig
Copy link

Ah. That was a good trigger-word!
Started removing installed plugins. The one that triggers "timeslider works" vs "timeslider doesn't work" on my installation is the "tables" plugin. This is reproducible for me. I.e. I install the plugin, timeslider stops working. I uninstall it, it works again. Back and forth.

@codingisacopingstrategy
Copy link
Contributor

Note that while the tables plugin might break it completely, there is still a more subtle breakage that happens sometimes under not quite clear conditions (at least with me, running cb3ab51). Most of our pads work fine, but one of the larger ones at 4656 revisions is exhibiting the behaviour described by @Wikinaut.

In the console:

Failed to load resource: the server responded with a status of 502 (Bad Gateway) http://relearn.be/ether/socket.io/1/xhr-polling/GRcbZx1bnIFoO6YKQrGT?t=1378739239301
Failed to load resource: the server responded with a status of 502 (Bad Gateway) http://relearn.be/ether/socket.io/1/?t=1378739243460
Failed to load resource: the server responded with a status of 502 (Bad Gateway) http://relearn.be/ether/socket.io/1/?t=1378739244461
Failed to load resource: the server responded with a status of 502 (Bad Gateway) http://relearn.be/ether/socket.io/1/?t=1378739246463

@JohnMcLear
Copy link
Member

Hopefully @marcelklehr will get some time to spend on finishing off his work on #2070 which is nearly there!

@JohnMcLear JohnMcLear assigned marcelklehr and unassigned JohnMcLear Nov 26, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants