Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Confirm
Close Dialog

User Image
sandmann
65 discussion posts
I recently updated to the v9.2.1 final release version. Lo and behold, I'm seeing a whole slew of new images that I have never seen before, I'm guessing between 5 percent and 10 percent. The image library hasn't changed in the past year and prior to this update I might see a new image once a week or so.

(I've seen this happen before, after a major update supposedly "new" images start appearing.)

Anyway, I looked at WallpaperHistoryV4.dB and I see a bunch of bad data in the ImageAddedDateTimeUTC field. Instead of a date and time I see "1899-12-30" over and over again. The value in the ImagePathHashMD5 field appears okay, so far as a casual examination can tell me.

Bug somewhere?
Jun 7, 2018  • #1
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Sounds like it! I'll do some testing here next week to see what I can find out.
Jun 10, 2018  • #2
Keith Lammers (BFS)'s profile on WallpaperFusion.com
I wasn't able to reproduce this here upon upgrading versions, unfortunately. I will put a ticket in with our devs to do a code review of the wallpaper history to see if they can spot anything that might be causing this to happen.
Jun 18, 2018  • #3
User Image
sandmann
65 discussion posts
Okay. Thanks.

Also, I know I've bugged you about this before, but there is/was something off with the wallpaper history management. I'm STILL seeing lots of new images. Unfortunately the filename is hashed in the database so I can't see it. With the latest version (v9) did the devs change something? If sometimes the mixed case filename gets hashed that will be one entry, but an all caps or all lower case will be another, as will a trailing space, etc. Maybe it's working correctly now but wasn't in v8? I'm taking wild guesses here. Is library size an issue? This one is only ~20,000, but I have another that is 300,000 (a bit too many to remember.... ;-) Since the database just gets deleted/reset when DF thinks its shown all the images, what is the criteria for when this happens?
Jun 18, 2018  • #4
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Nothing's changed regarding the wallpaper history in 9.x, no. The history database gets reset when DisplayFusion sees that all of the files in the folder have an entry in the database.

The next time you run into the dates getting corrupted, could you send me a copy of your wallpaper history DB file?
Jun 21, 2018  • #5
User Image
sandmann
65 discussion posts
Copy of the database file attached. The corruption appears in all six tables. Due to size the file is RAR'd.

And I do have a strange little bug to tell you about. I copied the WallpaperHistoryV4.db file to WallpaperHistoryV4.asof21Jun2018.db. Opened WinRAR, selected it to RAR, then it disappeared!!

Strange.

This time I copied the WallpaperHistoryV4.db file to WallpaperHistoryV4asof21Jun2018.db (no dot). Opened WinRAR, selected it to RAR, then it disappeared too!!

It seems DF is truncating the database filename. Not sure what or if DF is updating though.

So I copied it again, this time giving the new name a different prefix. All went as expected.

So, is the wallpaper image filename getting truncated or RTrimmed to some length somewhere?
• Attachment [protected]: Asof21Jun2018-WallpaperHistoryV4.rar [7,936,935 bytes]
Jun 21, 2018  • #6
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Thanks! I'll pass this over to the devs and see what they can find out.
Jun 22, 2018  • #7
Jon Tackabury (BFS)'s profile on WallpaperFusion.com
Hello, for the issue of the copied file being removed, DisplayFusion was probably just cleaning up rogue .DB files, it likes to try and keep things clean so it will remove unexpected files.

As for the issue with corrupted data, the data in all 6 tables here looks fine. There are no null values for the date stamps, it looks pretty normal. What database tool are you using to read the file? I would recommend Navicat for Sqlite and see if you get the same results when looking at the file contents.

The image filename's aren't being truncated or anything, they're just being stored as base64 encoded strings to save space in the database.

I'm not sure what do look at next, there doesn't seem to be an issue with the .DB file itself here. I'll pass some notes along to Keith for further testing and we'll see what we can do. Thanks!
Jun 25, 2018  • #8
User Image
sandmann
65 discussion posts
Jon,

I was using sqlite, albeit an old v3.1 x32 version. I looked at the file using sqlite v5.2 x64 and noticed something odd. For example, in the 201 table, record #2, the timestamp in v3 shows as "1899-12-30", but in v5 it shows as "2018-05-09 00:05:48.007Z". But in the hex and record editor they both look the same in both versions. So I'm guessing this must be an artifact of v3; strange one though.

In the same table, using v5, record 151 is 24 bytes, but record 152 is 28 bytes, at 01:25:32.908Z and 01:27:37.1712002Z respectively. These extra 4 bytes get appended to chunks of entries, then they return to 24 bytes, (2002 in this case, or 003, 4002, etc). The chunks/groups last for an hour to 15 hours or so. No obvious pattern, at least to my eyes. Is this just an artifact of sqlite? (Interestingly, in v3, both records display at 24 bytes, only in the hex editor are the extra 4 bytes seen.)

Sorry I seem to be grasping at straws here, but I know there is something wrong with the "random image" selection process, even though you keep telling me there isn't. I don't know whether it is in the DF code, or third-party code you use. Maybe my expectations are different from what you are coding for, e.g., I am expecting ~100 percent of the images to be used before the cycle starts over again, while DF says 50 percent is "good enough."
Jun 25, 2018  • #9
Keith Lammers (BFS)'s profile on WallpaperFusion.com
It resets every 7 days by default, unless you've changed it in the Advanced Settings.

Could you send me a copy of your troubleshooting info? Here are the steps:

  • Open the Settings > Troubleshooting tab
  • Click the "Export Info to File" button
  • Reply with the file attached
Jul 5, 2018  • #10
User Image
sandmann
65 discussion posts
Keith,

I changed "Days to expire history images" to 99999 a long time ago. Info attached.
• Attachment [protected]: DisplayFusion Backup (2018-07-05 @ 14-20, 9.2.1.0, HBN).reg [603,952 bytes]
Jul 5, 2018  • #11
Jon Tackabury (BFS)'s profile on WallpaperFusion.com
How many images do you have in your collection that you're using DisplayFusion to load randomly? Can you try with a smaller collection size just for testing, with maybe 20 images? That might be easier to keep track of to make sure they're all being used.
Jul 10, 2018  • #12
User Image
sandmann
65 discussion posts
I have about 350,000 images presently.

Per your request I put 20 images into a new directory and changed one of the split-screen monitors to use this directory instead, changing on 1-minute intervals. I watched it for three cycles and noted the picture number (e.g., Stock.Photo.Waterfalls.01.jpg). I also kept open the wallpaper history database in sqlite and monitored it at the same time. I saved copies of the database as the testing went along.

After the first cycle of 20 images the database table reset, as expected, and no duplicates were shown.

After the second cycle of 19 images the database table reset, and no duplicates were shown.

What should have been the 20th entry in cycle #2 became the first entry in cycle #3. After 19 images the database table reset and no duplicates were shown.

And what should have been the 20th entry in cycle #3 became the first entry in cycle #4. I stopped monitoring before it finished.

I also checked a few of the filename hashes and they seemed be the same across testing cycles (as expected). These are simple filenames, and since DF supports multiple languages the character set of the filename should not be an issue (many of the wallpaper images I have use non-English characters).

But none of this should be a surprise to you as I am sure you perform just such a test in-house.

But what does DF do when it is confronted with a table with 300,000 entries? I know the filename hash is indexed but as you start reading through the enumerated directory file listing looking for a random image, it would be easy to hit 200,000 "faults" that already have an entry in the table. What does DF do? Is there a timer somewhere that expires and DF just grabs the last image it was checking? Or, if you have optimized the code between v8 and v9 so that this section is significantly faster, that might explain why I am seeing new images. Again, I know I'm grasping at straws.
Jul 10, 2018  • #13
Jon Tackabury (BFS)'s profile on WallpaperFusion.com
Thanks for the follow-up, 300k images is a huge collection for sure. It could be a timing issue where it just takes too long to look through them all, we'll have to look into that.
Jul 11, 2018  • #14
User Image
sandmann
65 discussion posts
Okay. Thanks.

I did a quick search through old forum posts and while 300k may be on the high end, there are certainly DF users with still larger image libraries. I vaguely recall a comment Keith made some years ago about DF supporting some of these (commercial?).

I'm sure you have lots of ideas about how to reduce the CPU load for wallpaper selection/management (and I'll happily chime in if you want more ideas ;-)
Jul 12, 2018  • #15
Jon Tackabury (BFS)'s profile on WallpaperFusion.com
It's true, we've seen some massive libraries. We'll keep plugging away. :)
Jul 12, 2018  • #16
User Image
sandmann
65 discussion posts
Any progress on this problem in the 9.4 beta 1 release?
Aug 23, 2018  • #17
Jon Tackabury (BFS)'s profile on WallpaperFusion.com
Sorry, no progress on this issue yet. It's going to take some significant time to troubleshoot and rewrite the file selection code.
Aug 28, 2018  • #18
Subscribe to this discussion topic using RSS
Was this helpful?  Login to Vote(-)  Login to Vote(-)