← Back to team overview

zeitgeist team mailing list archive

[Bug 778140] Re: Time warp problem in MOVE_EVENT handling

 

timestamp | uri | current_uri 
-----------------------------
00        |  A  |  A
10        |  A  |  A
20        |  A  |  A
30        |  B  |  B
40        |  C  |  C
50        |  A  |  A


move A to T at 35


timestamp | uri | current_uri 
-----------------------------
00        |  A  |  T
10        |  A  |  T
20        |  A  |  T
30        |  B  |  B
35*       |  A  |  T
40        |  C  |  C
50        |  A  |  A


move T to L at 15


timestamp | uri | current_uri 
-----------------------------
00        |  A  |  L
10        |  A  |  L
15*       |  A  |  L
20        |  A  |  T
30        |  B  |  B
35*       |  A  |  T
40        |  C  |  C
50        |  A  |  A


Problem:
1) we can not trace the origin of 20 since how is the origin uri. A while the current uri is T without having an A -> T or L -> T before 20 occurs
2) the Move event 35* if once is trying to reproduce the event timeline is invalid since A was moved to L already so we need to modify the move event

-- 
You received this bug notification because you are a member of Zeitgeist
Framework Team, which is subscribed to Zeitgeist Framework.
https://bugs.launchpad.net/bugs/778140

Title:
  Time warp problem in MOVE_EVENT handling

Status in Zeitgeist Framework:
  Triaged

Bug description:
  
  <RainCT> seiflotfy: the query updating current_uri on MOVE_EVENT should only change stuff with timestamp<move_event_timestamp
  <seiflotfy> RainCT, true
  <seiflotfy> good catch
  <RainCT> seiflotfy: there's also another ugly case
  <seiflotfy> RainCT, do tell
  <RainCT> seiflotfy: Imagine you insert event: 0. A, 1. A, 2. A, 3. B, 4. C, 5. A. Then with timestamp between events 3 and 4 you get A->T, so now you have "T, T, T, B, C, A"
  [...]
  <seiflotfy> i see the problem
  <seiflotfy> the last A should be a T
  <RainCT> no, the last A is fine
  <RainCT> because it is a new file with the same name
  [...]
  <seiflotfy> yeah ok
  <RainCT> seiflotfy: now you get A-L with timestamp between 1 and 2, so it should have "L, L, T, B, C, A", but since the current_uri of the first is already L you won't see it. for this it'd need to check the original URI instead of the current_uri
  <RainCT> are you with me so far?
  <seiflotfy> trying to
  <seiflotfy> RainCT, ok i cont get your last point
  <seiflotfy> A-L wont change the T
  <seiflotfy> because A has been move to T
  <seiflotfy> you can not move A again
  <seiflotfy> you need to move T
  <seiflotfy> thus its does not work
  <RainCT> yeah, but it should, because you're being told that it was moved before that
  <seiflotfy> unless you really want to you will have to look for all "MOVE_EVENTS" with A and figure out what A is now
  <seiflotfy> its doable
  <RainCT> so the move that happened later in time didn't affect those events, only the later ones
  <seiflotfy> RainCT, true
  <RainCT> the easy way to solve this is checking subj_id instead of subj_id_current
  <seiflotfy> RainCT, i think we should raise an exception
  <RainCT> but now when it gets really messed up is if there was even another move event before that
  <RainCT> which was already logged
  <seiflotfy> "You tried to move and event after it was used in a new location"
  <seiflotfy> RainCT, actually we also have the MOVE_EVENT logged
  <seiflotfy> you can then try to figrue out the patch of A
  <RainCT> yes, that's the solution
  <seiflotfy> the path
  <seiflotfy> RainCT, but i highly discourage that
  <RainCT> you can find the previos move event and set timestamp>previous_move_event.timestamp
  <seiflotfy> RainCT, exactly
  <seiflotfy> i am +- 0 on that tbh
  <seiflotfy> not sure
  <RainCT> ok, I don't dislike finding the previous timestamp
  <RainCT> i'll open a bug

To manage notifications about this bug go to:
https://bugs.launchpad.net/zeitgeist/+bug/778140/+subscriptions


References