"Software development is hard. Adobe's software is incredibly complex. Sure this sucks, but it's worth keeping that in mind before blasting Adobe."
The sentiment is solid, but this is a major software company dropping an update that fails to do BASIC checks (like "is the target directory named what I expect?") before permanently deleting data. Blasting is entirely appropriate.
This is worse than the other serious bug I've been dealing with today in Lightroom.
TL/DR, using Lightroom's import function creates huge amounts of crap video cache files in at least two buried directories regardless if those video files are imported into LR or not. I had a 5-6 GB photo library and 262GB of cache files for video I had not imported. The application has a cache limit, and blew by mine by a factor of 87. Cache purging does not delete the data either.
Anyway, not releated to this particular bug, but I'm not feeling much love for Adobe today.
Got ya beat. LR had multiple cache files of all my video files. I have multiple point in time backups of my key data. I also have a fracked up photo library due to a pre-CrashPlan operator error that deleted some important pictures. So I've been running the import process over these point in time back ups to restore. So my cache file directory looked like this:
Also, the computer should not spontaneously combust. And it shouldn't try to bite my hand off. And it shouldn't morph into a soul-devouring monstrosity either. In other words, there is an infinite list of things that your/my/any program shouldn't cause. Good luck making user stories for all of them.
Sounds funny, but you are sadly correct. Some junior (or even an experienced) dev just took the shortest route to delete the file that was always listed first on their computer. `deleteFile(files[0]);`
Even just trying to figure out how this bug could even be introduced baffles me, and I've been able to correctly determine the cause of some very odd bugs before (including this one from Adobe: https://news.ycombinator.com/item?id=8797640 )
It reminds me of this quote:
"There are two ways to develop software: Make it so simple that there are obviously no bugs, or so complex that there are no obvious bugs." - Tony Hoare
My favorite latest CC bug: There's a node.js instance that CC installs that constantly pegs my CPU at 50%(100% core 1 of 2).
I can kill it and it keeps coming back, Freaking annoying, I'm almost to the point of just uninstalling CC from my laptop and leaving it only for my desktop.
No clue what it's doing there but it'll happily spin away for hours at 100% utilization.
"Good news, everybody. Further reports indicate the bug doesn't delete the folder, just the contents. So, all that needs to be done is to make a protection folder one time."
Oh great! I'm glad it just deleted the files but leaves an empty folder intact. Really dodged a bullet there.
In the original post, he says that you need to create a directory, and then write a script to recreate it in the event that it gets deleted (to prevent Adobe from nuking your files). Since Adobe deletes the contents and not the folder, it turns out that you don't need to keep recreating it.
It sounds like you want those to be steps that come after each other, like some sort of waterfall.
If you want to get with the times, you, the developer, should write a unit test for each file you think shouldn't be deleted on running the application.
Another way of looking at it is there shouldn't be a product update/release getting pushed out to hundreds of thousands of users (a guess), without passing an extensive validation suite. Developer unit tests are for a different purpose.
Nowadays I work in medical devices. It's nice because you're actually legally required to spend 5 minutes making sure your product does what you say it will before you're allowed to sell it, in contrast with what's happened to the rest of the industry.
The sentiment is solid, but this is a major software company dropping an update that fails to do BASIC checks (like "is the target directory named what I expect?") before permanently deleting data. Blasting is entirely appropriate.