Skip to main content
Inspiring
July 29, 2015

P: Wrong timestamp stored in catalog causing wrong metadata status (all Windows versions)

  • July 29, 2015
  • 66 replies
  • 3667 views

Hi,

The problem I describe below is not new (I observed this at least since version 3) but this time I took the time to investigate more deeply...

From time to time, LR tells me that the XMP file of a given image is no longer in sync with the metadata in the catalog. Most often, this is correct because I made changes without recording the XMP file (Ctrl-S - I'm not using the automatic XMP updating mode). But very often, this information is simply wrong. I didn't change anything to the image and suddenly, the little down arrow appears in the upper right corner of the thumbnail.

Hitting Ctrl-S may or may not fix the problem. Sometimes, the little down arrow reappears after a few seconds or minutes although I didn't do anything (hands away from keyboard and mouse).

I recently did the following test for multiple images unduly displaying the "metadata status changed" flag. I compared the following values :

1. Windows "last modified" timestamp for the XMP file.
2. Value of the xmp:MetadataDate field in the XMP file.
3. touchTime column value for that image in the Adobe_images table of the catalog (which is a SQLite database).

The touchTime value is stored in a special format, so I had a hard time converting it to a readable date/time value. However, I will not explain this and how I navigated the database in order to access this timestamp (this requires some knowledge about databases).

Result:
For all the images tested, values #1 and #2 were always strictly identical. The touchTime value was always off (sometimes about 10-15seconds, sometimes much more). So no wonder that LR thought that the XMP file and the metadata in the catalog were not in sync.

Moreover, the difference in time can be negative of positive. So LR displays the up or down arrow accordingly (meaning that the XMP file is older or newer than the metadata in the catalog, respectively - which is wrong in both cases).

I explained above that sometimes, the image reappears as "not in sync" just a few seconds or minutes after I did a Ctrl-S. In that case, a quick look at the database showed me that the touchTime field had not been updated. So the time difference causing the image to be flagged as "not in sync" was still there. In that case, the problem can be fixed by reading the metadata from the XMP file which was actually correctly updated. This operation updates the catalog and everything is in sync again.

Anyway, there's something very wrong in the computation of the touchTime value of the Adobe_images table. That seems to be obvious. This wrong timestamp generates in turn a wrong metadata status.

I made another interesting test :

1. I started from a situation were 0 image was flagged as "not in sync" with the XMP file.

2. I purged all 1:1 previews and started a Build all 1:1 previews.

3. In Library mode, I setup a filter to show only the images that had the Metadata Status set to "has been changed". I got a cup of coffee and waited.

At the beginning of the generation process, no image was displayed in the grid, as expected. While LR was building the previews, images unduly tagged as "not in sync" started to appear. I got about 200 of them. For all these images, the metadata status was just plain wrong. These were finalized images not modified since a long time and for which the XMP file had been timely updated after the last modification. I checked the touchTime field for some of them and each time it was different from the Windows "last modified" timestamp and from the xmp:MetadataDate field of the XMP file as mentioned above.

So now I know what's going wrong but I'd like to have this problem fixed after all these years.

Thanks in advance.

This topic has been closed for replies.

66 replies

SamoreenAuthor
Inspiring
February 15, 2017
I don't see any difference between the various file types.
--Patrick
johnrellis
Legend
February 15, 2017
...and PSDs too.
johnrellis
Legend
February 15, 2017
Have you observed that it happens less frequently or not at all with .xmp sidecars?  JPEGs, TIFFs, DNGs, and PNGs all store metadata inside the file, and LR sometimes or often rewrites the entire file when it makes a change to the metadata.
SamoreenAuthor
Inspiring
February 15, 2017
What I wonder about now, is if the time stamp problem also happens with proprietary raws - since the XMP file is much smaller.
It happens with any file type including TIFFs  and JPEGs.
--Patrick
chain569
Participating Frequently
February 15, 2017
I think I have all the possible statuses in a collection set.  However, with the recent 'offensive brush' problem (for which the save-read doesn't resolve) - I'm still in the process of deciding which way to go...  Either just leave the offensive brush in there as current rendering and/or in snapshots, or keep them in VC's only.  The latter will allow the status to resolve.  In the meantime, I've created a keyword "snapshots-as-VC" and also enter that into the user comments XMP field, for both masters and VC's.  And for some of status smart collections, I've now excluded ones with that keyword.

With the timestamp problem - almost certainly, as there would have been more latency with an external USB drive mapped to a network drive letter, than an internal drive..  Therefor allowing more chances of having the timestamp differences when writing it out to the DNG. What I wonder about now, is if the timestamp problem also happens with proprietary raws - since the XMP file is much smaller.  I wouldn't know though, as all I use is DNG.

It IS amazing, though, that this timestamp issue hasn't been fixed in all these years.
The offensive-brush problem I can see not being fixed yet - as it's only recently started happening in maybe the last 1 to 2 versions or so.  (For posterity, that's LR 6/2015.8 or .7)

However, for either issue/cause, it is certainly unsettling to those of us that like the reassurance of having the belt-and-suspenders backup approach.  😕😕
SamoreenAuthor
Inspiring
February 15, 2017
However, this would certainly explain the problems I was having a fair while ago - where doing the 'read' after a 'save' would indeed fix the status.
This is probably related. When using Ctrl-S to save the metadata to the XMP file and when the little down arrow re-appears after a while although no parameter has been changed for that image, one may wonder whether the metadata have been correctly written to the XMP file. I have checked this and I can confirm that the data were correctly written. This is why the "read metadata after a save" trick works. At least for a while. The problem can quickly re-appear, though. For example, if the preview for this image has been discarded, just browsing that image's folder can make the problem re-appear.

I now have a smart collection named "Unsaved metadata" which uses that simple rule : Metadata status, is not, Up to date. This allows me to see more quickly when images are suddenly assigned a wrong status.
--Patrick
chain569
Participating Frequently
February 15, 2017
I wonder how similar the two issues are, though.

However, this would certainly explain the problems I was having a fair while ago - where doing the 'read' after a 'save' would indeed fix the status.  Even more on point, was that I used to access the image files on a USB hard drive which I would then map as a network drive, in order to be able to disconnect the images and work on just the smart previews.  (Before LR gained that preference item to do so.)
     That issue became far less prevalent after moving the images onto an internal sata drive (but still mapped as a network drive).  Although, IIRC, I may still have encountered a couple/few where the save-read would resolve status.  But I haven't encountered any of these since removing the mapped reference and directly accessing the images, albeit it hasn't been that long.
(It may also be worth noting that I've always used DNG, where I suppose it may be more possible for the two above timestamps to differ..  Maybe similar to jpg, as John notes.)

The issue at the other thread is not resolved by the save-read.  And is only resolved after removing the problem brushing from the currant settings, as well as in any snapshots.  I'm not saying they couldn't still be related somehow, but the workaround is different, on top of the brushings 'cause'.  Maybe that's an avenue that Rikk/Adobe could explore.
johnrellis
Legend
February 14, 2017
Patrick, great detective work. You've observed that LR is using one time value for file last-modified date and XMP:MetadataDate, and another time value for "touchTime". It's very possible that LR grabs the current time for XMP:MetadataDate, then writes the metadata to disk, then updates "touchTime" with the new current time. Usually, that happens very quickly, so the two times don't differ. But if there is a delay in writing the metadata to disk due to operating-system or disk vagaries, they could differ by a lot, especially when writing large JPEGs. (LR sometimes or often rewrites the entire JPEG when it updates the metadata.)
johnrellis
Legend
February 14, 2017
There's been a steady stream of occasional complaints over the years about incorrect metadata status.  Some of the causes have been resolved in earlier versions, but clearly not all.  For example, see this recent post: https://feedback.photoshop.com/photoshop_family/topics/problem-saving-metadata-if-certain-adjustment... .  Adobe employee Rikk Flohr has been involved in that topic, and I've replied there, referencing this topic.
SamoreenAuthor
Inspiring
February 14, 2017
Hi,

Maybe others are not seeing the problem for any reason (e.g. not using LR the same way as I use it) but it's easy to check what I have explained above, that is, the creation of wrong time stamps in the catalog. Any developer capable of opening the LR SQLite database can check this.
--Patrick