Today we're releasing Stacks 2.0.7
You should see it in the Stacks automatic updater soon. If you don't, you can always download the latest version from our web site. Here's a link, just in case:
http://yourhead.com/stacks/download/
This version of Stacks fixes a problem where some images can become missing from the RapidWeaver site file. For the vast majority of people, this problem probably never existed, but for the few that did experience this problem this is a very important fix. Please install this one as soon as you can.
Personal note: This was probably the toughest debugging I've ever done in my 32 years of software development. The bug was intermittent, only happened when quitting, and the symptoms don't show up until relaunching. Furthermore it's isolated to a seemingly random and very small population of users.
And I definitely want to offer a kind thank you to the very patient users who helped me debug this one. They often endured repeated crashes, my sometimes cryptic requests for information, and lots and lots of console logs. I literally could not have done this without you guys since it was so tough to reproduce this bug. You guys are rock stars. If you're ever near Austin, the beer is on me.
And most importantly, I'd like to say sorry to the folks that have had their images disappear. I know apologies can't bring back the data or the time you spent correcting the problem, but it's important for me to say it and for everyone to know that we're working harder than ever to avoid this in the future.
Isaiah
Comments
Keep the updates coming
http://www.stackscenter.com
RwGrid - Rapidweaver Website Showcase
http://www.rwgrid.com
Joe
Check out my Stacks Store with over 130+ Stacks available!!!
Video, Fancy Image, Sliders, Table, RSS, CMS, Responsive Stacks and much more...
Follow Me on Twitter
Check out my Rapidweaver Book coming Summer 2012.
Follow me on twitter
sweet escape
thanks
We make RapidWeaver plugins like Stacks and Blocks.
Download and try for free: YourHead.com
Need more? Follow isaiah on Twitter and check out my blog.
I was also one of those who lost images, and had to reinsert them a number of times with increasing frustration... but I must say -- you're great and I'm very grateful that you were able to figure it all out, and that you did so with such dedication and hard work. Alsdo -- such a great community of Rapidweaver and Stacks users -- good mood, constructive attitude and lots of patience despite one of the most frustrating situations imaginable... not daring to do any kind of update with the fear that one would need to spend large part of the day re-constructing the site. Thanks again for figuring it all out... any hint to what was the problem? Getting curious as I spent a lot of time tying to figure out if the problem was on me, or some strange setup of my computer?
Best,
Niclas
The "missing images bug" is really a collection of 3 separate conditions. Each of the 3 has to be operating outside the normal behavior in an edge case. Each, on its own, will self correct and create no problems. But when combined in just the right way they can be catastrophic.
The first error condition happens when starting up and the file read happens out of the expected order. This occurs with varying frequency depending on the hardware Stacks is running on. It's what's called a race condition and depending on the number of free processors, the OS version, and load on the machine, some tasks will be more or less parallel. In an extreme situation this caused the file to finish reading before Stacks was done with its basic initialization. When this happened the path to the temporary directory for storing image data was incorrectly set to empty.
In normal circumstances this would be no big deal. When the empty path was needed it would naturally attempt to initialize itself and things would correct themselves.
Error condition two occurs when two image files are named the same. When this happens Stacks needs to rename one of the files to give it a unique name. Most often this happens when an image stack is duplicated. Under normal circumstances this works just fine. However this is the one edge case where the empty temp directory path would propagate onward without being corrected.
This is where things get interesting. Because normally only unique file names are written to stacks file -- so having a file name uniqueness resolution condition occur during the file read seemed impossible. Queue error condition three.
Error condition three happens when, for a number of reasons, filename conflict resolution doesn't succeed. A very trivial seeming bug in the conflict resolution logic was confused by certain patterns of filenames with numbers in them. In these cases (and a couple others) filenames would **always** believe they were in conflict and would **always** try to resolve them. This means that it could happen even as the file was being read in. Condition 3 is essentially the glue that ties condition 1 and condition 2 together.
With such a tenuous string of must-haves, a bug like this is very simple to fix. Removing any of the three necessary conditions removes the symptoms. Once isolated, all three bugs were very easy to correct -- so all were fixed.
Testing this fix has been the largest challenge. There were few users experiencing the problem. Fewer still that had it with any regularity. And only two with sufficient technical chops to help me really collect data.
Complicating this was the fact that "missing images" is a reasonable description of many problems. Weeding out publishing problems (missing images on the server), general system/rapidweaver/file corruption problems (missing data in general) eliminated nearly all of the possible candidates and created lots of dead ends and false starts.
Finally, about a month ago one very unlucky fellow managed to experience the problem nearly once a week, with dramatic affect on his files, and had both console logs and time-machine backups of everything. Mr. R.P. was the rosetta stone for this bug. And his patience, level-headedness, and dedication to the cause were all amazing. So to him, I have to say a special thanks. Truly above and beyond the call of duty.
Isaiah
We make RapidWeaver plugins like Stacks and Blocks.
Download and try for free: YourHead.com
Need more? Follow isaiah on Twitter and check out my blog.
Frank
Thanks for sharing, and nice work squashing this bug under challenging conditions. Good work to the user troubleshooters, too.
bigcharles on Twitter
not.yet.a.blog
+1
Branko
Lazarov Design
HostGator's Green Hosting Rocks. Check them out!
Dropbox - Great storage / sync tool! Signup for free!
The Bodachs - illustration by my dad - Rodney C. Mackay
cheers,
michael
This may seem a dumb question, but would the logs from all affected users, have provided assistance for you, in comparing and identifying identical error conditions for the symptons?
The reason I ask, is that if you regard a user log as being an essential requirement for analysing problems and issues, then Im sure users would be more than happy to provide them, assuming they know the steps required.
Maybe some info for users on how to obtain the logs would be helpful for future reference?
Photon
To be honest, I'm not sure what the purging methodology is on log files, but I know that for most people the time when the actual bug happened was often outside of the window of their saved log files.
Worse, most novice users were unable to wrap their head around the idea that the bug that was affecting things actually did its work days or weeks before the time when they noticed it. This understanding-gap was often too wide to cross, especially when faced with a frustrating failure. This meant that even when they had the logs and knew how to find them, I still was unlikely to get my hands on the logs.
Finding new ways to collect data on this bug was one of the biggest challenges.
Isaiah
We make RapidWeaver plugins like Stacks and Blocks.
Download and try for free: YourHead.com
Need more? Follow isaiah on Twitter and check out my blog.
just bought the upgrade from Stacks 1 to Stacks 2 -- absolutely amazed and happy with the new version. Great work Isaiah!
Dropbox Invitation Link:
https://www.dropbox.com/referrals/NTEzNjQyOTk
As I've written before, "missing images" is a simple and broad description -- simple enough that many **other** problems easily fit that description. While collecting data for this bug we fielded questions as simple as forgotten FTP passwords (which can cause missing files AND IMAGES on a server), and as complex s hard drive corruption (which will cause everything to go missing eventually).
While I'm 99.9% certain that the primary source of **the** missing images problem has been solved there could very well be others. If they're bugs we'll do our best to fix 'em. If they're FTP passwords, we'll do our best to help you remember them. And if you have HD corruption, we'll help remind you to check your backups are working.
Isaiah
We make RapidWeaver plugins like Stacks and Blocks.
Download and try for free: YourHead.com
Need more? Follow isaiah on Twitter and check out my blog.
I just had a crash after upgrading to 2.0.7 and upgrading Nimblehost Dexture & Flexture. Was working away, one of the images suddenly went black, beachball time and crash!
I quick copy pasted all the text in the crash log that I subsequently sent to Apple, into a Word document. I added a Crash Report title, my name, date & time and some comments as to what I was working on, and what was noticed at the time it happened. I then made a new file folder called Crash Reports and saved the file (with the year/month/day first, then the program and finally the approx time)so that they will sort in chronological order for the future. (ie. 20120422rwcrash418pm)
Is this the kind of crash logs and type of info that you are looking for?
The Bodachs - illustration by my dad - Rodney C. Mackay
----
I should also note that this is a perfect example of "missing images" being an adequate description of many problems and how that confuses things. This crash (although very important surely -- and definitely needing a fix) is absolutely unrelated to **THE** missing images problem -- which was unassociated with a crash and had no outward signs of problems. The images did not "disappear" or go black or anything else -- until after you saved, quit, and reopened the file, at which point they would simply be, well, missing.
But, even though this crash report is perhaps a bit off topic, don't let that dissuade you. Every crash report I see is one that I want to see!
Thanks for sending it along,
Isaiah
We make RapidWeaver plugins like Stacks and Blocks.
Download and try for free: YourHead.com
Need more? Follow isaiah on Twitter and check out my blog.
Actually, what my point was, when something happens, how does one go about sending a report? (which you answered above).
The image did in fact disappear and go black while I was working, and I never got a chance to hit save, cause as soon as it went black, the beachball started and then the whole program just shut down. Because I never got to hit save, the file was right back like it was before I started doing anything when I reopened it to have a look. I figure the picture never stayed missing, because I never got to hit save. I did have pics missing from my site and from my project files at various times in the past few months, but rather than submitting everything, i tried to fix it and figure out what I was doing wrong.
I have had an ongoing problem with repetitive crashing, and I did submit reports to Nik well over a month ago, but I have never heard back on the subject. I think he got busy with getting the new forums up and running and since I have not been bugging him about it, it may have gotten put aside. I do need to get back to work soon tho. This was the first day in over a month that I have had time to work on my website, and LOL...nothing got done! Ah well.
The other question I have is where should we send crash logs for this subject?
Allison
The Bodachs - illustration by my dad - Rodney C. Mackay
A description of what was happening at the time, with as many details as you can recall, is good too -- especially when there is no crash report to send.
Other stuff that's helpful:
If you know how to find your Console logs or how to sample a process with Activity Monitor, then send those along too.
If you think that a particular file/theme/stack/etc is involved, then send that too if you can.
If you don't know the answers to these things, then don't worry. Just send what you can.
This would usually point to something strange happening with the HTML. Something has confused the page enough to make Safari stop rendering images. Usually simplifying things a bit (by removing some stacks temporarily) can help you discover what is the root of the problem. Obviously, if you've added any of your own HTML/CSS/JS, then that should be at the top of your list of suspects.
Of course, there are more bug-related reasons this could be happening too -- but they're not nearly as common. It always best to try the obvious stuff first -- Occam's Razor and all that, you know.
The best place is probably wherever you think it should go. If there's a crash and Stacks was the frontmost page style, then you should probably sent it to [yourhead support](http://yourhead.com/support). If you notice a rendering issue with a theme, then send the info to the theme designer. If no 3rd party add-on was obviously involved, then send it to RealMac.
Use your best judgement. And if we discover that it need to go someplace else, we'll just forward it along.
Isaiah
We make RapidWeaver plugins like Stacks and Blocks.
Download and try for free: YourHead.com
Need more? Follow isaiah on Twitter and check out my blog.