A place for customers to chat about Realmac and its products - RapidWeaver, Clear and Ember!

Stacks 2.0.7

IsaiahIsaiah Santa Cruz / AustinPosts: 947Developers
edited April 2012 in Announcements
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
I'm Isaiah and I run YourHead Software.

We make RapidWeaver plugins like Stacks and Blocks and Stacks Cloud.

Need more? Follow isaiah on Twitter.

Comments

  • shanemoshanemo Posts: 925Members, Moderators
    Thank you Isaiah for your hard work. Appreciate it.
  • GilleGille Posts: 1,312Members
    Isaiah, thanks for the update. I was one of them (lost data of the company website where I work). It was frustrating, but without stacks.. RW wouldn't be so brilliant. I understand that debugging is part of the process and i'm glad that you're constantly making things better.

    Keep the updates coming :p
    Stackscenter - Quality Stacks Central
    http://www.stackscenter.com
  • joeworkmanjoeworkman SF Bay Area, CAPosts: 2,336Members
    @Isaiah Thanks for all the hard work and dedication. Sure makes me look good too! ;-)
    Now go forth and make your websites great...
    I have the biggest stacks store out there. Build your own theme with my Foundation Theme + Stacks.
    I wrote the book on RapidWeaver. Follow me on Twitter
  • WebsiteGuyWebsiteGuy Posts: 4Members
    Thank you Isaiah, very much appreciate this!
  • SmileySmiley Posts: 119Members
    Thanks Isiah, the update really works
    Learning and enjoying weaving

    Follow me on twitter

    sweet escape
  • shaneblythshaneblyth Posts: 99Members
    edited April 2012
    what and where is the "stacks automatic updater" you mention?
    thanks
  • IsaiahIsaiah Santa Cruz / AustinPosts: 947Developers
    The automatic updater is part of Stacks. It checks the internet for new versions of Stacks each time you use Stacks. If it notices a new version it will ask if you'd like to download and install that it. There's also an updater that checks each of the third party stack elements you have installed. It can update those too.
    I'm Isaiah and I run YourHead Software.

    We make RapidWeaver plugins like Stacks and Blocks and Stacks Cloud.

    Need more? Follow isaiah on Twitter.
  • nicke-nyfikennicke-nyfiken SwedenPosts: 5Members
    Thanks Isiah,
    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
  • IsaiahIsaiah Santa Cruz / AustinPosts: 947Developers
    Yes, it took some time, but in the end I did manage to understand the problem in great detail. Just for fun and complete transparency, I'll let out the secrets here. But be warned, this is a very long post. ;-)

    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
    I'm Isaiah and I run YourHead Software.

    We make RapidWeaver plugins like Stacks and Blocks and Stacks Cloud.

    Need more? Follow isaiah on Twitter.
  • Frank JRFrank JR Posts: 2Members
    Thank you Isaiah and to those who helped you solve this problem. This is what makes this a great community.

    Frank
  • bigcharlesbigcharles Massachusetts, USAPosts: 337Members
    Wow...crazy. But interesting - so much goes on under the hood and behind the scenes that we take for granted.

    Thanks for sharing, and nice work squashing this bug under challenging conditions. Good work to the user troubleshooters, too.
  • Kevin MullinsKevin Mullins PortugalPosts: 123Members
    Thanks for the update and the huge commitment to Stacks Isaiah. It continues to be the only reason I continue to work with Rapidweaver.
  • LazarovDesignLazarovDesign AustraliaPosts: 659Members
    Thanks for the update and the huge commitment to Stacks Isaiah. It continues to be the only reason I continue to work with Rapidweaver.

    +1 :)
  • Allison NelsonAllison Nelson Posts: 67Members
    Isaiah, I want to say thank you too! for working so diligently to figure out WTH was going on! And for taking the time to explain what happened in plain english. I was reading your post ... going BINGO! In my case I think I messed up things with the same photos that were used in two nearly identical sets of files. I changed the titles by only 1 or 2 characters in order to shorten them on screen, etc.... Plus I work with many windows open at once and bounce all over creation and I type fast. I guess that was asking for trouble...LOL! Everyone tells me I need to learn to slow down. Anyway a huge Thanks!
    Allison

    The Bodachs - illustration by my dad - Rodney C. Mackay
  • sassafrassassafras The Jersey ShorePosts: 184Members
    Isaiha, you are a class act. Your open & full disclosure does a lot to dispel the myth that developers are not responsive or believe the end-users, when odd quirks pop up. Thanks for your hard work & dedication. The updater worked perfectly.
    cheers,
    michael
  • photonphoton Posts: 105Members
    Isaiah/Mr R.P. - Nice piece of sleuthing and stamina in resolving it.
    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
  • IsaiahIsaiah Santa Cruz / AustinPosts: 947Developers
    The problem isn't that people don't know how to find logs (it's very easy to teach those that don't), but that logs don't last forever. Your system archives some, but not forever. As an example, I just checked this machine right now and it goes back to April 11th -- about a week.

    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
    I'm Isaiah and I run YourHead Software.

    We make RapidWeaver plugins like Stacks and Blocks and Stacks Cloud.

    Need more? Follow isaiah on Twitter.
  • flitzefischflitzefisch Posts: 31Members
    Hi,
    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
  • laphilsphanlaphilsphan Posts: 28Members
    thanks for the hard work, since I believe i was one of the few with this severe problem, i will let you know.
  • IsaiahIsaiah Santa Cruz / AustinPosts: 947Developers
    I should probably mention that if you do experience missing images after installing the 2.0.7 update, let us know (support at mac dot com).

    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
    I'm Isaiah and I run YourHead Software.

    We make RapidWeaver plugins like Stacks and Blocks and Stacks Cloud.

    Need more? Follow isaiah on Twitter.
  • Allison NelsonAllison Nelson Posts: 67Members
    Isaiah,
    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?
    Allison

    The Bodachs - illustration by my dad - Rodney C. Mackay
  • IsaiahIsaiah Santa Cruz / AustinPosts: 947Developers
    Sure. You can just copy and paste the crash report text right into an email though. No need for all the rest of the stuff. The report will have all the details of the machine and is time stamped and everything.

    ----

    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
    I'm Isaiah and I run YourHead Software.

    We make RapidWeaver plugins like Stacks and Blocks and Stacks Cloud.

    Need more? Follow isaiah on Twitter.
  • Allison NelsonAllison Nelson Posts: 67Members
    Isaiah,

    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
    Allison

    The Bodachs - illustration by my dad - Rodney C. Mackay
  • IsaiahIsaiah Santa Cruz / AustinPosts: 947Developers
    Actually, what my point was, when something happens, how does one go about sending a report?
    If it's a crash report. Just copy, paste, and send.
    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. :-)
    The image did in fact disappear and go black while I was working
    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 other question I have is where should we send crash logs for this subject?
    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
    I'm Isaiah and I run YourHead Software.

    We make RapidWeaver plugins like Stacks and Blocks and Stacks Cloud.

    Need more? Follow isaiah on Twitter.
  • JedGreenyJedGreeny Posts: 9Members
    This problem seems to be fixed with this update, thanks!
Sign In or Register to comment.