Page MenuHomePhabricator

Failures with auto-save causes users data loss when translating (tracking)
Closed, ResolvedPublic

Description

Users have reported losing their progress because of accidentally pressing back space or just leaving the page regularly.

The auto-save mechanism is supposed to work transparently (just saving the content without disturbing the user) reliably (not losing data and preventing the user to leave if the saving is in progress to avoid data loss). We may need to investigate under which circumstances that is not happening and adjust the system accordingly since losing their work is guaranteed to make users unhappy.

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

I hope it helps debugging: A Hebrew Wikipedia user complained that she was translating https://en.wikipedia.org/wiki/Jarmo , and when she loaded it from the dashboard, only the first paragraph was loaded, even though she wrote more.

Amire80 renamed this task from Failures with auto-save seem to cause users data loss when translating to Failures with auto-save causes users data loss when translating.Jul 11 2015, 7:07 PM
Amire80 added a subscriber: eranroz.

Another user reporting issues about this. In this case the issue was produced when interacting with categories.

And another one: translating "Bluegrass music" from English to Persian, draft=51811.

Just an idea about a possible cause: What if a save action is initiated while the page is still being loaded? This may cause some or all paragraphs to be overwritten by empty data.

Empty data cannot be save because of database table constraints and the validations that prevent empty data saving. Still puzzled with the reason causing data loss.

So, I went to the user created the Bluegrass music translation at wikimania. and he showed me the draft loading correctly!. To make sure, I myself refreshed his Special:CX multiple times and all the time draft loaded, not data was lost. Suspecting spurious network glitch that aborted the draft loading api hit in the specific case?

@santhosh, the article that Asaf was trying to translate to Hebrew and lost is https://en.wikipedia.org/wiki/Brewster_Kahle .

As per our further analysis, it seems to be caused by changes in source article. We are fixing it in T106424

Arrbee renamed this task from Failures with auto-save causes users data loss when translating to [Tracking] Failures with auto-save causes users data loss when translating.Aug 5 2015, 7:16 AM

Two more reports, both to Hebrew:

  • Armenian genocide
  • Hamidian massacres

And also International Alliance of Women.

Ongoing task and will continue till the end of the release

In this comment there are details of a partial loss of data, and information being recovered in the wrong place. This seems to suggest some issues in the way content is recovered (probably because of heavy changes in the source article).
This could be potentially avoided if we could load the same version the user started translating (either by default or as fallback when the updated version is not compatible).

Change 246464 had a related patch set uploaded (by Santhosh):
Log the save and restore failures to eventlogging system

https://gerrit.wikimedia.org/r/246464

Change 246464 merged by jenkins-bot:
Log the save and restore failures to eventlogging system

https://gerrit.wikimedia.org/r/246464

The simple logging of failures is getting deployed this week. We probably need some more to identify all the causes.

Nemo_bis renamed this task from [Tracking] Failures with auto-save causes users data loss when translating to Failures with auto-save causes users data loss when translating (tracking).Nov 30 2015, 6:33 PM
Nemo_bis edited a custom field.
Arrbee renamed this task from Failures with auto-save causes users data loss when translating (tracking) to [Tracking] Failures with auto-save causes users data loss when translating.Dec 7 2015, 12:28 PM

From mid-sprint refinement meeting today:
RB: Do we need more tickets about restoration problems?
ST: Last week I saw one report on the talk page - did not investigate - needs investigation
ST: Best thing is to create tickets for such things on the talk page and add to current sprint
PG: I recently created a ticket which I was not sure had technical issues.
ST: Yeah the one about using older version if alignment fails. We had an issue because we did not save the original source revision, but that has been fixed now.
PG: But does that sound like a good approach we want to take?
ST: There is the tangential issue of stable section ids. There was long discussion when sections should change ids.
ST: We can avoid the requirement of stable ids by using the cxserver id system.
ST: But we also started storing the source sections now – that is the connection.
PG: But we are only storing the sections that user is translating.
ST: We need to get all these things sorted.
ST: If we make the saving and restoring granular, then the scope of losing whole translation is going away.
ST: There is tech debt when we designed and implement parallel corpora. We still save the whole translation in addition to the sections. We want to get rid of saving the whole translation.
ST going over T124399: Migrate the draft translation restore mechanism to use data from cx_corpora table
ST: We can start this (task above) immediately after AbuseFilter work
NL: Should be extra careful to not lose any data

This comment describes a case of translation not being saved after working on it for a while ("a whole day").

Danny_B renamed this task from [Tracking] Failures with auto-save causes users data loss when translating to Failures with auto-save causes users data loss when translating (tracking).May 27 2016, 5:46 PM

@Amire80 / @Arrbee: All subtasks of this high priority Tracking-Neverending task have been closed since 30 months ago and Tracking tasks are deprecated.
Can this task be resolved? If not, what is it open for? Thanks!

Pginer-WMF claimed this task.

Let's close this. Version 2 is expected to solve these, and individual issues are reported independently for each specific case.