Page MenuHomePhabricator

Calendar "away icons" do not automatically appear
Closed, ResolvedPublic

Description

See this Screenshot:


All users shown here are busy, because there are at this event. But as you can see, only two of four users are marked at busy. This is not, because they set theirself to available.

I will try to describe that as I experienced it:

  • Somebody created the event
  • I joined it
  • I set myself to "busy"
  • The event started, and I was not marked as busy
  • I set myself to available, then to busy again, then I was marked
    • From before: declining and then rejoining an event helps too

Original expected result: Mark all users as busy/away when the events starts, if they set this option (busy/away instead of available) for therself.

Version: Update to the master 2 hours ago.

phabricator
    8fbb411a9a726bb935cce0d893d00748e1716dff (Sat, Nov 19) 
arcanist
    fad85844314b151994769a461825c90f7400c145 (Sat, Oct 22) 
phutil
    086df1ba443c08c41a52e712c3bb59bcad718160 (Wed, Nov 16)

Event Timeline

Although it's very possible that this is a bug, this state also has a 72-hour internal cache which wasn't written correctly in older versions of Phabricator.

Since it sounds like less than 72 hours passed between updating and this report, it might just be a bad cache. Can you let us know if you're still seeing this once 72 hours have passed after the update?

(I haven't seen this or been able to reproduce it locally, although it's certainly possible that there's a real bug here and this cache stuff is a red herring.)

I created a test-event now, it starts in an hour, and I will take a look if this occurs again.

It's like before: Neither the orange thing appears nor am I listed as "busy" at my profile. I'm listed as available there.

Hmm, can you try creating a test event on this install to see if you can reproduce it here? I played around with this a little bit locally but wasn't able to get it to break.

Yeah, looks like that reproduced it. Here are the caches:

mysql> select username, availabilityCache, availabilityCacheTTL, FROM_UNIXTIME(availabilityCacheTTL) from user where username IN ('chad', 'Luke081515.2')\G
*************************** 1. row ***************************
                           username: chad
                  availabilityCache: {"until":null,"eventPHID":null,"availability":null}
               availabilityCacheTTL: 1480189241
FROM_UNIXTIME(availabilityCacheTTL): 2016-11-26 19:40:41
*************************** 2. row ***************************
                           username: Luke081515.2
                  availabilityCache: {"until":null,"eventPHID":null,"availability":null}
               availabilityCacheTTL: 1480186681
FROM_UNIXTIME(availabilityCacheTTL): 2016-11-26 18:58:01
2 rows in set (0.00 sec)

Here's the event:

mysql> select * from secure_calendar.calendar_event where id = 1217\G
*************************** 1. row ***************************
                 id: 1217
               phid: PHID-CEVT-c4gqx464jqvcze456dfk
           hostPHID: PHID-USER-e2dzczsa2nuhhxfeiqps
        dateCreated: 1479927467
       dateModified: 1479933332
        description: 
               name: Test-event
        isCancelled: 0
         viewPolicy: public
         editPolicy: users
            mailKey: vqrconlfu427xeaznnh5
           isAllDay: 0
               icon: fa-calendar
        isRecurring: 0
instanceOfEventPHID: NULL
      sequenceIndex: NULL
          spacePHID: PHID-SPCE-xqws3nnp3rqppzblrzy3
             isStub: 0
    utcInitialEpoch: 1479934800
      utcUntilEpoch: 1480536000
   utcInstanceEpoch: NULL
         parameters: {"startDateTime":{"kind":"absolute","year":2016,"month":11,"day":23,"hour":22,"minute":0,"second":0,"timezone":"Europe\/Berlin","isAllDay":false},"endDateTime":{"kind":"absolute","year":2016,"month":11,"day":30,"hour":21,"minute":0,"second":0,"timezone":"Europe\/Berlin","isAllDay":false}}
   importAuthorPHID: NULL
   importSourcePHID: NULL
     importUIDIndex: NULL
          importUID: NULL
   seriesParentPHID: NULL

I'll dig into this.

I'm pretty sure D16937 fixes this, thanks for the report! Let us know if you're still seeing issues after that.

(It may take up to 72 hours after updating to that for all the caches to clear, though, so there could still be some issues until then.)

E1218 seems to have worked properly after the patch, at least.

Luke081515.2 added a comment.EditedNov 25 2016, 3:15 PM

Thank you very much, I'll take a look :)