6.0.0-beta1
7/18/25

[#9773] Date column not updated after midnight
Summary Date column not updated after midnight
Queue IMP
Queue Version Git master
Type Enhancement
State Resolved
Priority 1. Low
Owners slusarz (at) horde (dot) org
Requester jan (at) horde (dot) org
Created 04/01/2011 (5222 days ago)
Due
Updated 02/15/2014 (4171 days ago)
Assigned
Resolved 11/23/2011 (4986 days ago)
Milestone
Patch No

History
02/15/2014 02:23:52 PM jmozdzen (at) nde (dot) ag Comment #13 Reply to this comment
An issue might be that you are running 6.1 and I am running 6.2.

Comparing the two, I wonder if this is causing problems (i.e. make 
this change on your file):
Confirmed :)

After changing that single line, the time/date display switches 
correctly with the first poll after midnight.

Regards,
Jens
02/14/2014 12:27:56 PM jmozdzen (at) nde (dot) ag Comment #12 Reply to this comment
An issue might be that you are running 6.1 and I am running 6.2.

Comparing the two, I wonder if this is causing problems (i.e. make 
this change on your file):
[...]
thank you for your suggestion - I have updated the file and will 
report back the results!

Regards,
Jens
02/14/2014 03:42:14 AM Michael Slusarz Comment #11 Reply to this comment
An issue might be that you are running 6.1 and I am running 6.2.

Comparing the two, I wonder if this is causing problems (i.e. make 
this change on your file):

diff --git a/imp/lib/Ajax/Application/ListMessages.php 
b/imp/lib/Ajax/Application/ListMessages.php
index 00cd4aa..a084baa 100644
--- a/imp/lib/Ajax/Application/ListMessages.php
+++ b/imp/lib/Ajax/Application/ListMessages.php
@@ -141,7 +141,7 @@ class IMP_Ajax_Application_ListMessages
              $parsed = $imp_imap->parseCacheId($args['cacheid']);
              $uid_expire = true;

-            if (!$parsed['date'] != date('z')) {
+            if ($parsed['date'] == date('z')) {
                  try {
                      $imp_imap->sync($mbox, $parsed['token'], array(
                          'criteria' => Horde_Imap_Client::SYNC_UIDVALIDITY

02/12/2014 11:34:29 PM jmozdzen (at) nde (dot) ag Comment #10 Reply to this comment
The key to this might be the following observation:

The data element of the viewport object is empty, in the first poll 
response after midnight.

A future poll, which reports a new message, does have the viewport 
object, but with a data element containing the new entry's field values:

{"response":true,"tasks":{"imp:viewport":{"label":"Posteingang","totalrows":39,"rowlist_reset":true,"rowlist":{"39002":1,"39001":2,"38989":3,"38965":4,"38963":5,"38904":6,"38903":7,"38785":8,"38722":9,"38632":10,"38571":11,"38569":12,"38560":13,"38535":14,"38297":15,"38187":16,"37993":17,"37893":18,"37878":19,"37871":20,"37826":21,"37684":22,"37412":23,"37137":24,"35362":25,"35255":26,"35109":27,"34242":28,"33979":29,"33926":30,"31722":31,"30608":32,"28412":33,"23231":34,"18485":35,"11078":36,"38537":37,"9889":38,"6262":39},"data":{"39002":{"flag":["personal","unseen"],"size":"5 KB","date":"00:13:48","from":"noreply@bugs.horde.org","subject":"[Tickets #9773] Re: Date column not updated after midnight"}},"cacheid":"VTM5MDAzLFYxMjU2NTc2OTUwLEgzMjY5Nw==|1|1|D43","view":"SU5CT1g"},"imp:poll":{"SU5CT1g":1,"SU5CT1gvQWJsYWdlL21haWxpbmctbGlzdHM":3,"SU5CT1gvQWJsYWdlL05ERSBBRy9LdW5kZW4vT0ZEIE5pZWRlcnNhY2hzZW4vTlotUHJvYmxlbWU":0,"SU5CT1gvQWJsYWdlL1ByaXZhdC9GaW5hbnplbi9EZXV0c2NoZSBCYW5r":0,"SU5CT1gvanVuaw":0,"dXNlci9hbW96ZHplbg":1},"imp:quota":{"m":"Keine 
Begrenzung","p":0,"l":""}}}

I tend to assume that the browser's message list is not replaced (with 
a version with updated time stamps) because no new entries' data was 
sent with that "after midnight" poll response.
02/12/2014 11:20:23 PM jmozdzen (at) nde (dot) ag Comment #9 Reply to this comment
Here's the JSON from the first poll after mid-night. I see no other 
requests but the imp/poll and imp/toolbarUpdate at regular intervals 
(unless, of course, I'd manually interact with IMP - which I didn't do 
during this test).

{"response":true,"tasks":{"imp:viewport":{"label":"Posteingang","totalrows":38,"rowlist_reset":true,"rowlist":{"39001":1,"38989":2,"38965":3,"38963":4,"38904":5,"38903":6,"38785":7,"38722":8,"38632":9,"38571":10,"38569":11,"38560":12,"38535":13,"38297":14,"38187":15,"37993":16,"37893":17,"37878":18,"37871":19,"37826":20,"37684":21,"37412":22,"37137":23,"35362":24,"35255":25,"35109":26,"34242":27,"33979":28,"33926":29,"31722":30,"30608":31,"28412":32,"23231":33,"18485":34,"11078":35,"38537":36,"9889":37,"6262":38},"data":[],"cacheid":"VTM5MDAyLFYxMjU2NTc2OTUwLEgzMjY5Ng==|1|1|D43","view":"SU5CT1g"},"imp:poll":{"SU5CT1g":0,"SU5CT1gvQWJsYWdlL21haWxpbmctbGlzdHM":3,"SU5CT1gvQWJsYWdlL05ERSBBRy9LdW5kZW4vT0ZEIE5pZWRlcnNhY2hzZW4vTlotUHJvYmxlbWU":0,"SU5CT1gvQWJsYWdlL1ByaXZhdC9GaW5hbnplbi9EZXV0c2NoZSBCYW5r":0,"SU5CT1gvanVuaw":0,"dXNlci9hbW96ZHplbg":1},"imp:quota":{"m":"Keine 
Begrenzung","p":0,"l":""}}}

Further imp/poll again have only the "short version" answer:

{"response":true,"tasks":{"imp:poll":{"SU5CT1g":0,"SU5CT1gvQWJsYWdlL21haWxpbmctbGlzdHM":3,"SU5CT1gvQWJsYWdlL05ERSBBRy9LdW5kZW4vT0ZEIE5pZWRlcnNhY2hzZW4vTlotUHJvYmxlbWU":0,"SU5CT1gvQWJsYWdlL1ByaXZhdC9GaW5hbnplbi9EZXV0c2NoZSBCYW5r":0,"SU5CT1gvanVuaw":0,"dXNlci9hbW96ZHplbg":1},"imp:quota":{"m":"Keine 
Begrenzung","p":0,"l":""}}}
02/12/2014 11:13:48 PM jmozdzen (at) nde (dot) ag Comment #8 Reply to this comment
How may I trace this "browser cache ID" thing
Firebug is probably best.  The cacheid is sent in the imp:viewport 
task object contained in the JSON responses to various mailbox 
actions.

It looks something like this: "VTIxMTkyLFYxMjU1Njg1MzM4LEg1MDEwNQ==|9|0|D34"
Finally I got around to testing this with Firebug - I'm sorry for the delay.

After a fresh page reload (I had logged in previously, selected my 
INBOX for display and selected your latest Horde bug reply - then I 
hit the browser's "reload" icon), I do see the mentioned imp:viewport 
with it's cache id as part of the imp/dynamicInit POST request:

cacheid         "VTM5MDAyLFYxMjU2NTc2OTUwLEgzMjY5Ng==|1|1|D42"

From then on, imp/poll POST requests (besides the toolbar updates) 
are the only requests I see, either automatically or by pressing IMP's 
"update" link. Their response JSON only has imp:poll and imp:quota 
objects in "tasks" - neither contain a cacheid.

The first imp/poll after midnight then actually has a viewport object 
with a cacheid element:

cacheid        "VTM5MDAyLFYxMjU2NTc2OTUwLEgzMjY5Ng==|1|1|D43"

This is indeed different from the cacheid reported initially, but as 
observed previously, the time stamps in the message list remain as 
"time-only" even after the imp/poll requests after midnight.

Further requests again have no viewport object in their responses.

Seems like the cache id change goes by unnoticed?

Regards,
Jens
The currently installed version is imp 6.1.6 from PEAR.
02/04/2014 07:08:15 AM Michael Slusarz Comment #7 Reply to this comment
How may I trace this "browser cache ID" thing
Firebug is probably best.  The cacheid is sent in the imp:viewport 
task object contained in the JSON responses to various mailbox actions.

It looks something like this: "VTIxMTkyLFYxMjU1Njg1MzM4LEg1MDEwNQ==|9|0|D34"
02/04/2014 07:04:38 AM Michael Slusarz Deleted Original Message
 
01/31/2014 09:41:22 AM jmozdzen (at) nde (dot) ag Comment #6
New Attachment: 2014-01-31-IMP-dates.png
Reply to this comment
doesn't work for me (see #12940) with IMP 6.1.6, Horde_Imap_Client
2.17.1. IMAP server is Cyrus 2.4.17.
Verified working.  The browser cache ID for a mailbox is appended 
with a string of the form "D###" where ### indicates the current day 
of the year.  This cache id is guaranteed to change after midnight, 
at which point the browser empties its message cache and fetches a 
new mailbox slice from the server (with the updated dates).
attached a "proof-of-notworking4me" image from today - you can clearly 
see yesterday's messages with time-only timestamps. It's from a 
session run over-night.

According to "pear list-ugrades", the server is running the latest 
modules as of today. I had run a "horde-clear-cache" after the recent 
upgrade (which, iirc, included an update to some caching module). But 
these symptoms have been here since forever, not just after the recent 
upgrade. And in case it might matter, we're running Kolab backends here.

How may I trace this "browser cache ID" thing - I ran a network trace 
last night, but unfortunately forgot to tune down the encryption 
methods... wireshark wouldn't decode the SSL traffic despite having 
the private server key :[ Is that the right traffic to look at (so I'd 
repeat the test next night) or is this something that acts either 
client-side only or server-side only?

This still is low prio to me, but since I've already started looking 
into this, I offer to take it further...
01/30/2014 07:44:30 PM Michael Slusarz Comment #5 Reply to this comment
[...]
UIDVALIDITY will also fail when the day changes, so metadata creation
needs to appear below this line since metadata will be reset in this
instance.
doesn't work for me (see #12940) with IMP 6.1.6, Horde_Imap_Client 
2.17.1. IMAP server is Cyrus 2.4.17.
Verified working.  The browser cache ID for a mailbox is appended with 
a string of the form "D###" where ### indicates the current day of the 
year.  This cache id is guaranteed to change after midnight, at which 
point the browser empties its message cache and fetches a new mailbox 
slice from the server (with the updated dates).
01/30/2014 09:22:58 AM jmozdzen (at) nde (dot) ag Comment #4 Reply to this comment
[...]
UIDVALIDITY will also fail when the day changes, so metadata creation
needs to appear below this line since metadata will be reset in this
instance.
doesn't work for me (see #12940) with IMP 6.1.6, Horde_Imap_Client 
2.17.1. IMAP server is Cyrus 2.4.17.

Do I read it correctly, that I should trace the first IMAP call after 
a (server) date change to see what is going wrong?
11/30/2011 10:29:46 PM Git Commit Comment #3 Reply to this comment
Changes have been made in Git for this ticket:

Fix regressions in search mailboxes due to Ticket #9773
Move UIDVALIDITY check before empty mailbox check, since a UIDVALIDITY
failure should cause all viewport information to be reset, regardless of
whether the mailbox contains messages.

UIDVALIDITY will also fail when the day changes, so metadata creation
needs to appear below this line since metadata will be reset in this
instance.

  2 files changed, 36 insertions(+), 36 deletions(-)
http://git.horde.org/horde-git/-/commit/6f435e07cd2a1419a35c1de8f73fa81cc3d22b9c
11/23/2011 01:24:19 AM Michael Slusarz Assigned to Michael Slusarz
 
11/23/2011 01:24:09 AM Michael Slusarz State ⇒ Resolved
Priority ⇒ 1. Low
Type ⇒ Enhancement
 
11/23/2011 01:23:53 AM Git Commit Comment #2 Reply to this comment
Changes have been made in Git for this ticket:

[mms] Purge browser cache daily in dynamic view; updates time stamps 
to proper format (Request #9773).

  6 files changed, 54 insertions(+), 25 deletions(-)
http://git.horde.org/horde-git/-/commit/b56b7893d8fbba53ea6498709809edb65a06f0ba
04/01/2011 11:13:38 PM Jan Schneider Comment #1
Priority ⇒ 1. Low
State ⇒ Unconfirmed
Patch ⇒ No
Milestone ⇒
Summary ⇒ Date column not updated after midnight
Type ⇒ Bug
Queue ⇒ IMP
Reply to this comment
This is really just a cosmetical issue. But after midnight, 
yesterday's messages are not updated to only show the date. This would 
actually be fine, but if you navigate to a mailbox after midnight that 
hat receiced new messages before midnight, you now have mixed date and 
time for yesterday's messages.

Saved Queries